Comprehensive Hyprland Wayland compositor configuration skill...
This skill provides comprehensive support for configuring Hyprland, a dynamic tiling Wayland compositor.
When helping with Hyprland configuration:
references/config_reference.md for syntax and variables, references/examples.md for practical patternsscripts/search_hyprland_docs.py to find specific config variables or featuresUse the search script to find configuration variables, keybindings, and documentation:
# Search for any config variable or feature
python3 scripts/search_hyprland_docs.py "gaps_in"
python3 scripts/search_hyprland_docs.py "border_size"
python3 scripts/search_hyprland_docs.py "animation"
# List all documentation sections
python3 scripts/search_hyprland_docs.py --list
The script searches across:
How it works: The search script uses local markdown documentation files stored in references/docs/ that were downloaded from the official Hyprland wiki using the jina.ai markdown converter (https://r.jina.ai/$URL). This provides:
The skill includes complete local copies of official Hyprland documentation:
| Section | File | Source |
|---|---|---|
| Variables | references/docs/variables.md |
wiki.hypr.land/Configuring/Variables/ |
| Keywords | references/docs/keywords.md |
wiki.hypr.land/Configuring/Keywords/ |
| Binds | references/docs/binds.md |
wiki.hypr.land/Configuring/Binds/ |
| Animations | references/docs/animations.md |
wiki.hypr.land/Configuring/Animations/ |
| Dispatchers | references/docs/dispatchers.md |
wiki.hypr.land/Configuring/Dispatchers/ |
| Window Rules | references/docs/window-rules.md |
wiki.hypr.land/Configuring/Window-Rules/ |
| Monitors | references/docs/monitors.md |
wiki.hypr.land/Configuring/Monitors/ |
Updating documentation: To refresh the local docs with the latest from the wiki:
cd references/docs
curl -s "https://r.jina.ai/https://wiki.hypr.land/Configuring/Variables/" -o variables.md
curl -s "https://r.jina.ai/https://wiki.hypr.land/Configuring/Keywords/" -o keywords.md
curl -s "https://r.jina.ai/https://wiki.hypr.land/Configuring/Binds/" -o binds.md
curl -s "https://r.jina.ai/https://wiki.hypr.land/Configuring/Animations/" -o animations.md
curl -s "https://r.jina.ai/https://wiki.hypr.land/Configuring/Dispatchers/" -o dispatchers.md
curl -s "https://r.jina.ai/https://wiki.hypr.land/Configuring/Window-Rules/" -o window-rules.md
curl -s "https://r.jina.ai/https://wiki.hypr.land/Configuring/Monitors/" -o monitors.md
Determine what the user needs:
Ask clarifying questions when needed:
Always load the appropriate reference files:
# For syntax and all config variables
view references/config_reference.md
# For practical examples and patterns
view references/examples.md
When to load each:
config_reference.md: For understanding syntax, all available variables, and their optionsexamples.md: For complete working configurations and common patternsIf the references don't contain the needed information, or if you need the latest documentation:
python3 scripts/search_hyprland_docs.py "<query>"
Search for:
Follow these principles:
Config file location: ~/.config/hypr/hyprland.conf
Structure:
# Comments start with #
# Sections use curly braces
general {
variable = value
}
# Keywords at root level
monitor = DP-1, 1920x1080@60, 0x0, 1
bind = SUPER, Return, exec, kitty
Best practices:
$mainMod = SUPERsource to split large configs into fileshyprctl reload or restart Hyprlandreferences/examples.md and find the "Complete Minimal Configuration"references/config_reference.md for bind syntax$mainMod variable for consistencybind - Normal bindbindm - Mouse bindbinde - Repeating bindbindr - Release bindbindl - Locked bind (works when locked)references/config_reference.md for windowrule syntaxwindowrulev2 for modern syntaxhyprctl clients (lists window classes)references/examples.mdreferences/examples.mdCommon issues:
hyprctl monitors to list available monitorsmisc.vfrDebugging commands:
# List all monitors
hyprctl monitors
# List all windows with classes
hyprctl clients
# Reload config
hyprctl reload
# Get keyword value
hyprctl getoption general:border_size
# Set keyword value (temporary)
hyprctl keyword general:border_size 3
Use for: New users, testing, simple setups
See: references/examples.md - "Complete Minimal Configuration"
Use for: Workstation setups, multiple displays
See: references/examples.md - "Multi-Monitor Setup" and "Productivity Setup"
Use for: Gamers, low-latency needs
See: references/examples.md - "Gaming Configuration"
Use for: Laptops, touchpads, battery optimization
See: references/examples.md - "Laptop-Specific Configuration"
Use for: Aesthetic focus, eye candy
See: references/examples.md - "Rice (Beautiful Desktop) Configuration"
Use for: Power users, keyboard-driven workflow
See: references/examples.md - "Tiling Window Manager Workflow"
Always include NVIDIA environment variables and specific settings. See references/examples.md - "NVIDIA GPU Configuration" for the complete setup.
monitor = eDP-1, 3840x2160@60, 0x0, 2 # 2x scaling
env = XCURSOR_SIZE,48 # Larger cursor
For large configs, split into multiple files:
source = ~/.config/hypr/monitors.conf
source = ~/.config/hypr/keybinds.conf
source = ~/.config/hypr/windowrules.conf
For slower systems:
blur.size and blur.passesdrop_shadow = falsemisc.vfr = trueWhen providing configurations:
File creation:
~/.config/hypr/hyprland.confThe skill includes comprehensive reference files:
Always consult these before searching online documentation, as they provide immediate, reliable information.
Before finalizing configurations:
Use hyprctl commands to validate when working with existing systems.
Official documentation sections (search with the script):
Search any of these with: python3 scripts/search_hyprland_docs.py "<topic>"