Please keep in mind some layout-specific dispatchers will be listed in the layout pages (See the sidebar).
|window||a window. Any of the following: Class regex, |
|monitor||One of: direction, ID, name, |
|resizeparams||Pixel delta vec2 (e.g. |
|floatvalue||a relative float delta (e.g |
|exec||executes a shell command||command (supports rules, see below)|
|pass||passes the key (with mods) to a specified window. Can be used as a workaround to global keybinds not working on Wayland.||window|
|killactive||closes (not kills) the active window||none|
|closewindow||closes a specified window||window|
|workspace||changes the workspace||workspace|
|movetoworkspace||moves the focused window to a workspace||workspace OR |
|movetoworkspacesilent||same as above, but doesnt switch to the workspace||workspace OR |
|togglefloating||toggles the current window’s floating state||left empty / |
|fullscreen||toggles the focused window’s fullscreen state||0 - fullscreen (takes your entire screen), 1 - maximize (keeps gaps and bar(s))|
|fakefullscreen||toggles the focused window’s internal fullscreen state without altering the geometry||none|
|dpms||sets all monitors’ DPMS status. Do not use with a keybind directly.|
|pin||pins a window (i.e. show it on all workspaces) note: floating only||left empty / |
|movefocus||moves the focus in a direction||direction|
|movewindow||moves the active window in a direction or to a monitor||direction or |
|centerwindow||center the active window note: floating only||none|
|resizeactive||resizes the active window||resizeparams|
|moveactive||moves the active window||resizeparams|
|resizewindowpixel||resizes a selected window|
|movewindowpixel||moves a selected window|
|cyclenext||focuses the next window on a workspace||none (for next) or |
|swapnext||swaps the focused window with the next window on a workspace||none (for next) or |
|focuswindow||focuses the first window matching||window|
|focusmonitor||focuses a monitor||monitor|
|splitratio||changes the split ratio||floatvalue|
|toggleopaque||toggles the current window to always be opaque. Will override the ||none|
|movecursortocorner||moves the cursor to the corner of the active window||direction, 0 - 3, bottom left - 0, bottom right - 1, top right - 2, top left - 3|
|workspaceopt||toggles a workspace option for the active workspace.||workspaceopt|
|renameworkspace||rename a workspace|
|exit||exits the compositor with no questions asked.||none|
|forcerendererreload||forces the renderer to reload all resources and outputs||none|
|movecurrentworkspacetomonitor||Moves the active workspace to a monitor||monitor|
|moveworkspacetomonitor||Moves a workspace to a monitor||workspace and a monitor separated by a space|
|swapactiveworkspaces||Swaps the active workspaces between two monitors||two monitors separated by a space|
|bringactivetotop||Brings the current window to the top of the stack||none|
|togglespecialworkspace||toggles a special workspace on/off||none (for the first) or name for named (name has to be a special workspace’s name)|
|focusurgentorlast||Focuses the urgent window or the last window||none|
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:
Relative ID: e.g.
Relative workspace on monitor: e.g.
Relative open workspace: e.g.
First available empty workspace:
special:namefor named special workspaces.
specialis supported ONLY on
movetoworkspace. Any other dispatcher will result in undocumented behavior.
Numerical workspaces (e.g.
127634934729) are allowed ONLY between 1 and 9223372036854775806 (inclusive)
0nor negative numbers are allowed.
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.
allfloat -> makes all new windows floating (also floats/unfloats windows on toggle) allpseudo -> makes all new windows pseudo (also pseudos/unpseudos on toggle)
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
bind = SUPER, E, exec, [workspace 2 silent;float;noanim] kitty