Skip to main content

Overview

This Hyprland configuration is structured like a 12-factor application for portability and maintainability. The base hyprland.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 imports
  • modules/displays.conf - Monitor settings
  • modules/autostart.conf - Startup processes
  • modules/env.conf - Environment variables
  • modules/look.conf - Appearance (general, decoration, animations)
  • modules/input.conf - Input devices (keyboard, mouse, touchpad)
  • modules/keybindings.conf - Key bindings
  • modules/windows.conf - Window and workspace rules
  • modules/hyprlock.conf - Lock screen configuration
  • modules/hyprpaper.conf - Wallpaper settings

Variables System

All customization is done through variables defined at the top of hyprland.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:
Animations are applied to windows, layers, and workspaces with timing values defined in variables.

Input Configuration

The input module configures keyboard layout and device settings:

Keyboard Options

  • Caps Lock → Escape: Swap Caps Lock with Escape
  • Layout Toggle: Win + Space to switch between layouts

Environment Variables

Managing Configuration

Editing Configuration

  1. Edit variables in ~/.config/hypr/hyprland.conf
  2. Modify sourced module files as needed
  3. All changes are git-tracked for version control

Validating Configuration

Applying Changes

Multiple Environments

For different setups (e.g., laptop vs desktop):
  1. Copy hyprland.conf to hyprland-laptop.conf
  2. Edit variables and module sources for that environment
  3. Point Hyprland to the appropriate config via symlink or startup command
Example laptop variant is provided at modules/hyprland-laptop.conf.

FAQ

Edit the $terminal variable in hyprland.conf:
Then reload: hyprctl reload
Add it to modules/keybindings.conf:
See the Hyprland binds documentation for syntax.
Edit monitor variables in hyprland.conf or modify modules/displays.conf directly:
Window and workspace rules are in modules/windows.conf. Example:
Location: ~/.config/hypr/
  • See Waybar for status bar configuration
  • See Rofi for application launcher theming
  • See Kitty for terminal configuration