LinuxCommandLibrary
GitHubF-DroidGoogle Play Store

hyprctl

command-line control utility for Hyprland, a dynamic tiling Wayland compositor

TLDR

Reload the configuration after editing it
$ hyprctl reload
copy
Show the connected monitors and their modes
$ hyprctl monitors
copy
Show every open window
$ hyprctl clients
copy
Show the focused window as JSON, ready for a status bar
$ hyprctl -j activewindow
copy
Show the active workspace
$ hyprctl activeworkspace
copy
List the input devices, whose names the config refers to
$ hyprctl devices
copy
List the configured keybindings
$ hyprctl binds
copy
Run a dispatcher, the same actions `bind` uses
$ hyprctl dispatch exec [kitty]
copy
Change a configuration option at runtime
$ hyprctl keyword [general:gaps_in] [10]
copy
Read an option's current value
$ hyprctl getoption [general:gaps_in]
copy
Close a window by clicking it
$ hyprctl kill
copy
Show a notification on screen
$ hyprctl notify [1] [3000] [0] "[Config reloaded]"
copy
Dump the system information used in bug reports
$ hyprctl systeminfo
copy

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 configuration
activewindow
Show active window information
devices
List input devices
workspaces
List workspaces
monitors
List monitors and properties
clients
List all windows/clients
dispatch DISPATCHER [ARGS]
Execute a dispatcher (window actions, workspace changes)
keyword KEY VALUE
Set configuration option at runtime
setcursor THEME SIZE
Set cursor theme and size
switchxkblayout 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 system
seterror COLOR MESSAGE | disable
Set (or clear) a persistent error bar message
eval LUA
Run a Lua expression against the Lua config API (e.g. `hl.dispatch(...)`), added alongside Hyprland's optional Lua config
repl
Start an interactive Lua REPL for the same API used by eval
output 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

sudo pacman -S hyprland
copy
sudo apk add hyprland
copy
sudo zypper install hyprland
copy
nix profile install nixpkgs#hyprland
copy

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.

SEE ALSO

RESOURCES

Braincup
Open source brain training for math, memory and focus
Braincup mini-games
41 mini-games · Apache-2.0
No ads · No tracking
Play in browser
Download Braincup on the App StoreGet Braincup on Google PlayGet Braincup on F-Droid
276 stars
From the maker of Linux Command Library
Copied to clipboard
Braincup
Open source brain training for math, memory and focus. 41 mini-games, from mental arithmetic to Sudoku, N-Back and Solo Chess.
Apache-2.0 licensed · No ads · No tracking · No account
From the maker of Linux Command Library
Download Braincup on the App StoreGet Braincup on Google PlayGet Braincup on F-Droid