`hyprctl` is a utility for controlling some parts of the compositor from a CLI or a script. If you install with `make install`, or any package, it should automatically be installed. To check if `hyprctl` is installed, simply execute it by issuing `hyprctl` in the terminal. If it's not, go to the repo root and `/hyprctl`. Issue a `make all` and then `sudo cp ./hyprctl /usr/bin`. # Commands {{< hint type=warning >}} _hyprctl_ calls will be dispatched by the compositor _synchronously_, meaning any spam of the utility will cause slowdowns. It's recommended to use `--batch` for many control calls, and limiting the amount of info calls. For live event handling, see the [socket2](../../IPC/). {{< /hint >}} ## Control ### Dispatch issue a `dispatch` to call a keybind dispatcher with an arg. An arg has to be present, for dispatchers without parameters it can be anything. Examples: ```sh hyprctl dispatch exec kitty hyprctl dispatch pseudo x ``` Returns: `ok` on success, an error message on fail. See [Dispatchers](./Dispatchers) for a list of dispatchers. ### Keyword issue a `keyword` to call a config keyword dynamically. Examples: ```sh hyprctl keyword bind SUPER,O,pseudo hyprctl keyword general:border_size 10 ``` Returns: `ok` on success, an error message on fail. ### Reload issue a `reload` to force reload the config. ### kill issue a `kill` to get into a kill mode, where you can kill an app by clicking on it. You can exit it with ESCAPE. Kind of like xkill. ### setcursor Sets the cursor theme and reloads the cursor manager. Will set the theme for everything except GTK, because GTK. params: theme and size e.g.: ```sh hyprctl setcursor Bibata-Modern-Classic 24 ``` ## Info ```sh version - prints the hyprland version, meaning flags, commit and branch of build. monitors - lists all the outputs with their properties workspaces - lists all workspaces with their properties clients - lists all windows with their properties devices - lists all connected keyboards and mice activewindow - gets the active window name layers - lists all the layers splash - prints the current random splash getoption [option] - gets the config option status (values) ``` For the `getoption` command, you need to pass the command in the following format: ```sh hyprctl getoption section:option ``` e.g. ```sh hyprctl getoption general:border_size ``` See [Variables](./Variables) for section and options you can use. # Batch You can also use `--batch` to specify a batch of commands to execute e.g. ```sh hyprctl --batch "keyword general:border_size 2 ; keyword general:gaps_out 20" ``` `;` separates the commands # Flags You can specify flags for the request like this: ```sh hyprctl -j monitors ``` flag list: ``` j -> output in JSON ```