Skip to content

Hyprland and this machine

vela’s Hyprland config is Lua: ~/.config/hypr/hyprland.lua loads one file per topic from ~/.config/hypr/conf/:

File Holds
env.lua environment variables for apps Hyprland starts
monitors.lua monitors – every screen at its best mode by default
general.lua gaps, borders, animations (they follow the motion setting)
input.lua keyboard, mouse, touchpad
rules.lua window rules
binds.lua keybinds
autostart.lua what starts with the session: the shell, hypridle, the clipboard watcher
colours.lua generated from the wallpaper; do not edit

It needs Hyprland 0.56 or newer (the Lua config). vela doctor checks.

The config is shared – one repo for every machine you install it on. What is true of one machine only goes in ~/.config/hypr/conf/local.lua. It is loaded last, so it wins, and it is never committed. Create it yourself:

-- ~/.config/hypr/conf/local.lua
-- A different keyboard layout, or two to switch between with Alt + Shift:
hl.config({ input = { kb_layout = "it,us", kb_options = "grp:alt_shift_toggle" } })
-- A laptop panel at 1.25x, and a monitor to its right:
hl.monitor({ output = "eDP-1", mode = "preferred", position = "0x0", scale = 1.25 })
hl.monitor({ output = "HDMI-A-1", mode = "preferred", position = "auto-right", scale = 1 })

hyprctl monitors all gives your outputs’ names.

By default the layout is the one Fedora was set up with – the one chosen when it was installed:

Terminal window
localectl status # shows it
localectl set-x11-keymap it # changes it for the whole system

If neither says, it is US. For this machine only, set it in local.lua as above.

Terminal window
Hyprland --verify-config -c ~/.config/hypr/hyprland.lua

checks keys, rules and animation names without applying anything.