Skip to content

Keyboard

Sergii Stoian edited this page Jun 26, 2018 · 11 revisions

Introduction

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 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 has 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 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.
  • Actions that involve desktop manipulation called with Alternate modifier.
  • 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
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 keybard alternatives. If such shortcut pressed over the GNUstep application WindowMaker do nothing with windows and send shortcut to AppKit. If such shortcut pressed over the X11 application WindowMaker process the action to application’s window similar to AppKit one.

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 window manager actions

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 + D
Shade window ShadeKey Mod4 + KP_Substract
Maximize window at all edges MaximizeKey Mod4 + KP_Add
Hide windows of inactive applications HideOthersKey Mod1 + Shift + H
Miniaturize all windows of this application MiniaturizeAllKey Mod1 + Shift + M
Switch focus to the next window FocusNextKey Mod1 + Tab
Switch focus to the prevoious window FocusPrevKey Mod1 + Shift + Tab

The Command-m (Mod1+m) and Command-h (Mod1+h) shortcuts should work for both GNUstep and X11 applications. To make it work Workspace (WindowMaker) use this shortcuts but treat them special for GNUstep applications - does not hide or miniaturize windows and bypass shortcut to GNUstep application.

Clone this wiki locally