Keybindings
Fully configurable global keyboard shortcuts. The Hyper key gives you access to all FazerWM actions.
Directional Presets
Every command that has a direction (focus, move column, move window, extract) can use the arrow cluster or a letter scheme. On first launch, the Setup Assistant asks which you prefer before the permissions step; the choice is written to config.yaml and everything else is identical between presets.
| Preset | Left | Down | Up | Right | Example (focus window left) |
|---|---|---|---|---|---|
| Default (arrows) | ← | ↓ | ↑ | → | Hyper+← |
| Vi | H | J | K | L | Hyper+H |
| Emacs | B | N | P | F | Hyper+B |
The modifiers stay the same in all presets: focus is hyper alone, display focus adds lcmd, column moves add loption, window moves add lshift, and display-targeted moves add lcmd to those. To switch later, edit the directional keys in ~/.config/FazerWM/config.yaml, or delete the file and relaunch to get the picker again.
The Hyper Key
The Hyper key is a chord. You press the right-side modifier keys at the same time:
The Hyper key is fully configurable. The default uses two right-side modifiers:
binds:
hyper: rshift+ropt
Modifier Key Names
| Key | Left | Right |
|---|---|---|
| Shift | lshift | rshift |
| Control | lctrl | rctrl |
| Option/Alt | loption | roption |
| Command | lcmd | rcmd |
Device-specific modifiers are separate. The left keys and the right keys are different.
FazerWM keybinds follow one consistent modifier rule: scope grows left to right, window → column → display, as the modifiers approach the space bar.
| Modifier | Scope |
|---|---|
| Hyper alone | Focus / view |
| LShift | Window operations |
| LOption | Column operations |
| LCmd | Display scope (combine with LShift or LOption) |
| LShift+LOption | Destructive structural (extract from a merge) |
Focus / View (Hyper alone)
| Action | Default Shortcut | Description |
|---|---|---|
| Toggle overview | Hyper+Tab | Open or close the workspace overview |
| Focus left | Hyper+← | Move focus to the previous column |
| Focus right | Hyper+→ | Move focus to the next column |
| Focus up | Hyper+↑ | Move focus up in the column stack |
| Focus down | Hyper+↓ | Move focus down in the column stack |
| Focus first window | Hyper+Home | Move focus to the first column in the workspace |
| Focus last window | Hyper+End | Move focus to the last column in the workspace |
| Focus display left | Hyper+LCmd+← | Switch to the adjacent display on the left |
| Focus display right | Hyper+LCmd+→ | Switch to the adjacent display on the right |
| Focus display up | Hyper+LCmd+↑ | Switch to the adjacent display above |
| Focus display down | Hyper+LCmd+↓ | Switch to the adjacent display below |
| Focus workspace 1–9 | Hyper+1–9 | Switch to a workspace |
| Focus workspace up | Hyper+' | Step to the previous workspace — named workspaces included |
| Focus workspace down | Hyper+/ | Step to the next workspace — named workspaces included |
| Toggle tiled visibility | Hyper+Z | Hide or show all tiled windows |
Displays always operate independently: each keeps its own workspaces and layout. With cross-display-wrap on, focus and move shortcuts that reach a workspace edge continue onto the adjacent display, landing on the window nearest the crossed edge: focus ←/→ and ↑/↓, move column ←/→, merge window ←/→, and reorder window ↑/↓. With the wrap detent enabled, the first press only arms the crossing and the second press does the jump or move, so one stray keypress cannot leave the display. Switching every display's workspaces in lockstep is a separate feature, couple-workspaces; see Multi-Monitor.
Column (Hyper + LOption)
| Action | Default Shortcut | Description |
|---|---|---|
| Move column left | Hyper+LOption+← | Move the focused column left |
| Move column right | Hyper+LOption+→ | Move the focused column right |
| Move column to first | Hyper+LOption+Home | Move the focused column to the first position |
| Move column to last | Hyper+LOption+End | Move the focused column to the last position |
| Shrink column width | Hyper+LOption+- | Decrease the column width by one preset step |
| Grow column width | Hyper+LOption+= | Increase the column width by one preset step |
| Column to workspace 1–9 | Hyper+LOption+1–9 | Move the column to a workspace |
| Column to display left | Hyper+LCmd+LOption+← | Move the column to the display on the left |
| Column to display right | Hyper+LCmd+LOption+→ | Move the column to the display on the right |
| Column to display up | Hyper+LCmd+LOption+↑ | Move the column to the display above |
| Column to display down | Hyper+LCmd+LOption+↓ | Move the column to the display below |
Window (Hyper + LShift)
| Action | Default Shortcut | Description |
|---|---|---|
| Move window up | Hyper+LShift+↑ | Move the window up in the stack |
| Move window down | Hyper+LShift+↓ | Move the window down in the stack |
| Move window left | Hyper+LShift+← | Merge the window into the column on the left |
| Move window right | Hyper+LShift+→ | Merge the window into the column on the right |
| Move window to first column | Hyper+LShift+Home | Merge the window into the first column in the workspace |
| Move window to last column | Hyper+LShift+End | Merge the window into the last column in the workspace |
| Window to workspace 1–9 | Hyper+LShift+1–9 | Move the window to a workspace |
| Window to display left | Hyper+LCmd+LShift+← | Move the window to the display on the left |
| Window to display right | Hyper+LCmd+LShift+→ | Move the window to the display on the right |
| Window to display up | Hyper+LCmd+LShift+↑ | Move the window to the display above |
| Window to display down | Hyper+LCmd+LShift+↓ | Move the window to the display below |
Destructive Structural (Hyper + LShift + LOption)
| Action | Default Shortcut | Description |
|---|---|---|
| Extract window left | Hyper+LShift+LOption+← | Extract the tab into its own column to the left |
| Extract window right | Hyper+LShift+LOption+→ | Extract the tab into its own column to the right |
Pro PRO
Four bindings sit in their own Pro group at the bottom of the Keybinds pane, dimmed and disabled on the free tier. Values are preserved and come back when you upgrade:
| Action | Default Shortcut | Description |
|---|---|---|
| Toggle column tabbed/tiled | Hyper+T | Flip the focused column between tabbed and tiled layout |
| Toggle focused window location | Hyper+C | Switch this session between Keep in View and Center focus placement. The saved setting is not changed |
| Toggle monocle mode | Hyper+M | Focused column fills the tiled area, centred; all other columns park until toggled off; focus changes swap the monocle column |
| Drag window title bar to move column | hold Hyper+LOption | Not a key press: hold this bind while dragging a window title bar to move the whole column. See Drag & Drop. |
Recent Windows Switcher
| Action | Default Shortcut |
|---|---|
| Next window (MRU) | LOpt+Tab |
| Previous window (MRU) | LOpt+LShift+Tab |
| Next window (same app) | LOpt+` |
| Previous window (same app) | LOpt+LShift+` |
Custom Keybind Format
Keybinds use a modifier+key notation. The config key names match the action that they perform:
binds:
hyper: rshift+ropt
# Focus / View (hyper alone)
overview: hyper+tab
focusWindowLeft: hyper+left
focusWindowRight: hyper+right
focusWindowFirst: hyper+home
focusWindowLast: hyper+end
focusWorkspace1: hyper+1
focusWorkspaceUp: hyper+quote
focusWorkspaceDown: hyper+slash
# Column (hyper + loption)
columnMoveLeft: hyper+loption+left
columnMoveRight: hyper+loption+right
columnMoveFirst: hyper+loption+home
columnMoveLast: hyper+loption+end
columnMoveToDisplayLeft: hyper+lcmd+loption+left
# Window (hyper + lshift)
windowMoveLeft: hyper+lshift+left
windowMoveRight: hyper+lshift+right
windowMoveFirst: hyper+lshift+home
windowMoveLast: hyper+lshift+end
windowMoveToDisplayLeft: hyper+lcmd+lshift+left
# Destructive structural (hyper + lshift + loption)
windowExtractLeft: hyper+lshift+loption+left
windowExtractRight: hyper+lshift+loption+right
# Pro
toggleColumnTabbed: hyper+t
toggleFocusedLocation: hyper+c
toggleMonocleMode: hyper+m
dragColumn: hyper+loption
# Recent windows (loption)
recentWindowNext: loption+tab
recentWindowPrevious: loption+lshift+tab
recentWindowSameAppNext: loption+grave
recentWindowSameAppPrevious: loption+lshift+grave
The keybindings update the moment you save the config file. You do not need a restart. You can unbind any action. Set the action to an empty string (for example, toggleMonocleMode: "").