Overview
This Hyprland configuration is structured like a 12-factor application for portability and maintainability. The basehyprland.conf defines variables and sources modular config files, making it easy to customize and adapt to different environments.
Configuration Structure
The configuration is split into focused modules:hyprland.conf- Main config with variable definitions and module importsmodules/displays.conf- Monitor settingsmodules/autostart.conf- Startup processesmodules/env.conf- Environment variablesmodules/look.conf- Appearance (general, decoration, animations)modules/input.conf- Input devices (keyboard, mouse, touchpad)modules/keybindings.conf- Key bindingsmodules/windows.conf- Window and workspace rulesmodules/hyprlock.conf- Lock screen configurationmodules/hyprpaper.conf- Wallpaper settings
Variables System
All customization is done through variables defined at the top ofhyprland.conf. This makes it easy to change settings without hunting through multiple files.
Program Variables
Theme Variables
Monitor Configuration
Input Configuration
Key Bindings
Application Launchers
Window Management
Focus Navigation
Window Movement
Window Resizing
Workspace Management
System Controls
Animations
The configuration uses custom bezier curves for smooth animations:Input Configuration
The input module configures keyboard layout and device settings:Keyboard Options
- Caps Lock → Escape: Swap Caps Lock with Escape
- Layout Toggle:
Win + Spaceto switch between layouts
Environment Variables
Managing Configuration
Editing Configuration
- Edit variables in
~/.config/hypr/hyprland.conf - Modify sourced module files as needed
- All changes are git-tracked for version control
Validating Configuration
Applying Changes
- Reload
- Restart
Multiple Environments
For different setups (e.g., laptop vs desktop):- Copy
hyprland.conftohyprland-laptop.conf - Edit variables and module sources for that environment
- Point Hyprland to the appropriate config via symlink or startup command
modules/hyprland-laptop.conf.
FAQ
How do I change my terminal?
How do I change my terminal?
Edit the Then reload:
$terminal variable in hyprland.conf:hyprctl reloadHow do I add a new keybinding?
How do I add a new keybinding?
How do I configure multiple monitors?
How do I configure multiple monitors?
Edit monitor variables in
hyprland.conf or modify modules/displays.conf directly:Where are window rules defined?
Where are window rules defined?
Window and workspace rules are in
modules/windows.conf. Example:Related Files
Location:~/.config/hypr/