Skip to content

Keyboard

Sergii Stoian edited this page Sep 9, 2020 · 11 revisions

As far as I know, there are several modifiers usage styles:

  • Ctrl - Windows, GNOME, KDE. Shift and Alt — used as additional modifiers.
  • Command — NeXT, Apple — physically located where Alt key located at PC-style keyboard. This is essential from UX point of view.
  • Alt(Meta) — WindowMaker — applications use Alt as additional modifier for quite important actions.
  • Super(Win) — Windows, GNOME - used for system specific actions (window management, lock screen, dashboard, etc).

On Linux there are some applications that has it’s own keyboard usage style (Emacs, Blender, Maya). Usually it’s applications that not bound to specific DE.

This is obvious that I need to use keyboard modifiers with respect to as much as possible application usage styles.

In this part of documentation I want to define some rules for applications running inside NEXTSPACE environment.

Definitions

Here is the mapping of modifiers on PC keyboard based on physical location of keys on NeXT keyboard.

Key name Physical location Xorg keysym NeXTSTEP/NEXTSPACE WindowMaker
Alt ‘Alt’ and ‘Alt Gr’ Alt_L, Alt_R Command Mod1
Ctrl ‘Ctrl’ Ctrl_L, Ctrl_R Control Control
Super,Win Between Alt and Ctrl Super_L, Super_R Alternate Mod4
Shift Shift Shift_L, Shift_R Shift Shift

Further sections of this document uses names Control, Alternate, Command, Shift.

Command

Default modifier for NEXTSPACE applications. Mapped to the Alt. Menu item has no special symbol or image for shortcut label. All menu shortcut labels mean usage of Command + letter.

Alternate

Mapped to the Super(Win) key. Menu item shortcut labels shown with italics. Application specific shortcuts (not recommended) may use this modifier if no free letters for Command modifier shortcuts.

Control, Shift

This keys have the same meaning everywhere.

Special modifiers

Meta

This not a specific key and has special meaning for some applications. For example Emacs in Terminal maps it to a Super. If your application will use some embedded applications don’t use Alternate+ shortcuts for application’s GUI elements (menu, popup button).

Compose Character Key

From Wikipedia: “A compose key (sometimes called multi key) is a key on a computer keyboard that indicates that the following (usually 2 or more) keystrokes trigger the insertion of an alternate character, typically a precomposed character or a symbol. For instance typing Compose followed by ~ and then n will insert ñ.”

Design Rules

  • If you want to use some shortcuts in your application that overlapped with shortcuts bound to menu items — your shortcuts will be ignored and actions connected to menu items will be called. Application level (AppKit, menu items, popup buttons etc.) shortcuts have higher priority.
  • Actions in application uses Command modifier for keyboard alternatives.
  • Window management actions called with Alternate modifier (except some shortcuts described in Reserved shortcuts for Workspace).
  • X Window applications usually uses CUA standard (Control or Ctrl modifier).
  • If you plan to use Alternate as key modifier for shortcut in your application, please check if this shortcut is not used for window management functions.

Reserved keyboard shortcuts

You cannot use these reserved characters as shortcuts for any other commands. If your application does not allow the user to open files, it will not have an Open command and must not use Command-o as a keyboard shortcuts.

Keyboard Alternative Command Menu WindowMaker
Command-? Help Info
Command-n New Document
Command-o Open Document
Command-s Save Document
Command-a Select All Edit
Command-c Copy Edit
Command-v Paste Edit
Command-x Cut Edit
Command-z Undo Edit
Command-m Miniaturize Window Windows Mod1 + m
Command-w Close Window Windows Mod1 + w
Command-h Hide Main Mod1 + h
Command-p Print Main
Command-q Quit Main Mod1 + q

Shortcuts specified in “WindowMaker” column overlap menu item keyboard alternatives. If such shortcut pressed over the GNUstep application WindowMaker do nothing with windows and sends shortcut to AppKit. If such shortcut pressed over the X11 application WindowMaker process the action to application’s window similar to AppKit one (shortucts will not be send to X11 application).

This section is based on “Reserved Keyboard Alternatives” of “OpenStep User Interface Guidelines” document.

Required keyboard shortcuts

If your application provides a function listed in table, you must use the command and required keyboard alternative assigned to it. For example, if the application has a Find panel, you must use Command-f as the keyboard alternative for bringing it up.

If the application does not implement a listed function (it does not have a Find panel), you can assign its required keyboard alternative (Command-f) to another menu command. However, to preserve interapplication consistency, it is strongly recommended that you first try to use characters other than those on this list.

Keyboard Alternative Command Menu
Command-; Check Spelling Edit
Command-b Bold (Unbold) Font
Command-d Find Previous Find
Command-e Enter Selection Find
Command-f Find Panel Find
Command-g Find Next Find
Command-i Italic (Unitalic) Font
Command-t Font Panel Font
Command-C Colors Varies

This section is based on “Required Keyboard Alternatives” of “OpenStep User Interface Guidelines” document.

Reserved shortcuts for Workspace

Since Workspace is a GNUstep application and window manager, it handles actions called by any of those two parts. In the table below you find window manager part of shortcuts:

Action Configuration Option Shortcut
Order front “Run” panel RunKey Mod4 + r
Start new instance of application WindowRelaunchKey Mod4 + Shift + r
Change ordering level of Dock DockRaiseLowerKey Mod4 + Shift + l
Shade window ShadeKey Mod4 + KP_Substract
Maximize window at all edges MaximizeKey Mod4 + KP_Add
Switch focus to the next application FocusNextKey Mod1 + Tab
Switch focus to the previous application FocusPrevKey Mod1 + Shift + Tab
Switch focus to the next window GroupNextKey Mod1 + grave
Switch focus to the previous window GroupPrevKey Mod1 + Shift + grave

Some window manager shortcuts will overlap with Workspace shortcuts (as GNUstep application). Here they are (`WS` is for Workspace and `WM` is for WindowMaker):

WS menu item title WS shortcut WM configuration option WM shortcut
Close Window Command + w CloseKey Mod1 + w
Miniaturize Window Command + m MiniaturizeKey Mod1 + m
Hide Command + h HideKey Mod1 + h
Minimize All Command + M MinimizeAllKey Mod1 + Shift + m
Hide Others Command + H HideOthersKey Mod1 + Shift + h

To make these shortcuts work for GNUstep and X11 applications Workspace treat them special for GNUstep applications - does not hide or miniaturize windows and bypass shortcut to GNUstep application.

It is important to keep these shortcuts intact between Workspace and WindowMaker if you want applications to work correctly.