hyprctl
command-line control utility for Hyprland, a dynamic tiling Wayland compositor
TLDR
SYNOPSIS
hyprctl [command] [arguments]
DESCRIPTION
hyprctl is the command-line control utility for Hyprland, a dynamic tiling Wayland compositor. It talks to the running compositor over its IPC socket to query state (monitors, workspaces, clients, devices) and to trigger actions at runtime, and is installed automatically alongside Hyprland.Dispatchers control actions like moving windows, changing workspaces, and executing programs, invoked via `hyprctl dispatch <DISPATCHER> [ARGS]`. Common dispatchers include exec, killactive, workspace, movewindow, fullscreen, and togglefloating; see the Dispatchers page in the Hyprland wiki for the full list.Runtime config values are read with getoption and set with keyword SECTION.OPTION VALUE; changes made this way are lost on the next reload unless also written to the config file. Since Hyprland added optional Lua-based configuration (`hyprland.lua`), hyprctl eval and hyprctl repl expose the same Lua API (`hl.dispatch`, `hl.config`, etc.) for scripting, alongside the traditional keyword/dispatch interface which still works for `hyprland.conf`-based setups.Because hyprctl calls are handled synchronously by the compositor, issuing many of them in quick succession (e.g. from a script) can cause visible stutter - use --batch to bundle several commands into a single request instead.
PARAMETERS
reload
Reload Hyprland configurationactivewindow
Show active window informationdevices
List input devicesworkspaces
List workspacesmonitors
List monitors and propertiesclients
List all windows/clientsdispatch DISPATCHER [ARGS]
Execute a dispatcher (window actions, workspace changes)keyword KEY VALUE
Set configuration option at runtimesetcursor THEME SIZE
Set cursor theme and sizeswitchxkblayout DEVICE CMD
Switch keyboard layout (CMD is `next`, `prev`, or a layout index)getoption SECTION.OPTION
Print the current value of a config option, e.g. `getoption general.border_size`layers
List layer-shell surfaces (bars, launchers, notifications, etc.)notify ICON TIMEMS COLOR MESSAGE_
Show an on-screen notification using Hyprland's built-in notification systemseterror COLOR MESSAGE | disable
Set (or clear) a persistent error bar messageeval LUA
Run a Lua expression against the Lua config API (e.g. `hl.dispatch(...)`), added alongside Hyprland's optional Lua configrepl
Start an interactive Lua REPL for the same API used by evaloutput create|remove BACKEND [NAME]
Add or remove a fake output (`wayland`, `headless`, or `auto` backend)--batch CMD1;CMD2;...
Execute multiple commands in one request, separated by semicolons - cuts down IPC round-trips versus many separate calls-j
Output in JSON format-r
Force a state refresh after issuing the command (e.g. after a layout or rule change)-i INSTANCE
Target a specific Hyprland instance (id or index from `hyprctl instances`) when more than one is running
INSTALL
CAVEATS
Only works when Hyprland is running, and talks only to the local Hyprland instance(s) via a Unix socket under `$XDGRUNTIMEDIR/hypr`. Changes made via keyword don't persist across restarts or reloads unless also saved to the config file. The Lua config system (and thus eval/repl) is optional and only active if `~/.config/hypr/hyprland.lua` exists; otherwise Hyprland falls back to the classic `hyprland.conf`.
HISTORY
hyprctl is part of the Hyprland project, a Wayland compositor created by Vaxry, first released in 2022 and known for its animations, dynamic tiling, and extensive customization. In 2026, Hyprland 0.55 added an optional Lua configuration system, extending hyprctl with the eval and repl commands for scripting alongside its existing keyword/dispatch interface.