Hyprland
Hyprland is a wlroots-based tiling Wayland compositor written in C++. Noteworthy features of Hyprland include dynamic tiling, tabbed windows, a clean and readable C++ code-base, and a custom renderer that provides window animations, rounded corners, and Dual-Kawase Blur on transparent windows. General usage and configuration is thoroughly documented at Hyprland GitHub wiki.
Installation
Hyprland can be installed from the AUR or by building from source.
Hyprland bundles its own version of wlroots, which closely follows the wlroots-gitAUR. This improves stability, while also avoiding dependency conflicts with other wlroots-based compositors.
From the AUR
Install the hyprlandAUR, hyprland-binAUR or hyprland-gitAUR packages.
From source
Hyprland is a very active repository. At this time, it sees typically several commits per day.
$ git clone --recursive https://github.com/vaxerski/Hyprland $ cd Hyprland # make install
the --recursive
flag will pull the appropriate version of wlroots and build it locally for Hyprland.
Usage
Starting
It is currently recommended to start Hyprland from a TTY.
$ Hyprland
You can also execute a script of your own, e.g. setting environment variables, that finishes with exec Hyprland
, for instance (adapt to your needs):
#!/bin/bash export SDL_VIDEODRIVER=wayland export MOZ_ENABLE_WAYLAND=1 export GTK_THEME=Catppuccin-blue:dark exec Hyprland
While launching from a display manager is not officially supported, users have reported success launching from GDM, SDDM, and others. All Hyprland AUR packages will generate a display manager entry automatically. If manually installing from source, an example Hyprland.desktop
file is provided in the example directory of the source code, which may be copied to /usr/share/wayland-sessions/
to provide a display manager entry.
Both methods provide identical results, plus or minus a few environment variables and services.
hyprctl and IPC
hyprctl is a command line utility that comes installed with Hyprland to communicate with the display server. It allows you to dispatch commands to the server (equivalent to commands in the configuration file, but with a slightly different syntax), set keywords, send queries and request information. See the full documentation.
Hyprland also exposes 2 UNIX Sockets, for controlling and getting information about Hyprland via code or command-line utilities. These sockets broadcast events on focus change (windows, workspaces, monitors), creation of windows/workspace, and so on.
Both hyprctl and the IPC sockets can be effectively used in scripts to control Hyprland for complex tasks.
Configuration
Configuration is done through a single config file, hyprland.conf. If you installed Hyprland with your package manager, it is likely in /usr/share/hyprland/hyprland.conf
. If you installed from source, it is in the Hyprland cloned repository. Copy hyprland.conf
to ~/.config/hypr/hyprland.conf
.
hyprland.conf
includes directives to configure your devices (monitors, keyboards, mice, trackpads), as well as settings for animations, decorations, layout, etc. You can set key bindings, window rules, and execute commands (once or each time the config is reloaded).
The config is automatically reloaded each time you update the file. You can also use hyprctl reload
for the same effect. For some settings (particularly input settings), you may have to restart your Hyprland session.
Settings can also be changed on the fly with hyprctl
but they will not be saved.
Configuration is documented in the Hyprland wiki.
See also
- Developer's wiki on GitHub