Skip navigation
Syndie - distributed forums

# Syndie Desktop design notes

This page is a work in progress describing the design of the Syndie Desktop GUI. Any input is very much appreciated.

As a whole, the Desktop GUI offers a small number of contexts for doing various tasks - there's a screen for reading, another for posting, another for selecting what to read, and another for selecting what forums/blogs to participate in. The aim is to fill each screen with everything the user needs to perform a particular task, but keep out everything they don't need, thereby reducing the conceptual overhead of each task and providing optimized widgets.

Following the lead of Fitts' law and OLPC's "Sugar" interface, the edges and corners of the screen have increased importance as compared to standard GUIs. Ease of use is paramount, as is the ability for experts to quickly do what they want - as such, the GUI aims to be controllable entirely through the keyboard. Of course, accessibility is also an important part of that - alternative input and output technologies should not be precluded (and should instead be supported as best possible), and the display rendering should be customizable according to the user's needs.

GUI performance is also a key focus of the Desktop GUI, both on modern machines and on the sort of machines found in out of the way net cafes.

- Screen template
  - Edges
  - Corners
    - Control menu
    - Task menu
    - Status menu
    - Help menu
- Startup screen
- Forum selection screen
- Message selection screen
- Message view screen
- Edit message screen

### Screen template

A a whole, the user's display is broken up into a 9 blocks - the large center panel, four edges, and four corners. The center panel displays the current "screen", and the four edges may be overridden for that screen (if a screen is not overriding an edge, it uses the "default edge"). The four corners are always visible and always have the same meaning, regardless of what screen is being displayed.

### Edges

All four edges have a theme

- the "north" edge should display information or metadata about the current screen
- the "east" edge should have navigation buttons or controls to go somewhere else
- the "south" edge should have action buttons for performing various tasks
- the "west" edge serves as a base for accessing the user's highlights

#### The default west edge

The west edge has special functionality - displaying quick link icon to access the user's watched forums and selected references as well as drag&drop targets to watch forums or add references to resources. Few if any screens should override the default west edge.

### Corners

As mentioned, the four corners have pegged functionality:

- the "northwest" corner opens the control overlay menu
- the "northeast" corner opens the task overlay menu
- the "southeast" corner opens the help menu
- the "southwest" corner opens the status overlay menu

These "overlay menus" are modal dialogs that display on top of the current screen, though do not take up the entire space. When dismissed (either with a control inside the menu or by hitting the controlling corner again), the current screen becomes the focus again. The intention of these displays are to serve as topical menus for certain functionality.

#### "control menu"

Launched by the northwest corner, the control menu has a variety of basic control functions:

- open a specific screen directly (via Syndie URI)
- import/export `.syndie` files
- backup/restore private information
- configure user preferences
- minimize or exit the application
- (advanced) Text based interface
- (advanced) SQL interface
- (advanced) Logs

#### "task menu"

Launched by the northeast corner, the task menu is basically one control with a variety of options:

- display all open panels
- switch to an individual panel
- close an individual panel
- exit out of Syndie entirely

#### "status menu"

Launched by the southwest corner, the status menu monitors the Syndie's archive and syndication status:

- toggle online/offline state
- manage archive syndication schedule
- summarize local archive content (basic stats)

The corner responsible for the status menu should also adjust its display based on the status (online/offline, syndication progress, etc), when possible

#### "help menu"

Launched by the southeast corner, the help menu should offer both context(screen)-sensitive and overall help information.

## Startup screen

### Description

The startup screen is shown immediately when the Syndie desktop launches, and includes progress information about the startup process. In fact, while the startup screen is being displayed, it is launching and monitoring the various tasks to get the Syndie desktop into working order.

### north edge

No custom north edge is provided

### east edge

No custom east edge is provided

### south edge

No custom south edge is provided

### west edge

No custom west edge is provided

## Forum selection screen

### Description

The forum selection screen is triggered when the default west edge is chosen - it manages the watched forums and bookmarks. One of the important functions is to assign icons to bookmarked folders/elements so they can show up on the default west edge as links (it uses the scaled down avatars of the watched forums for the same)

### north edge

No custom north edge is provided

### east edge

A big "view selected" button.

### south edge

A series of controls for the watched list and bookmark tree:

- Add forum to the watched list
- Remove selected forum from the watched list
- Add a folder or bookmark to the bookmark tree
- Remove a folder or bookmark from the bookmark tree

### west edge

No custom west edge is provided

## Message selection screen

### Description

The "message selection screen" is a fancy term for that hierarchical message view. It can show messages in just one forum, organized as threads or flat. It can show messages for multiple forums as well, either split up by forum or interspersed with each other. The messages can be filtered to match only certain criteria. If desired, the screen can show a small preview of individual messages (perhaps the first 30 words?) in a small tooltip-like display.

### north edge

If only a single forum is being shown, the north edge contains information about that forum - its avatar, name, description, and any advertised references (FAQs/policies/etc). If multiple forums are being shown, it tries to show as much information as it can, but under certain circumstances may merely render the general filtering criteria being used to select messages.

### east edge

The east edge has a variety of controls:

- Pagination controls (in situations where the number of matching messages exceeds a reasonable number, they are split up into pages)
- A control to view the currently selected message (switching to the message view screen)
- Controls to expand/collapse threads

### south edge

The south edge has a large number of controls, fitting into two categories - filtering controls, and action controls. The edge has a means to switch between these two - either showing the action controls or the filtering controls.

#### filtering controls

- Full text search (textbox)
- Message tag (drop down)
- Unread only (checkbox)
- Date (drop down)
- Scope - single forum, any watched forum, manageable forums, postable forums, specific forums, all forums (radio button)
- Additional advanced options

#### action controls

- Watch the forum
- Bookmark the forum
- Bookmark the current screen (forum and filtering criteria)
- Watch the selected author
- Bookmark the selected author
- Ban the forum
- Ban the selected author

### west edge

No custom west edge is provided

## Message view screen

### Description

The screen itself is responsible for rendering the message - its pages, attachments, references, and context within a thread.

### north edge

The north edge provides metadata for the message, the author, and the forum:

- The author's avatar and name, plus flags if the author is watched or banned
- The forum's avatar and name, plus flags if the forum is watched or banned
- The message's subject, post-on and import dates, and any tags
- The message's privacy, authentication, and authorization attributes

### east edge

The east edge provides a plethora of controls:

- Buttons to other messages:
  - Next unread in forum
  - Next in thread
  - Previous in thread
  - Next in forum
  - Previous in forum
- Buttons to the message selection screen:
  - Current message selection screen
  - Next watched forum with unread messages
  - Previous watched forum with unread messages
- Buttons to the author's and forum's profile screens
- (maybe?) combo for each link in the message
- (maybe?) combo for each references attached to the message

### south edge

The south edge has a selection of controls:

- Reply to the forum
- Private reply to the author
- Private reply to the forum administrators
- Watch the author or forum
- Bookmark the author or forum
- Bookmark the message
- Import attached references

### west edge

No custom west edge is provided

## Edit message screen

### Description

This screen serves as Syndie's integrated editor for posting messages.

### north edge

The north edge both displays and controls important attributes of the message

- The message's author (showing the avatar and a combo for the name)
- If necessary, the message's author (showing the avatar and a combo for the name)
- The message's target forum (showing the avatar and a combo for the name)
- The message's privacy setting (showing the graphic and a combo)
- The message's subject (text box)
- Tags (text box)

### east edge

The east edge has four controls - save for later, preview, post, and cancel message. When the "preview" option is selected, the message editor body renders the page, the "post" option is enabled, and the "preview" option is replaced with "edit". Selecting "edit" reverses that process, and selecting "post" (when enabled) posts the message.

### south edge

The south edge provides access to the various editor tasks:

- Add/remove a page
- Toggle the current page type
- Add/remove an attachment
- Add a link
- Customize the style
- Spellcheck the current page
- Find/replace in the current page
- Quote the parent message

### west edge

No custom west edge is provided