-
Notifications
You must be signed in to change notification settings - Fork 70
Keyboard
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.
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.
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 ñ.”
- 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.
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 | 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.
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.
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.
Copyright (c) Sergii Stoian