Hyprland is a dynamic tiling Wayland compositor that doesn't sacrifice on its looks. It provides smooth animations, great functionality, and an easy-to-use configuration.
Features #
- Dynamic tiling - Windows tile automatically with no manual layouts
- Wayland native - Modern protocol, better performance
- Smooth animations - Beautiful window transitions
- Layer shell - Status bars and notifications work properly
- XWayland - Run X11 applications seamlessly
Setup #
Installation #
On Arch Linux:
sudo pacman -S hyprland
On other distributions, see the official installation guide.
Configuration #
Config files live in ~/.config/hypr/:
hyprland.conf- Main configurationmonitors.conf- Monitor layouts and resolutionsbindings.conf- Key bindingsautostart.conf- Applications to start on launch
Window Rules #
Applications automatically go to specific workspaces:
# Workspace assignments
windowrule = workspace 1, match:class ^(steam)$
windowrule = workspace 4, match:class ^(kitty)$
windowrule = workspace 5, match:class ^(firefox)$
windowrule = workspace 5, match:class ^(brave-browser)$
windowrule = workspace 6, match:class ^(signal)$
windowrule = workspace 8, match:class ^(brave-chat.openai.com__-Default)$
windowrule = workspace 9, match:class ^(org.prismlauncher.PrismLauncher)$
# Float certain windows
windowrule = float on, match:class ^(org.pulseaudio.pavucontrol)$
windowrule = float on, match:class ^(xdg-desktop-portal-gtk)$
Workspaces #
Workspaces are organized by function:
| Workspace | Purpose |
|---|---|
| 1 | Steam/Games |
| 2 | Graphics (Krita) |
| 3 | General |
| 4 | Terminals |
| 5 | Web Browsers |
| 6 | Chat (Signal) |
| 7 | Media |
| 8 | Web Apps (ChatGPT, YouTube) |
| 9 | Minecraft |
| 10 | System |
Default Key Bindings #
Hyprland uses a SUPER (Windows/Super) key modifier:
Window Management #
| Key | Action |
|---|---|
SUPER+Q |
Close window |
SUPER+Shift+Q |
Force kill window |
SUPER+T |
Toggle floating |
SUPER+F |
Toggle fullscreen |
SUPER+J |
Toggle split direction |
Navigation #
| Key | Action |
|---|---|
SUPER+arrow keys |
Change window focus |
SUPER+Shift+arrow keys |
Move window |
SUPER+1-0 |
Switch to workspace |
SUPER+Shift+1-0 |
Move window to workspace |
Mouse #
SUPER+LMB- Move windowSUPER+RMB- Resize window
Scripts #
Custom scripts in ~/.config/hypr/scripts/:
terminal.sh #
Launch terminal with specific rules:
#!/usr/bin/env bash
kitty --class=kitty
focus_or_launch.sh #
Focus a window if it exists, otherwise launch it:
#!/usr/bin/env bash
# Usage: focus_or_launch <class> <command>
toggle_waybar.sh #
Toggle the status bar visibility:
#!/usr/bin/env bash
killall -SIGUSR1 waybar
Autostart #
Applications started automatically:
# From autostart.conf
exec-once = waybar
exec-once = hyprpaper
exec-once = mako # Notification daemon
Environment Variables #
Wayland-specific settings:
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland
env = XDG_SESSION_DESKTOP,Hyprland
Troubleshooting #
Applications won't launch #
Check if they're trying to use X11:
# Force XWayland for problematic apps
windowrule = xwayland, match:class ^(app-name)$
Screen sharing not working #
Ensure xdg-desktop-portal-hyprland is installed:
sudo pacman -S xdg-desktop-portal-hyprland