Actions

September 5, 2026 ยท View on GitHub

Actions are the compositor's verbs. Bind one under [keybinds], attach it to a hot corner, or run it with umbriel msg <action>. umbriel msg --help prints this same list, with the same wording and the same grouping. See Keybinds for chord syntax and IPC for the socket behind umbriel msg, including the event stream that reports what an action changed.

Argument forms

An action takes at most one argument, appended after a colon. <angle> forms are required, [bracket] forms are optional.

FormMeaning
<cmd>Command line, run through the shell: spawn:kitty
<name>Submap to enter; submap:reset leaves one level
<workspace>[/<output>]Workspace name or 1-based position, optionally qualified by output: workspace-switch:CHAT/HDMI-A-1
<window-id>Window id from umbriel windows
[<window-id>]The same id; the bare action targets the focused window
[<output>]Connector or monitor name. Bare scratchpad actions target the output under the pointer; bare dpms-off and dpms-on target every configured output
<fraction>0.1 to 1.0 of the column extent, or of the usable area for a floating window
<delta>Signed -0.9 to 0.9; the result clamps to 0.1 to 1.0
<scrolling|dwindle|master|toggle>Layout mode for workspace-set-layout; toggle cycles scrolling, dwindle, master
[skip-confirmation]session-quit only: quit without the on-screen confirmation

Apps

ActionEffect
spawn:<cmd>Run a command with a launch activation token

Focus

ActionEffect
column-focus-firstFocus the first column in the workspace
column-focus-lastFocus the last column in the workspace
output-focus-downFocus the output below
output-focus-leftFocus the output to the left
output-focus-rightFocus the output to the right
output-focus-upFocus the output above
window-focus:<window-id>Focus the given window
window-focus-downFocus the next window down in the column
window-focus-lastFocus the previously focused window
window-focus-leftFocus the window to the left
window-focus-nextFocus the next window in layout order
window-focus-or-output-downFocus down, or the output below at the edge
window-focus-or-output-leftFocus left, or the output left at the edge
window-focus-or-output-rightFocus right, or the output right at the edge
window-focus-or-output-upFocus up, or the output above at the edge
window-focus-or-workspace-downFocus down, or the next workspace at the edge
window-focus-or-workspace-upFocus up, or the previous workspace at the edge
window-focus-previousFocus the previous window in layout order
window-focus-rightFocus the window to the right
window-focus-switch-floatingFocus the last window of the opposite floating state
window-focus-upFocus the next window up in the column
window-focus-warp:<window-id>Focus the given window and warp the cursor to it
workspace-focus-lastFocus the previously active workspace

Move & size

Sizing rules per layout live in Sizing behavior.

ActionEffect
column-centerCenter the focused column in the viewport
column-move-leftMove the focused column one position left
column-move-rightMove the focused column one position right
column-move-to-firstMove the focused column to the first position
column-move-to-lastMove the focused column to the last position
column-move-to-output-downMove the focused column to the output below
column-move-to-output-leftMove the focused column to the output left
column-move-to-output-rightMove the focused column to the output right
column-move-to-output-upMove the focused column to the output above
layout-master-count-decreaseDemote the last master window to the stack
layout-master-count-increasePromote the first stack window to master
layout-scroll-downScroll the strip toward its end
layout-scroll-dragPan the strip while the bound button is held
layout-scroll-leftScroll the strip toward its start
layout-scroll-rightScroll the strip toward its end
layout-scroll-upScroll the strip toward its start
window-centerCenter the focused floating window on its output
window-consume-leftStack the focused window into the column left
window-consume-or-expel-leftSplit the window out, or stack it into the column left
window-consume-or-expel-rightSplit the window out, or stack it into the column right
window-consume-rightStack the focused window into the column right
window-cycle-heightCycle the focused window through the height presets
window-cycle-height-backCycle the height presets in reverse
window-cycle-widthCycle the focused column through the width presets
window-cycle-width-backCycle the width presets in reverse
window-modify-height:<delta>Change the focused window's height by a fraction
window-modify-width:<delta>Change the focused column's width by a fraction
window-move-downMove the focused window down in its column
window-move-or-output-downMove down, or the column to the output below
window-move-or-output-leftMove the column left, or to the output left
window-move-or-output-rightMove the column right, or to the output right
window-move-or-output-upMove up, or the column to the output above
window-move-or-workspace-downMove down, or to the next workspace at the edge
window-move-or-workspace-upMove up, or to the previous workspace at the edge
window-move-to-output-downMove the focused window to the output below
window-move-to-output-leftMove the focused window to the output left
window-move-to-output-rightMove the focused window to the output right
window-move-to-output-upMove the focused window to the output above
window-move-upMove the focused window up in its column
window-set-height:<fraction>Set the focused window's height fraction
window-set-width:<fraction>Set the focused column's width fraction
window-swap-nextSwap with the next window in layout order
window-swap-previousSwap with the previous window in layout order

Windows

ActionEffect
window-close:[<window-id>]Close the focused window, or the given window
window-toggle-floatingFloat or tile the focused window
window-toggle-fullscreenToggle fullscreen or exit a window covering the focus
window-toggle-maximizeToggle full width for the focused column
window-toggle-maximize-to-edgesToggle maximize without gaps, struts, or borders
window-toggle-pinnedPin the focused window above other windows

Scratchpad

Every output has its own holding area. Scratchpads covers the workflow, restoration rules, and multi-output behavior.

ActionEffect
scratchpad-focus-next:[<output>]Focus the next visible scratchpad window
scratchpad-toggle:[<output>]Show or hide the output's scratchpad windows
window-move-to-scratchpad:[<output>]Move the focused window into the scratchpad
window-restore-from-scratchpad:[<output>]Return the scratchpad window to its saved workspace
window-toggle-scratchpad:[<output>]Move the focused window to or from the scratchpad

Workspaces

Selector resolution, including numeric names and /output qualifiers, is described in Workspace selectors.

ActionEffect
column-move-to-workspace:<workspace>[/<output>]Move the focused column to the selected workspace
column-move-to-workspace-nextMove the focused column to the next workspace
column-move-to-workspace-previousMove the focused column to the previous workspace
window-move-to-workspace:<workspace>[/<output>]Move the focused window to the selected workspace
window-move-to-workspace-nextMove the focused window to the next workspace
window-move-to-workspace-previousMove the focused window to the previous workspace
workspace-move-downMove the focused workspace down the list
workspace-move-to-output-downMove every workspace window to the output below
workspace-move-to-output-leftMove every workspace window to the output left
workspace-move-to-output-rightMove every workspace window to the output right
workspace-move-to-output-upMove every workspace window to the output above
workspace-move-upMove the focused workspace up the list
workspace-nextSwitch to the next workspace on this output
workspace-previousSwitch to the previous workspace on this output
workspace-set-layout:<scrolling|dwindle|master|toggle>Set the active workspace's layout mode
workspace-switch:<workspace>[/<output>]Switch to the selected workspace

Overview

Dragging windows between previews and creating workspaces by dropping into a gap are described in Overview.

ActionEffect
overview-closeClose the workspace overview
overview-openOpen the workspace overview
overview-toggleOpen or close the workspace overview

System

ActionEffect
cheatsheet-closeHide the keybind cheatsheet
cheatsheet-openShow the keybind cheatsheet
cheatsheet-toggleShow or hide the keybind cheatsheet
config-reloadReload the configuration file
dpms-off:[<output>]Power off one output, or every output when bare
dpms-on:[<output>]Power on one output, or every output when bare
keyboard-layout-nextSwitch one keyboard to its next configured layout
session-quit:[skip-confirmation]Quit the session, confirming first unless told to skip
submap:<name>Enter a submap layer, or leave one with 'reset'

Layout differences

Column-scoped actions operate on the active layout's column projection, described in Layouts. Where that projection changes what an action does, this is the full list:

ActionScrollingDwindleMaster
column-move-left, column-move-rightReorders the focused columnSwaps the focused window with the neighboring tileExchanges the master and stack contents, and does nothing while either area is empty
column-move-to-first, column-move-to-lastMoves the column to that end of the workspaceSwaps the focused window with the first or last tileExchanges master and stack unless the focused area is already first or last
window-consume-left, window-consume-rightStacks the window into the adjacent columnSwaps with the adjacent on-screen tile in that directionMoves the window between the master and stack areas
window-consume-or-expel-left, window-consume-or-expel-rightSplits a stacked window into its own column, or stacks a lone window into the adjacent oneSwaps with the adjacent on-screen tile in that directionMoves the window between the master and stack areas
window-set-height, window-modify-height, window-cycle-height, window-cycle-height-backSizes the row within its columnAdjusts the vertical splits containing the windowSizes the row within the master or stack area
column-centerCenters the column in the viewportReturns an IPC errorReturns an IPC error
layout-scroll-left, layout-scroll-right, layout-scroll-up, layout-scroll-down, layout-scroll-dragPans the stripNo effectNo effect
layout-master-count-increase, layout-master-count-decreaseNo effectNo effectMoves one window between master and stack

Dwindle and master have no horizontal viewport, so the vertical splits and areas absorb what scrolling would express as column geometry. On a vertical scrolling workspace the directional actions follow their visual directions; see Vertical workspaces.

Notes

  • Launch tokens. spawn: exports a one-shot XDG_ACTIVATION_TOKEN and a matching DESKTOP_STARTUP_ID to the command. A single-instance application can pass that token to its existing window so Umbriel reveals it, including when the window remaps after hiding in a tray. Startup commands from general.autostart receive no launch token.
  • Quitting. Bare session-quit opens an on-screen confirmation: Enter or the quit bind confirms, any other key or a click cancels, and a second session-quit also quits. While the session is locked it quits without the dialog.
  • Cursor. With input.cursor.follows_focus enabled, focus navigation and window or column transfers between workspaces warp the cursor to the visible center of the focused window. This includes local window-move-or-output-* moves, transfers to another output, output focus actions, and foreign- toplevel activation requests from docks and taskbars. Pointer-driven and automatic focus changes never move the cursor. window-focus:<window-id> stays focus-only, while window-focus-warp:<window-id> always moves it.
  • Across outputs. Directions never wrap: with no monitor in that direction the action fails with an IPC error naming it ("no output to the left" and friends). Otherwise the cursor warps to the center of the target monitor so focus follows the action. With input.cursor.follows_focus enabled, it then settles on the focused window's visible center when the target workspace has one. A moved window or column uses that same target. Output direction comes from output centers in logical coordinates, so fractional-scale rounding does not hide a neighbor.
  • Cycling. window-focus-next and window-focus-previous walk the tiled windows in layout order, then the floating ones, wrapping in both directions. window-swap-next and window-swap-previous exchange the focused tiled window with its layout-order neighbor, wrap at both ends, and keep focus on the moved window.
  • Workspace order. workspace-next, workspace-previous, workspace-move- up, and workspace-move-down never wrap: on the first workspace, the previous forms are silent no-ops. On a dynamic output, workspace-next reaches the trailing empty workspace, which becomes active as usual.
  • Columns as a unit. A whole-column move preserves member order, the column width, its full-width restore value, and stacked row proportions. In master layout it transfers every member of the focused master or stack area. A column moved onto a dwindle workspace flattens into single-window columns. With a floating window focused there is no column, so the destination-moving column actions act like their window counterparts.
  • Floating and pinned. window-toggle-floating remembers the window's floating size and position; the first time a window floats, Umbriel places it slightly below and to the right of its tiled position while keeping it on- screen. window-toggle-pinned floats the window and keeps it above fullscreen windows on its output, visible across workspace switches and hidden for as long as the overview is open. A fullscreen window cannot be pinned, and making a pinned window fullscreen drops the pin.
  • Unavailable actions. When an action has no meaning in the active layout, its keybind does nothing and umbriel msg returns an error naming the requirement.