4 UX Conventions

The Casual menus share common user experience (UX) conventions to facilitate usability. This section details this.

Common Menu Navigation

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.

Settings Menu

Most all Casual main menus support invoking a mode-specific settings menu via the binding ,.

Unicode Symbol Support

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.

Common Key Bindings

Listed below are keybindings which are common among Casual menus.

Label Conventions

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.