Skip to content

Hyprland Configuration

Hyprland is the core Wayland compositor that powers the HyprFlux desktop environment. This configuration provides a highly customizable and performant tiling window manager experience.

Overview

The HyprFlux Hyprland configuration is modular and organized into several key components:

  • Main Configuration: hyprland.conf - Entry point that sources all other configs
  • User Configurations: Customizable settings in UserConfigs/ directory
  • Scripts: Automation and utility scripts in scripts/ directory
  • Animations: Various animation presets in animations/ directory

Configuration Structure

~/.config/hypr/
├── hyprland.conf           # Main configuration file
├── configs/                # Default configurations
├── UserConfigs/           # User-customizable configurations
├── scripts/               # Utility scripts
├── animations/            # Animation presets
├── hyprlock/             # Lock screen configurations
└── wallpaper_effects/    # Wallpaper management

Key Features

1. Modular Configuration System

The configuration is split into logical modules for easy customization:

bash
# Main configuration sources
source= $UserConfigs/Startup_Apps.conf      # Startup applications
source= $UserConfigs/ENVariables.conf       # Environment variables
source= $UserConfigs/WindowRules.conf       # Window and layer rules
source= $UserConfigs/UserDecorations.conf   # Visual decorations
source= $UserConfigs/UserAnimations.conf    # Animation settings
source= $UserConfigs/UserKeybinds.conf      # Custom keybindings
source= $UserConfigs/UserSettings.conf      # Main Hyprland settings

2. User Customization

Startup Applications (UserConfigs/Startup_Apps.conf)

Configure which applications launch at startup:

bash
# Example startup applications
exec-once = waybar
exec-once = swaync
exec-once = swww-daemon
exec-once = hypridle

Environment Variables (UserConfigs/ENVariables.conf)

Set environment variables for your session:

bash
# Example environment variables
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
env = QT_QPA_PLATFORM,wayland
env = GDK_BACKEND,wayland,x11

Window Rules (UserConfigs/WindowRules.conf)

Define how specific applications behave:

bash
# Example window rules
windowrule = float, ^(pavucontrol)$
windowrule = float, ^(blueman-manager)$
windowrule = size 800 600, ^(pavucontrol)$

3. Animation System

Choose from multiple animation presets:

  • Default: Balanced animations for daily use
  • Minimal: Reduced animations for performance
  • Dynamic: Enhanced animations for visual appeal
  • Disabled: No animations for maximum performance

To change animations:

bash
# Edit UserConfigs/UserAnimations.conf
source = $HOME/.config/hypr/animations/00-default.conf

4. Monitor Configuration

Configure multiple monitors through:

bash
# monitors.conf - Generated by nwg-displays
monitor = DP-1,1920x1080@60,0x0,1
monitor = HDMI-A-1,1920x1080@60,1920x0,1

Customization Guide

Adding Custom Keybindings

Edit UserConfigs/UserKeybinds.conf:

bash
# Custom keybindings
bind = SUPER, T, exec, kitty
bind = SUPER, E, exec, thunar
bind = SUPER, B, exec, firefox
bind = SUPER SHIFT, Q, killactive

Configuring Workspaces

Edit workspaces.conf:

bash
# Workspace configuration
workspace = 1, monitor:DP-1, default:true
workspace = 2, monitor:DP-1
workspace = 3, monitor:HDMI-A-1, default:true

Custom Decorations

Edit UserConfigs/UserDecorations.conf:

bash
decoration {
    rounding = 10
    blur {
        enabled = true
        size = 3
        passes = 1
    }
    drop_shadow = true
    shadow_range = 4
    shadow_render_power = 3
}

Performance Tuning

For better performance, edit UserConfigs/UserSettings.conf:

bash
general {
    gaps_in = 5
    gaps_out = 10
    border_size = 2
    no_border_on_floating = false
    layout = dwindle
}

misc {
    disable_hyprland_logo = true
    disable_splash_rendering = true
    mouse_move_enables_dpms = true
    key_press_enables_dpms = true
}

Scripts and Utilities

Key Scripts

  • Refresh.sh: Reload Hyprland configuration
  • ScreenShot.sh: Screenshot functionality
  • WallpaperSelect.sh: Wallpaper management
  • GameMode.sh: Toggle gaming optimizations
  • Brightness.sh: Brightness control
  • Volume.sh: Audio control

Using Scripts

bash
# Reload configuration
~/.config/hypr/scripts/Refresh.sh

# Take screenshot
~/.config/hypr/scripts/ScreenShot.sh

# Change wallpaper
~/.config/hypr/scripts/WallpaperSelect.sh

Troubleshooting

Common Issues

  1. Applications not starting: Check Startup_Apps.conf syntax
  2. Keybindings not working: Verify UserKeybinds.conf format
  3. Performance issues: Try minimal animations or disable them
  4. Monitor issues: Reconfigure with nwg-displays

Debug Commands

bash
# Check Hyprland logs
journalctl -f -u hyprland

# Reload configuration
hyprctl reload

# List active windows
hyprctl clients

# Monitor information
hyprctl monitors

Advanced Configuration

Custom Window Rules

bash
# Floating windows
windowrule = float, ^(calculator)$
windowrule = float, ^(file-roller)$

# Workspace assignments
windowrule = workspace 2, ^(firefox)$
windowrule = workspace 3, ^(code)$

# Opacity rules
windowrule = opacity 0.9, ^(kitty)$
windowrule = opacity 0.8, ^(thunar)$

Layer Rules

bash
# Configure layer behavior
layerrule = blur, waybar
layerrule = blur, rofi
layerrule = ignorezero, waybar

Hyprland Official Docs

More Details : https://wiki.hypr.land/

Hyprland Wiki

Released under the MIT License.