A comprehensive Hyprland desktop environment configuration featuring a modern, customizable Wayland compositor setup with carefully crafted theming and productivity-focused workflows.
This repository contains my personal dotfiles for a complete Hyprland-based desktop environment. The configuration emphasizes performance, aesthetics, and workflow efficiency with a focus on keyboard-driven interaction patterns.
- 🏗️ Hyprland: Modern Wayland compositor with advanced window management
- 🎨 Catppuccin Theme: Consistent Macchiato colorscheme across all applications
- 🚀 Performance Optimized: Efficient animations and resource usage
- ⌨️ Keyboard-Centric: Comprehensive keybinding system with vim-like navigation
- 🎵 Media Integration: MPV background videos and MPRIS media controls
- 🔧 Modular Configuration: Well-organized, easily customizable setup
- 📱 Multi-Monitor Support: Intelligent workspace distribution across displays
- 🔒 Security: Integrated screen locking with biometric support
- Hyprland: Main compositor with custom animations and layouts
- Waybar: Feature-rich status bar with system monitoring
- Rofi: Application launcher and system interaction
- Hyprpaper: Wallpaper daemon
- Hypridle/Hyprlock: Idle management and screen locking
- Kitty: GPU-accelerated terminal emulator
- Neovim: Advanced text editor with LazyVim configuration
- Yazi: Modern file manager with vim-like navigation
- Fish: User-friendly shell with custom functions
- Tmux: Terminal multiplexer for session management
- Dunst: Notification daemon
- ClipHist: Clipboard manager with Wayland support
- Brightness/Audio Controls: Integrated system controls
- Power Management: Automatic suspend and power profile switching
- Operating System: Arch Linux (or Arch-based distribution)
- GPU: Modern GPU with OpenGL support (NVIDIA users see special notes)
- Display Server: Wayland support required
# Main compositor and tools
hyprland # Wayland compositor
hyprpaper # Wallpaper daemon
hypridle # Idle daemon
hyprlock # Screen locker
hyprshot # Screenshot utility# Window management and desktop
waybar # Status bar
rofi # Application launcher
dunst # Notification daemon
kitty # Terminal emulator
# Audio and media
pipewire # Audio server
pipewire-pulse # PulseAudio compatibility
pavucontrol # Audio control GUI
playerctl # Media player control
swayosd # On-screen display for volume/brightness
# System utilities
brightnessctl # Backlight control
cliphist # Clipboard manager
wl-clipboard # Wayland clipboard utilities
polkit-gnome # Authentication agent# File management and productivity
thunar # File manager
yazi # Terminal file manager
tmux # Terminal multiplexer
# Networking and connectivity
fcitx5 # Input method framework
google-chrome # Web browser (or browser of choice)
# Development tools
neovim # Text editor
fish # Shell# Essential fonts
ttf-jetbrains-mono-nerd # Main UI font
ttf-hack-nerd # Alternative nerd font
papirus-icon-theme # Icon theme
# Theme components
catppuccin-gtk-theme # GTK theme (AUR)# Media and entertainment
mpv # Video player (for background videos)
sunshine # Game streaming (commented in config)
# Development utilities
ydotool # Programmatic input (for mouse control submap)For NVIDIA GPU users, additional configuration is required:
- Install NVIDIA drivers:
nvidia nvidia-utils nvidia-settings- Set environment variables in
/etc/environment:
LIBVA_DRIVER_NAME=nvidia
__GL_VRR_ALLOWED=0
__GLX_VENDOR_LIBRARY_NAME=nvidia- Enable DRM kernel mode setting in
/etc/default/grub:
GRUB_CMDLINE_LINUX_DEFAULT="... nvidia-drm.modeset=1"# Install from official repositories
sudo pacman -S hyprland waybar rofi dunst kitty pipewire pipewire-pulse \
pavucontrol playerctl brightnessctl wl-clipboard polkit-gnome \
thunar tmux neovim fish ttf-jetbrains-mono-nerd papirus-icon-theme
# Install AUR packages (using yay or paru)
yay -S hyprpaper hypridle hyprlock hyprshot cliphist swayosd catppuccin-gtk-theme-macchiato# Clone the repository
git clone <repository-url> ~/.config/mydotfiles
cd ~/.config/mydotfiles
# Create symbolic links (adjust paths as needed)
ln -sf ~/.config/mydotfiles/hypr ~/.config/
ln -sf ~/.config/mydotfiles/waybar ~/.config/
ln -sf ~/.config/mydotfiles/rofi ~/.config/
ln -sf ~/.config/mydotfiles/kitty ~/.config/
ln -sf ~/.config/mydotfiles/nvim ~/.config/
ln -sf ~/.config/mydotfiles/yazi ~/.config/
ln -sf ~/.config/mydotfiles/fish ~/.config/
ln -sf ~/.config/mydotfiles/tmux ~/.config/# Enable required user services
systemctl --user enable pipewire pipewire-pulse
systemctl --user start pipewire pipewire-pulse
# Configure fish as default shell (optional)
chsh -s /usr/bin/fish# Create wallpaper directory
mkdir -p ~/Wallpapers
# Add your wallpapers and update hyprpaper.conf paths accordinglyhypr/
├── hyprland.conf # Main Hyprland configuration
├── windowrule.conf # Window rules and behavior
├── macchiato.conf # Catppuccin color definitions
├── hyprpaper.conf # Wallpaper configuration
├── hypridle.conf # Idle management
├── hyprlock.conf # Lock screen configuration
└── scripts/ # Helper scripts
waybar/
├── config # Waybar configuration
├── style.css # Waybar styling
└── script/ # Custom waybar modules
rofi/
├── config.rasi # Rofi configuration
└── */ # Custom rofi scripts and themes
Super + Return: Open terminal (Kitty)Super + B: Launch browser (Chrome)Super + E: File manager (Thunar)Super + W: Toggle Waybar
Super + hjkl: Focus windows (vim-style)Super + Shift + hjkl: Move windowsSuper + Ctrl + hjkl: Resize windowsSuper + F: Fullscreen toggleSuper + Space: Toggle floating mode
Super + Shift + P: Application launcher (Rofi)Super + Shift + R: Run commandSuper + Shift + O: File browserSuper + V: Clipboard history
Super + 1-9: Switch to workspaceSuper + Shift + 1-9: Move window to workspaceSuper + Tab/Shift+Tab: Cycle workspacesSuper + N: Move to special workspace
Super + Ctrl + Q: Lock screen- Volume/Brightness keys: Hardware key support
Super + Shift + S: Screenshot regionPrint: Screenshot current output
Super + S: Mouse control mode (keyboard mouse navigation)Super + Backspace: Show keybindings helpAlt + Tab: Window cycling with thumbnails
The configuration uses Catppuccin Macchiato theme. To change themes:
- Update
hypr/macchiato.confwith new color definitions - Modify
waybar/style.cssfor status bar colors - Adjust
rofithemes accordingly
Update monitor configuration in hypr/hyprland.conf:
monitor=DP-3,1920x1080@60,auto,1
workspace=1,default:true,monitor:eDP-1Configure wallpapers in hypr/hyprpaper.conf:
preload = ~/Wallpapers/your-wallpaper.jpg
wallpaper = ,~/Wallpapers/your-wallpaper.jpg- Black screen on startup: Check GPU drivers and Hyprland installation
- No audio: Ensure PipeWire services are running
- Applications not launching: Verify all dependencies are installed
- NVIDIA issues: Follow NVIDIA-specific setup steps above
# Check Hyprland logs
journalctl --user -u hyprland
# Check Waybar logs
journalctl --user -u waybar
# Test Hyprland configuration
hyprctl reloadFeel free to submit issues, feature requests, or pull requests. When contributing:
- Test changes thoroughly
- Update documentation as needed
- Follow existing code style and organization
- Consider backward compatibility
This configuration is available under the MIT License. See individual component licenses for their respective terms.
- Hyprland - The amazing Wayland compositor
- Catppuccin - Beautiful pastel theme
- LazyVim - Neovim configuration framework
- The open-source community for countless tools and inspiration

