---
name: "hyprctl"
section: "1"
platform: "linux"
package: "hyprland"
version: "0.57.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/hyprctl"
---

# hyprctl(1)

Utility for controlling parts of Hyprland from a CLI or a script

## NAME

hyprctl - Utility for controlling parts of Hyprland from a CLI or a script

## SYNOPSIS

**hyprctl** \[*(opt)flags*\] \[**command**\] \[*(opt)args*\]

## DESCRIPTION

**hyprctl** is a utility for controlling some parts of the compositor from a CLI or a script.

## CONTROL COMMANDS

**dispatch**

Call a dispatcher with an argument.

An argument must be present. For dispatchers without parameters it can be anything.

Returns: *ok* on success, and an error message on failure.

- Examples:

  **hyprctl** *dispatch* *"hl.dsp.exec\_cmd('kitty')"*

  **hyprctl** *dispatch "hl.dsp.window.close()"*

**keyword**

Set a config keyword dynamically.

This will not work if your config provider is lua (refer to **eval**)

Returns: *ok* on success, and an error message on failure.

- Examples:

  **hyprctl** *keyword bind SUPER,0,pseudo*

  **hyprctl** *keyword general:border\_size 10*

**eval**

Evaluate arbitrary Lua expressions dynamically when using a Lua-based config provider.

Returns: *ok* on success, and an error message on failure.

- Examples:

  **hyprctl** *eval 'hl.bind("SUPER + SHIFT + Q",* *hl.dsp.exec\_cmd("firefox"))'*

  **hyprctl** *eval 'hl.config({ general = { border\_size =* *10 } })'*

**reload**

Force a reload of the config file.

**kill**

Enter kill mode, where you can kill an app by clicking on it. You can exit by pressing ESCAPE.

## INFO COMMANDS

**version**

Prints the Hyprland version, 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 input devices.

**activewindow**

Returns the active window name.

**layers**

Lists all the layers.

**splash**

Returns the current random splash.

**status**

Returns internal status information like config format or backend.

## OPTIONS

- **--batch**

  Specify a batch of commands to execute.

  - Example:

    **hyprctl** *--batch "keyword general:border\_size 2 ;* *keyword general:gaps\_out 20"*

    *;* separates the commands.

- **-j**

  Outputs information in JSON.

## BUGS

- Submit bug reports and request features online at:

  \<*https://github.com/hyprwm/Hyprland/issues*\>

## SEE ALSO

Sources at: \<*https://github.com/hyprwm/Hyprland*\>

## COPYRIGHT

Copyright (c) 2022, vaxerski

## AUTHORS

Vaxerski \<*https://github.com/vaxerski*\>.
