Keybindings / command reference

The Keymap section of the config editor allows you to customize program keybindings

A condensed form of much of this info is available in-app in the Keymap section's info icon tooltip.

Note: it's recommended that you don't re-use the same key in both the mouse action keys and the keymap -- it could result in unexpected or confusing program behavior. In v0.4 preview: if a key is present in the overlay at the current grid level, as well as a keybinding here, the overlay will take precedence.

Key names

The key names used/accepted mostly follow web conventions, with some exceptions, and some allowances for aliases.

  • Printable non-whitespace characters just use the literal character
    • A through Z, 0 through 9, -=`[]\;',./
      • Note: the non-shifted version of non-alpha characters should be used (e.g. 1 instead of !), and the uppercase version of alpha characters should be used (A instead of a, to avoid ambiguity with modifier shorthands (upcoming feature))
  • Whitespace characters are named:
    • Space, Tab, Enter
  • Modifier keys
    • Allowed aliases:
      • Command/Cmd/Meta/Win/Gui
      • Alt/Option/Opt
      • Control/Ctrl
    • Left/right-specific, or universal versions
      • e.g. Shift, ShiftLeft, or ShiftRight
      • Note: side-specific modifier keys are not yet supported as modifiers, only as main keys.
  • Other named keys list
    • ArrowLeft, ArrowRight, ArrowUp, ArrowDown
    • Numpad0 through Numpad9, NumpadAdd/Subtract/Multiply/Divide/Decimal/Equal/Comma/Enter
    • F1 through F20, Fn
    • Backspace, Delete, Escape, PageUp, PageDown, Home, End, Insert
    • NumLock, CapsLock
    • ContextMenu, VolumeUp/Down/Mute
    • Lang1, Lang2, IntlYen (¥), IntlRo (), IntlBackslash

Assigning multiple keybindings to a command

To assign multiple keybindings to a single command, separate them with , (note the space). E.g. Escape, CommandLeft tap.

Tap vs keydown

Actions can be triggered either by a keydown event, or by a tap -- a downstroke and upstroke of the same key within tap_threshold milliseconds, uninterrupted by other keys.

To specify a tap keybinding, simply add tap (with a space) after the keyname, e.g. CommandLeft tap. CommandLeft on its own as a keybinding will cause the action to be triggered on the key downstroke (which can make interaction a bit snappier).

Using modifiers as...modifiers

To add a modifier to a keybinding in the usual way (like it is used for cmd+C for copy, cmd+S for save, etc), put them before the main keypress with a +, e.g.:

  • cmd+Tab
  • cmd+Tab tap
  • cmd+alt+shift+ctrl+Tab

The same aliases (see Key names) are allowed as when the modifier is used as the main key.

Command reference

Note: This information is largely the same as the in-app tooltips when you hover over the command name.

Overlay

  • Show overlay: Shows the overlay.
  • Hide overlay: Hide the overlay, without executing any mouse action.
  • Move to next monitor: Moves the overlay to the next to the next monitor.
  • Move to previous monitor: Moves the overlay to the previous monitor.
  • Increase master opacity (currently Mac-only): Increases the master opacity value.
  • Decrease master opacity (currently Mac-only): Decreases the master opacity value.
  • Toggle overlay lock (in preview): When locked, the overlay will not respond to keypresses, and keypresses will pass through to focused app. May be useful while editing the config. This is a beta feature, and not fully implemented -- some commands will still affect the overlay.
  • Toggle continuous mode (in preview): When continuous mode is on, the overlay stays up after executing a mouse action.
  • Toggle continuous mode until closed (in preview): Continuous mode will be turned off after the overlay is hidden.
  • Cycle grid action level (in preview): Cycles the value of the Grid action level field.
  • Cycle font (in preview): Cycles the value of the Font field. Note: This may be removed once keyboard-based selection in dropdowns is improved and/or previewing of the overlay is implemented.

Mouse actions

  • Execute mouse action: In the default state, executes a left click at the virtual cursor. Can execute other actions/buttons/click_counts if hold for or cycle commands are used. Double and triple clicks can be executed by pressing multiple times.
  • Execute mouse move: Moves the system cursor to the virtual cursor.
  • Undo last key: Undoes the last key when selecting a cell.
  • Release hold/drag: During a drag action, 'drops' at the system cursor.
  • Repeat last mouse action: Repeats the last mouse action, at the same location it was executed at.
  • Hold for move: When held, execute mouse action will move the system cursor to the virtual cursor.
  • Hold for drag: When held, execute mouse action will start (or continue) a drag operation (i.e. moving the mouse while mouse button is held down).
  • Hold for right/middle/back/forward button: When held, execute mouse action will execute a right/middle/back/forward click at the virtual cursor.
  • Cycle mouse action type: Sets the action (click, move, drag) that execute mouse action will trigger.
  • Cycle mouse button: Sets the mouse button (left, right, middle, back, forward) that execute mouse action will use.
  • Cycle click count: Sets the click count (single click, double click, triple click) that execute mouse action will trigger.

Subgrid nudge (in preview)

  • Subgrid nudge up/down/left/right (in preview): These commands move the cursor when hold subgrid key for nudge is on and a subgrid key is held.
    • Note: If you use keys that are also present in the subgrid, you should give each command a key for the left hand and the right hand.
    • Note 2: This is a beta feature. Some bugs may be present.

Dialog / menu

  • Edit config: When the overlay is up, opens this config editor.
  • Close UI element: Closes the currently open dialog, color picker, context menu, etc.

Mouse buttons w/o overlay (renamed to 'Global mouse buttons' in preview)

  • left/right/middle/back/forward: These commands execute mouse button presses without the overlay, typically with a mouse or other pointing device still controlling cursor movement.
    • Use cases include:
      • clicking while maintaining precise cursor position/movement
      • preventing/alleviating repetitive strain injury
      • user preference over other clicking mechanisms
    • Note: On Mac, dragging and double/triple clicks may not work on some elements (but will be implemented very soon).

Wheel mode (renamed to 'Free mode' in preview)

  • Toggle wheel mode: Toggles wheel mode.
  • Enter wheel mode: Activates wheel mode.
  • Exit wheel mode: Deactivates wheel mode.
  • Hold for speed increase: Multiples the scroll speed by the wheel speed multiplier value. (In preview: the more keys assigned to this and held, the greater the increase.)
  • Hold for speed decrease: Divides teh scroll speed by the wheel speed multiplier value. (In preview: the more keys assigned to this and held, the greater the decrease.)
  • Wheel up/down/left/right: Executes smooth/continuous scrolling while held.
  • Wheel up/down/left/right fast: Executes smooth/continuous scrolling while held, with the wheel speed multiplier applied.
  • Wheel step up/down/left/right: Executes a discrete scroll event, the amount determined by the wheel step size setting. Responds to system 'autorepeat' when a key is held.
  • Wheel step up/down/left/right large: Executes a discrete scroll event, the amount determined by the wheel step size large setting. Responds to system 'autorepeat' when a key is held.
  • Jump to top/bottom/left/right edge (experimental): Executes a very large wheel event, to move the scrollable view to the given edge.
  • Move up/down/left/right (in preview): Moves the system mouse cursor.