Hyprland Wiki
Contribute to the Wiki!Toggle Dark/Light/Auto modeToggle Dark/Light/Auto modeToggle Dark/Light/Auto modeBack to homepage


Table of contents

Please keep in mind some layout-specific dispatchers will be listed in the layout pages (See the sidebar).

Parameter explanation

Param typeDescription
windowa window. Any of the following: Class regex, title: and a title regex, pid: and the pid, address: and the address
workspacesee below.
directionl r u d left right up down
monitorOne of: direction, ID, name, current, relative (e.g. +1 or -1)
resizeparamsPixel delta vec2 (e.g. 10 -10) or exact followed by exact vec2 (e.g. exact 1280 720)
floatvaluea relative float delta (e.g -0.2 or +0.2) or exact followed by a the exact float value (e.g. exact 0.5)
workspaceoptsee below.

List of Dispatchers

execexecutes a shell commandcommand (supports rules, see below)
passpasses the key (with mods) to a specified window. Can be used as a workaround to global keybinds not working on Wayland.window
killactivecloses (not kills) the active windownone
closewindowcloses a specified windowwindow
workspacechanges the workspaceworkspace
movetoworkspacemoves the focused window to a workspaceworkspace OR workspace,window for a specific window
movetoworkspacesilentsame as above, but doesnt switch to the workspaceworkspace OR workspace,window for a specific window
togglefloatingtoggles the current window’s floating stateleft empty / active for current, or window for a specific window
fullscreentoggles the focused window’s fullscreen state0 - fullscreen (takes your entire screen), 1 - maximize (keeps gaps and bar(s))
fakefullscreentoggles the focused window’s internal fullscreen state without altering the geometrynone
dpmssets all monitors’ DPMS status. Do not use with a keybind directly.on or off, for specific monitor add monitor name after a space
pinpins a window (i.e. show it on all workspaces) note: floating onlyleft empty / active for current, or window for a specific window
movefocusmoves the focus in a directiondirection
movewindowmoves the active window in a direction or to a monitordirection or mon: and a monitor
centerwindowcenter the active window note: floating onlynone
resizeactiveresizes the active windowresizeparams
moveactivemoves the active windowresizeparams
resizewindowpixelresizes a selected windowresizeparams,window, e.g. 100 100,^(kitty)$
movewindowpixelmoves a selected windowresizeparams,window
cyclenextfocuses the next window on a workspacenone (for next) or prev (for previous)
swapnextswaps the focused window with the next window on a workspacenone (for next) or prev (for previous)
focuswindowfocuses the first window matchingwindow
focusmonitorfocuses a monitormonitor
splitratiochanges the split ratiofloatvalue
toggleopaquetoggles the current window to always be opaque. Will override the opaque window rules.none
movecursortocornermoves the cursor to the corner of the active windowdirection, 0 - 3, bottom left - 0, bottom right - 1, top right - 2, top left - 3
workspaceopttoggles a workspace option for the active workspace.workspaceopt
renameworkspacerename a workspaceid name, e.g. 2 work
exitexits the compositor with no questions asked.none
forcerendererreloadforces the renderer to reload all resources and outputsnone
movecurrentworkspacetomonitorMoves the active workspace to a monitormonitor
moveworkspacetomonitorMoves a workspace to a monitorworkspace and a monitor separated by a space
swapactiveworkspacesSwaps the active workspaces between two monitorstwo monitors separated by a space
bringactivetotopBrings the current window to the top of the stacknone
togglespecialworkspacetoggles a special workspace on/offnone (for the first) or name for named (name has to be a special workspace’s name)
focusurgentorlastFocuses the urgent window or the last windownone

it is NOT recommended to set DPMS with a keybind directly, as it might cause undefined behavior. Instead, consider something like

bind = MOD,KEY,exec,sleep 1 && hyprctl dispatch dpms off


You have eight choices:

  • ID: e.g. 1, 2, or 3

  • Relative ID: e.g. +1, -3 or +100

  • Relative workspace on monitor: e.g. m+1, m-1 or m+3

  • Relative open workspace: e.g. e+1 or e-10

  • Name: e.g. name:Web, name:Anime or name:Better anime

  • Previous workspace: previous

  • First available empty workspace: empty

  • Special Workspace: special or special:name for named special workspaces.

special is supported ONLY on movetoworkspace. Any other dispatcher will result in undocumented behavior.

Numerical workspaces (e.g. 1, 2, 127634934729) are allowed ONLY between 1 and 9223372036854775806 (inclusive)

Neither 0 nor negative numbers are allowed.

Special Workspace

A special workspace is what is called a “scratchpad” in some other places. A workspace that you can toggle on/off on any monitor.

You cannot have floating windows in a Special workspace. Making a window floating will send it to the currently active real workspace.

You can define multiple named special workspaces, but the amount of those is limited to 97 at a time.

Workspace options

allfloat -> makes all new windows floating (also floats/unfloats windows on toggle)
allpseudo -> makes all new windows pseudo (also pseudos/unpseudos on toggle)

Executing with rules

The exec dispatcher supports adding rules. Please note some windows might work better, some worse. It records the PID of the spawned process and uses that. If your process e.g. forks and then the fork opens a window, this will not work.

The syntax is:

bind = mod, key, exec, [rules...] command

For example:

bind = SUPER, E, exec, [workspace 2 silent;float;noanim] kitty