Human interface guidelines

These are the interface principles followed by segusoLand. Of course you are free to use them in another application, and to label it "segusoLand-compliant". :-)

This work is in progress and can change depending on your opinions/suggestions/insults.

Unfortunately these guidelines are not compatible with those of KDE and Gnome.


Do not hide complexity, but make it as apparent as possible (by default)

Things should me made as simple as possible, but no simpler.

If the actions you can do with your program are many, then using the program is an intrinsically difficult task, and any attempt to simplify it will be counterproductive. For example, it is bad to treat the least used action differently (for example by hiding them in submenus) by default, because

In the case of segusoLand, the possible actions are hundreds (since they are all the "common" actions you can do with a computer), nevertheless it would be counterproductive to hide some of them or to make some of them more difficult to be reached, for the reasons stated above.

Narrowing menus must be always open (i.e. they cannot be pop-up)

Narrowing is a feature introduced by segusoLand. A narrowing menu is a special context-sensitive menu. To say that a menu M does narrowing means that 1) M is context-sensitive, and 2) when you select or deselect one item of M, the contents of M and of other menus are updated.

Let me restate the difference from a traditional context-sensitive menu: a context-sensitive menu A updates its content based on the selection in some list B, but selecting from A does not affect the content of B. On the other hand, narrowing menus not only are affected, but also affect.

That said, the reasons why narrowing menus must be always open are:

Example: in segusoLand, the time panel does not do narrowing (i.e. selecting a time does not hide anything), so it could be implemented with a pop up menu (a dropdown list for example). But the verb/file/program/device panels do narrowing, hence they can't be popup.

Usability is not the same as intuitiveness

Many program are usable but not intuitive.

Example: the number of clicks does influence usability but not always intuitiveness. A long list is just as intuitive as a short one, but less usable.

Example: The traditional layout of a program, comprising a menu, a toolbar and a main area, is usable but not intuitive. Arranging the commands into menu and toolbar is equivalent to sorting them by access frequency: the most used commands are accessible with a single click, the least used ones with more than one click. This is usable but not intuitive because: 1) it creates two ways to do one thing 2) the newcomer is not interested in sorting the commands for frequency of access. A cleaner and more uniform layout is better.

The best layout for using a program is usually different from the best layout for learning it.

Unfortunately, nearly all programs have by default a layout suited for using them effectively, not for learning it. For example, all programs which use a toolbar and a menu by default have this fallacy. A user who wants to learn a program does not want to see actions sorted by frequency; he does not want to minimize the number of clicks but maximize uniformity and "cleanliness"; and in general does not want two ways to do something: he wants uniformity and minimality.

By default, privilege a layout and behavior which is easier to understand, not easier to use. Privilege uniformity over usability.

Layout: For example, if there are 5 panels in segusoLand, but one of them is very short, and better left minimized as a dropdown list, it would be wrong to minimize it by default, because this would result in two sets of panels with the same semantics but different aspect. The user might 1) be puzzled about why one of them has a different aspect, 2) not understand it has the same semantics; and therefore believe the behavior of the program is more complex than it really is.

Behavior: One might think to add an AI by default which selects some items automatically. This would make the program more usable (fewer clicks) but more complicated to grasp: at each new click, the newbie is already puzzled enough understanding why some items have disappeared. We don't want him to be furtherly puzzled asking himself why some items he did not click on are now highlighted.

The learner does not want to minimize the number of clicks, he wants a program which is consistent, uniform, logically clean

This is a formalization of what stated above.

A list that is long but flat is more intuitive than a list which is short but structured.

For example, one might propose to replace the flat verb list with a tree hierarchy. This would make the program easier to use, but less intuitive: the list becomes shorter but the selection mechanism becomes more complex. This must not be done by default, because intuitiveness is what matters by default, not speed or number of clicks per action.

Finding a verb in a long list of verbs might not be funny, but it is more intuitive than traversing a hierarchy where some elements are categories and the leaf is a verb.

segusoLand does not require double-clicking

Single click mode will always be the default, officially supported way of using segusoLand. Any interface decision will be taken with this use in mind.


Solution: Fortunately, every application that requires double clicks can be transformed into a single-click application by duplicating the clickable area.

segusoLand does not require the use of more than one mouse button.

Single-button mode will always be the default, officially supported way of using segusoLand. Any interface decision will be taken with this use in mind.


Solution: Fortunately, every application that requires right-clicks can be transformed into a single-click application by duplicating the clickable area.

segusoLand does not require holding the mouse button

The default, officially supported way of using segusoLand will not contemplate holding the mouse button. Any interface decision will be taken with this use in mind.

Rationale: this gives a sensation of anxiety to some persons.

Consequence: segusoLand does not require dragging either, since it implies holding.

Zones that are often clicked must be very big

This holds for the default, officially supported layout of segusoLand. Any interface decision will be taken with this in mind.

Rationale: Clicking inside small zones is stressing for the user. Such stress can be perceived consciously or, more often, inconsciously, as a sense of anxiety.


If there is enough space, menus which are always open are to be preferred over pop-up menus, even if they require long mouse travels to be reached, whereas the popup appears at the mouse position.

It is better to have a menu which is always open, like the verb panel, in a statically allocated portion of the screen, far from the mouse pointer, than a pop-up menu than must be opened by clicking, and opens near the mouse pointer.


The act of scrolling a list must be minimized.

Consequence: You cannot use dropdown lists or combo-boxes, unless these widgets are implemented so intelligently as to span the whole screen height if needed.

Solution: Use a maximized window containing a listbox instead.

By default, avoid multiple ways to do the same thing

Rationale: duplication of functionality can speed up your work but it introduces complexity, hence confuses the newbie user, and gives a general impression of bloating and redundancy.