Skip to content

Keyboard Shortcuts

All global shortcuts are customizable in Settings > Keyboard Shortcuts. A shortcut can also be an extra mouse button, alone or with modifiers: click the shortcut, then press the button over it. OmniWM consumes a bound press, so the app under the pointer does not also receive it, and a button used by the System Hyper Trigger or Overview must be unassigned there first. Hyper is the literal Control + Option + Shift + Command chord by default; which modifiers make up Hyper is configurable in Settings > Keyboard Shortcuts (for example, exclude Shift to keep Hyper + Shift + … free for extra bindings). Changing the combination retargets every shortcut that currently resolves to Hyper onto the new one, so the shortcut list updates in place as you toggle the modifiers.

Optionally pick a System Hyper Trigger — a single key (Caps Lock, F13–F20, or a left- or right-side modifier) or an extra mouse button that acts as Hyper while held (this needs the Input Monitoring permission). Leave the trigger as None if you already produce Hyper another way, such as a Karabiner Elements remap.

Settings > Keyboard Shortcuts lists all actions that can be assigned a shortcut, including advanced actions.

Confirm the binding and any registration warning in Settings > Keyboard Shortcuts, then check Settings > Troubleshooting for related diagnostics. If skhd, Raycast, or another shortcut utility is still running with the same binding, stop it or reassign the conflicting shortcut before editing settings.toml.

HotkeyClash can inspect shortcuts across supported apps, config files, and macOS. It does not parse Raycast settings.

  • Shared works in any active layout.
  • Niri works only when the active workspace uses the Niri layout.
  • Dwindle works only when the active workspace uses the Dwindle layout.
Action Default Shortcut Layout
Switch to Workspace 1-9 Option + 1-9 Shared
Move Focused Window to Workspace 1-9 Option + Shift + 1-9 Shared
Switch to Workspace Slot 1-9 (position on the current monitor) Unassigned Shared
Move Focused Window to Workspace Slot 1-9 (position on the current monitor) Unassigned Shared
Switch to Last Active Workspace (Back and Forth) Control + Option + Tab Shared
Switch to Next Workspace Unassigned Shared
Switch to Previous Workspace (Sequential) Unassigned Shared
Move Focused Window to Workspace Up Control + Option + Shift + Up Arrow Shared
Move Focused Window to Workspace Down Control + Option + Shift + Down Arrow Shared
Move Focused Column to Workspace 1-9 Unassigned Niri
Move Focused Column to Workspace Up Control + Option + Shift + Page Up Niri
Move Focused Column to Workspace Down Control + Option + Shift + Page Down Niri

Creating workspace 10 or higher adds its Switch, Move, and Move Column actions to Settings > Keyboard Shortcuts as Unassigned. The rows disappear when the workspace is removed.

Action Default Shortcut Layout
Focus Left / Right / Up / Down Option + Arrow Keys Shared
Focus Next / Previous Window (Wrap) Unassigned Shared
Focus First / Last Window in Column Unassigned Niri
Focus Window or Workspace Down / Up Unassigned Niri
Focus Previously Focused Window Option + Tab Shared
Traverse Backward Unassigned Niri
Traverse Forward Unassigned Niri
Focus First Column Option + Home Niri
Focus Last Column Option + End Niri
Focus Column 1-9 Control + Option + 1-9 Niri
Focus Window 1-9 in Column Unassigned Niri
Toggle Command Palette Control + Option + Space Shared
Open Menu Anywhere Control + Option + M Shared
Set Mark on Focused Window Unassigned Shared
Remove Mark from Focused Window Unassigned Shared
Close Focused Window Unassigned Shared
Toggle Workspace Bar Unassigned Shared
Toggle Hidden Icons Panel Unassigned Shared
Toggle Quake Terminal Option + ` Shared
Toggle Overview Option + Shift + O Shared
Toggle System Stats Unassigned Shared
Volume Up Unassigned Shared
Volume Down Unassigned Shared
Mute or Unmute Volume Unassigned Shared
Play or Pause Media Unassigned Shared
Next Track Unassigned Shared
Previous Track Unassigned Shared
Toggle <drawer or widget> Unassigned Shared

Settings > Keyboard Shortcuts lists a Toggle action for every shell drawer and every shell widget with a popout. A bound Toggle stays in the list even while its drawer or widget is missing. The volume, media and Toggle actions are Unreleased: available when building from main.

The Set Mark and Remove Mark global actions and the Command Palette mark shortcuts below are available.

These shortcuts are available while the Command Palette is open in Windows mode. They act on the selected window row and are shown beside the matching Palette actions.

Action Shortcut
Mark selected window Control + Option + Shift + M
Remove a mark from the selected window Control + Option + Shift + R

These shortcuts are local to the open Palette and yield to conflicting enabled global shortcuts; the affected Palette action remains available as a button. Set Mark on Focused Window and Remove Mark from Focused Window are also available as separate, unassigned actions in Settings > Keyboard Shortcuts for configurable global shortcuts. Outside the Palette, key combinations retain their configured global behavior.

Action Default Shortcut Layout
Move Left / Right / Up / Down Option + Shift + Arrow Keys Shared
Move Window to Previous / Next Position Unassigned Shared
Move Window Down or to Workspace Down / Up or to Workspace Up Unassigned Niri
Pull Top Window from Next Column into Focused Column Unassigned Niri
Push Bottom Window from Focused Column into New Column Unassigned Niri

The pull action treats the focused column as the destination and does nothing when there is no next column. The push action moves the bottom window from the focused column into a new following column. Neither action wraps, and there is no pull-from-previous action.

Action Default Shortcut Layout
Focus Next Monitor in Order Control + Command + Tab Shared
Focus Previous Monitor in Order Unassigned Shared
Focus Last Active Monitor Control + Command + ` Shared
Move Workspace to Monitor on Left / Right / Above / Below Unassigned Shared
Move Focused Window to Monitor on Left / Right / Above / Below Unassigned Shared

The workspace-to-monitor actions target the active workspace and intentionally use the same temporary runtime override as omniwmctl workspace move-to-monitor --force. They do not rewrite the workspace’s Home Monitor or swap workspaces, and unsafe fullscreen, hidden-app, scratchpad, or focus states still block the move.

The window-to-monitor actions send the focused window directly to the current workspace on the adjacent routed display, independently of Move Window Across Monitor at Edge. They do not wrap when no monitor exists in that direction. Follow Window to Monitor controls whether focus follows the window; when it is off, you remain in the source workspace.

Action Default Shortcut Layout
Toggle OmniWM Fullscreen Option + Return Shared
Toggle Native Fullscreen Unassigned Shared
Balance Sizes Option + Shift + B Shared
Cycle Size Forward Option + . Shared
Cycle Size Backward Option + , Shared
Move to Root Unassigned Dwindle
Toggle Split Unassigned Dwindle
Swap Split Unassigned Dwindle
Grow Horizontally / Vertically Unassigned Dwindle
Shrink Horizontally / Vertically Unassigned Dwindle
Grow / Shrink Focused Window Unassigned Dwindle
Preselect Left / Right / Up / Down Unassigned Dwindle
Clear Preselection Unassigned Dwindle
Raise All Floating Windows Option + Shift + R Shared
Toggle Floating/Tiled Focus Unassigned Shared
Rescue Off-Screen Floating Windows Unassigned Shared
Toggle Focused Window Floating Unassigned Shared
Toggle Scratchpad 1-10 Assignment for Focused Window Unassigned Shared
Toggle Scratchpad 1-10 Unassigned Shared
Toggle Workspace Layout Option + Shift + L Shared
Action Default Shortcut Layout
Move Container Left / Right Control + Option + Shift + Left / Right Arrow Shared
Move Container Up / Down Unassigned Dwindle
Toggle Tabbed Mode for Focused Column Option + T Niri
Toggle Container Full Primary Span Option + Shift + F Niri
Expand Container to Available Primary Span Control + Option + F Niri
Move Focused Column to First / Last Position Control + Option + Home / End Niri
Move Focused Column to Position 1-9 Unassigned Niri
Shrink / Grow Container Primary Span Option + - / Option + = Niri
Shrink / Grow Window Secondary Span Option + Shift + - / Option + Shift + = Niri
Shrink / Grow Window Primary Span Unassigned Niri
Reset Window Secondary Span Control + Option + R Niri
Cycle Window Primary Span Forward / Backward Unassigned Niri
Cycle Window Secondary Span Forward / Backward Unassigned Niri
Center Focused Column Unassigned Niri
Center Visible Columns Unassigned Niri

Niri grow/shrink actions use a configurable increment, defaulting to 5% instead of 10%. Change Resize Increment in Niri settings or [niri].resizeStepPercent in TOML (1–100). Explicit omniwmctl size arguments keep their specified amounts.

Consume or Expel Window Left / Right exist as automation-only actions. They are reachable from omniwmctl but never appear in Settings > Keyboard Shortcuts, because they intentionally cannot be bound to a shortcut.

The daily Focus and Move shortcuts adapt to the active layout and Niri orientation. In horizontal Niri orientation, Move Left / Right consumes or expels across columns while Move Up / Down reorders within a column. Vertical orientation rotates those roles: Move Up / Down consumes or expels across rows while Move Left / Right reorders within a row.

Dwindle groups use the existing Focus and Move bindings, so there are no separate group shortcuts to memorize. Only the active member occupies the tile; the other members stay hidden and the clickable tab rail shows their order.

Goal Default Shortcut Behavior
Focus another tile Option + Arrow Keys Left / Right are always spatial. Up / Down are spatial for a singleton tile.
Select the next / previous tab Option + Down / Up Arrow Within a group, Down advances and Up goes back. At the group edge OmniWM tries a spatial tile, then the configured monitor transition, and wraps locally only when neither exit succeeds.
Join a singleton into a tile or group Option + Shift + Arrow Keys Joins the focused singleton with the touching tile in that direction.
Extract the active tab Option + Shift + Arrow Keys When the focused tile is grouped, extracts only its active tab onto the requested side.
Move the complete tile or group Control + Option + Shift + Left / Right Arrow Move Container swaps the whole structure. Up / Down are advanced, unassigned Dwindle actions.
Select an exact tab Click its tab rail item Reveals and focuses that member without changing the group order.

Moving a tab directly from one existing group into another is intentionally a two-step operation: extract it first, then move the resulting singleton toward the destination group. A singleton at a genuine workspace edge can still use the normal cross-monitor Move behavior; a rejected group mutation does not fall through to tile swapping or monitor movement.

The unassigned advanced actions are available in Settings > Keyboard Shortcuts. Focus Next / Previous Window (Wrap) always wraps within the active Niri column or Dwindle group. Move Window to Previous / Next Position changes the active member’s position by one without wrapping. Move Container is the whole-structure escape hatch and never transfers to another monitor at a workspace edge. Dwindle join/extract and Move Container operations are intentionally unavailable while Overview is open; leave Overview before changing a Dwindle tree.

These are the default shortcuts inside the Quake Terminal. Customize tab and pane shortcuts in your Ghostty configuration.

Action Default Shortcut
New Tab Cmd + T
Close Tab Cmd + W
Next Tab Cmd + Shift + ]
Previous Tab Cmd + Shift + [
Next Tab (Alt) Ctrl + Tab
Previous Tab (Alt) Ctrl + Shift + Tab
Select Tab 1-9 Cmd + 1-9
Split Pane (Horizontal) Cmd + D
Split Pane (Vertical) Cmd + Shift + D
Close Pane Cmd + Shift + W
Equalize Splits Cmd + Shift + =
Navigate Pane Cmd + Option + Arrow Keys