Skip to content
Dotfiles
Esc
navigateopen⌘Jpreview
On this page

Hyprland

Stowed Hyprland config and per-host overrides.

Hyprland window manager config for this Omarchy setup. It is a stowed hypr/ package, not a forked Omarchy Hypr repository. Shared Lua entry files live at the package root; each machine overrides them under hosts/.

dot stow lays the package down with --no-folding, keeps ~/.config/hypr/host pointing at hosts/$OMARCHY_HOST, and reloads Hyprland afterwards without dropping the live config mid-stow.

Host selection

hyprland.lua loads Omarchy defaults, then the shared personal modules (envs, monitors, input, bindings, looknfeel, autostart). Each of those ends with require("hypr.host.<module>"), which resolves through the host symlink.

Two hosts are tracked: desktop and laptop. Shared behaviour stays at the package root; machine differences stay under hosts/<name>/.

Monitors and workspaces

Monitor layout is host-owned. Shared monitors.lua only forwards to the active host.

Desktop pins a portrait left panel (DP-1, rotated) and a landscape main (HDMI-A-2), both 4K, with GDK/QT scale set for that setup. Named workspace rules pin workspace 1 to the left monitor and workspaces 2–6 to the right. A catch-all preferred/auto rule covers anything else (for example a VM display).

Laptop uses a single preferred/auto output at 2× scale, with matching GDK/QT scale. Both hosts drop to 1× scale when hypr.lib.machine detects a virtual machine.

Per-host overrides

Beyond monitors, each host keeps its own:

Envs — Each host sets GPU-appropriate Wayland/VA-API vars and OMARCHY_HOST to its name.

Input — Shared defaults are a British (GB) keyboard layout, a flat mouse acceleration profile (no acceleration), and basic touchpad settings. Desktop leaves pointer sensitivity alone; laptop raises sensitivity, slows touchpad scrolling, and tunes per-app touchpad scroll speed for terminals and Chromium.

Look and feel — Desktop uses small gaps, light rounding, blur/shadow, and window rules that park common apps on specific workspaces. Laptop tightens gaps/borders (no rounding) and shrinks the floating terminal.

Autostart — Shared start pulls System Bridge, Chromium, KDE Connect, Twitch notifications, and the Herdr server. Desktop also starts Solaar, opencode-server, and a delayed workspace-setup. Laptop starts power-profile-daemon.

Bindings — Shared bindings cover browsers, terminals, reload-ui, and similar day-to-day chords. Host files only add machine-specific chords.

Shared helpers

bin/ helpers land on PATH via UWSM (url handler setup, timmo-run-command, a Quickshell wrapper). float-app.lua holds generated floating rules. hyprsunset.conf and xdph.conf sit beside the Lua entry files for night light and portal defaults.

Bindings and layout scripts stay in the package; they are not listed here.

Last updated on September 4, 2026