acceptance-tests
Read this before writing or running the graphical acceptance suite under `test/acceptance.d/`.
Read this before changing keybindings, monitors, window rules, or any other Hyprland (window manager) configuration.
$ npx -y skills add basecamp/omarchy --agent claude-codeHow it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
Read this before changing keybindings, monitors, window rules, or any other Hyprland (window manager) configuration.
Read this before changing keybindings, monitors, window rules, or any other Hyprland (window manager) configuration.
Omarchy configures Hyprland in Lua. User files are loaded after Omarchy's defaults, so overrides go here:
~/.config/hypr/ ├── hyprland.lua # Main config (loads Omarchy defaults, then user files) ├── bindings.lua # Keybindings ├── monitors.lua # Display configuration ├── input.lua # Keyboard/mouse settings ├── looknfeel.lua # Appearance (gaps, borders, animations) ├── autostart.lua # Startup applications ├── hyprsunset.conf # Night light / blue light filter └── xdph.conf # Screen sharing / desktop portal
**Key behaviors (the `.lua` files):**
The two `.conf` files are read by separate processes, so `hyprctl` neither applies nor validates them:
Edit `~/.config/hypr/bindings.lua`. Format:
o.bind("SUPER + SHIFT + R", "SSH", "alacritty -e ssh your-server")
o.bind("SUPER + B", "Browser", { launch = "chromium" }) -- launch wraps with uwsm-appView current bindings: `omarchy menu keybindings --print`
**IMPORTANT: When re-binding an existing key:**
1. First check existing bindings: `omarchy menu keybindings --print` 2. If the key is already bound, use `o.rebind(...)` to remove the existing binding and add its replacement. It takes the same arguments as `o.bind(...)`. 3. Inform the user what the key was previously bound to
Example - rebinding SUPER+F (which is bound to fullscreen by default):
-- Replace SUPER+F (was: fullscreen) with the file manager.
o.rebind("SUPER + F", "File manager", { launch = "nautilus" })Tell the user which action was replaced. Use `hl.unbind(...)` to remove a binding without replacing it.
Edit `~/.config/hypr/monitors.lua`. Format:
hl.monitor({ output = "eDP-1", mode = "1920x1080@60", position = "0x0", scale = 1 })
hl.monitor({ output = "HDMI-A-1", mode = "2560x1440@144", position = "1920x0", scale = 1 })List monitors and supported modes: `hyprctl monitors all`
**CRITICAL: Hyprland window rules syntax changes frequently between versions.**
Before writing ANY window rules, you MUST fetch the current documentation from the official Hyprland wiki:
DO NOT rely on cached or memorized window rule syntax. The format has changed multiple times and using outdated syntax will cause errors or unexpected behavior.
Window rules go in `~/.config/hypr/hyprland.lua` or a required Lua module. Prefer Omarchy's `o.window(match, rules)` helper — see examples in `$OMARCHY_PATH/default/hypr/windows.lua`.
Omarchy is a beautiful, fun & agentic Linux distribution by DHH. Read more at omarchy.org.
Repo: basecamp/omarchy
Read this before writing or running the graphical acceptance suite under `test/acceptance.d/`.
Read this before adding or changing commands in `bin/`.
Read this before adding a branded glyph to `default/fonts/omarchy/omarchy.ttf`.
Read this before working under `install/` or on the system/user setup commands.
Read this before creating or changing migrations under `migrations/`.
Read this before editing the Quickshell desktop under `shell/`.