The Casual menus share common user experience (UX) conventions to facilitate usability. This section details this.
Casual organizes a mode’s command set into a menu hierarchy. As the user descends down different menu levels, the user is given the option to dismiss the current menu or to dismiss completely all menu levels descended. Transient provides a standard convention for menu dismissal via the C-g (transient-quit-one
) and C-q (transient-quit-all
) commands. By default Transient does not display these commands in the menu though, rather they make the assumption that the user already knows these bindings.
In contrast, Casual makes these bindings explicitly known to user by displaying them at the bottom of the menu. Users who wish to have them hidden can set the customizable variable casual-lib-hide-navigation
to a non-nil value. This can be changed from a Casual mode-specific settings menu.
Most all Casual main menus support invoking a mode-specific settings menu via the binding ,.
The customizable variable named casual-lib-use-unicode
which when non-nil will inform Casual menus to use Unicode symbol labels whenever supported. This can be changed from Casual mode-specific settings menu.
If casual-lib-use-unicode
is set to t
, it is also recommended that the variable transient-align-variable-pitch
also be set to t
.
Listed below are keybindings which are common among Casual menus.
Casual places great emphasis on using Emacs Bookmarks to track different places of note. The binding J is used in many main menus to support this.
Many modes have settings specific to them. The binding , is used in many main menus to support the configuration of mode-specific settings.
Many modes provide a list of items. If a command exists that allows the user to jump to a specified item, the binding j is mapped to it.
For modes that provide a list of items, navigation to a next or previous item is bound to n and p respectively.
For modes that organize items into sections, navigation to a next or previous section is bound to [ and ] respectively.
Casual annotates menu labels with the following conventions:
If the label ends with an ellipsis, then the command will prompt the user for input.
If the label ends with a right-pointing arrow, then the item will raise a sub-menu.
If the label ends with the superscript ‘ⁿ’, then the command supports a prefix C-u.