Complete Hyprland Desktop Environment Setup Guide
This comprehensive guide walks you through setting up a complete Hyprland desktop environment on Arch Linux, from base installation to a fully configured, beautiful desktop that feels like home. This setup combines the power of Hyprland’s tiling window manager with carefully selected applications and themes for a productive and aesthetically pleasing experience.
What This Guide Covers
This guide provides everything needed to transform a minimal Arch Linux installation into a fully functional desktop environment featuring:
- Hyprland Wayland Compositor: Modern tiling window manager with smooth animations
- Complete Audio Stack: PipeWire configuration for professional audio handling
- Terminal Environment: Zsh with Oh My Zsh, powerful utilities, and custom configurations
- Development Setup: Neovim with full IDE capabilities and development tools
- Visual Consistency: Coordinated themes, fonts, and color schemes throughout
- Automation Scripts: One-command setup for major components
Quick Start with Automation
For those who want to jump straight to the results, use the automated setup script:
curl -fsSL https://vault.flouda.io/setup-desktop | bash
This script handles the entire process automatically. For those who want to understand each step or customize the setup, continue with the detailed instructions below.
Prerequisites and Base Installation
Arch Linux Installation
Start with a minimal Arch Linux installation using archinstall
with the minimal
profile. This provides a clean foundation without unnecessary packages that might conflict with the Hyprland setup.
Essential Build Tools
After the base installation, install essential tools for building packages from the AUR:
sudo pacman -Sy --noconfirm git wget base-devel
Add microcode updates for your processor (choose the appropriate one):
# For AMD processors
sudo pacman -S --noconfirm amd-ucode
# For Intel processors
sudo pacman -S --noconfirm intel-ucode
AUR Helper Installation
Install yay
for easy AUR package management:
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si --noconfirm
cd .. && rm -rf yay
Hyprland Desktop Environment Setup
Core Hyprland Packages
Install the complete Hyprland ecosystem with supporting applications:
yay -Sy --noconfirm --needed \
hyprland \
hyprpaper \
hyprlock \
hyprcursor \
xdg-desktop-portal-hyprland \
xdg-desktop-portal-gtk \
polkit \
wofi \
waybar \
greetd \
greetd-regreet \
kitty \
uwsm \
papirus-icon-theme \
swaync \
xorg-xhost \
polkit-gnome \
nemo \
nemo-fileroller \
brightnessctl \
playerctl
Audio System
Configure PipeWire for professional audio handling:
yay -Sy --noconfirm --needed \
pipewire \
pipewire-pulse \
pipewire-alsa \
wireplumber \
pipewire-jack \
pavucontrol
Fonts and Themes
Install comprehensive font collection and visual themes:
yay -Sy --noconfirm --needed \
nwg-look \
otf-font-awesome \
ttf-font-awesome \
ttf-nerd-fonts-symbols \
ttf-fira-code \
ttf-input \
ttf-liberation \
ttf-ubuntu-font-family \
ttf-dejavu \
noto-fonts \
nerd-fonts \
bettergruvbox-gtk-theme \
papirus-folders \
bibata-cursor-theme-bin
Utility Applications
Install essential desktop utilities:
yay -Sy --noconfirm --needed \
wl-clipboard \
eog \
grim \
slurp \
hyprpicker \
jq \
gnome-text-editor \
npm \
nodejs \
tesseract \
tesseract-data-eng \
wlogout \
grimblast-git \
zen-browser-bin \
bemoji \
wtype \
obsidian \
qutebrowser
Configuration and Dotfiles
Dotfiles Repository
Clone the complete configuration repository:
git clone https://gitlab.com/flouda/dotfiles
cd dotfiles
System Configuration Files
Install system-wide configuration files:
# Install display manager configuration
sudo cp greetd/* /etc/greetd/
# Install wallpaper
sudo mkdir -p /usr/share/backgrounds/
sudo cp wp.png /usr/share/backgrounds/
cp wp.png ~/
User Configuration Files
Deploy user-specific configuration files:
# Copy all hidden dotfiles to home directory
cp -r user-home/.* ~/
This includes configurations for:
- Hyprland window manager settings
- Waybar status bar configuration
- Kitty terminal emulator setup
- Application launchers and shortcuts
- Custom key bindings and workspace rules
System Services Configuration
Display Manager
Enable the Greetd display manager for automatic login handling:
sudo systemctl enable --now greetd
GTK Theme Configuration
Configure system-wide GTK themes for visual consistency:
# Set GTK3 and GTK4 themes to BetterGruvbox
gsettings set org.gnome.desktop.interface gtk-theme BetterGruvbox
# Configure Nemo file manager to open terminal in current directory
gsettings set org.cinnamon.desktop.default-applications.terminal exec kitty
Terminal Environment Setup
Core Terminal Tools
Install essential terminal utilities:
sudo pacman -Sy --noconfirm zsh fzf ranger tmux zoxide
These tools provide:
- Zsh: Advanced shell with powerful features
- fzf: Fuzzy finder for files and command history
- Ranger: Terminal-based file manager
- Terminal Multiplexer: tmux for session management with custom keybindings
- Zoxide: Smart directory jumping
Oh My Zsh Framework
Install the Oh My Zsh framework for enhanced shell experience:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Zsh Plugins
Install essential Zsh plugins for syntax highlighting and autosuggestions:
# Syntax highlighting plugin
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
# Autosuggestions plugin
git clone https://github.com/zsh-users/zsh-autosuggestions \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
Zsh Configuration
If you’ve already placed dotfiles, restore the custom Zsh configuration:
cd ~
rm .zshrc
mv .zshrc.pre-oh-my-zsh .zshrc
Alternatively, download the configuration directly:
rm ~/.zshrc $ZSH_CUSTOM/aliases.zsh
wget https://gitlab.com/flouda/dotfiles/-/raw/main/user-home/.zshrc?ref_type=heads -O ~/.zshrc
wget https://gitlab.com/flouda/dotfiles/-/raw/main/user-home/aliases.zsh?ref_type=heads -O $ZSH_CUSTOM/aliases.zsh
Development Environment
Development Environment
For a complete development environment, install and configure Neovim with IDE capabilities. The automated Neovim setup utility provides comprehensive instructions for installing a modern development environment with language servers, debugging support, and advanced editing features.
Quick installation for development essentials:
sudo pacman -Sy --noconfirm neovim npm nodejs go ripgrep fzf base-devel
git clone --depth 1 https://gitlab.com/flouda/dotfiles && \
mv dotfiles/user-home/.config/nvim ~/.config/ && \
rm -rf dotfiles
Storage Requirements: The complete Neovim setup requires approximately 500MB of disk space due to language servers and plugins. You can minimize this by disabling Mason or customizing the plugin selection.
Automated Neovim Installation
For automated setup across different distributions, use the dedicated Neovim setup script:
curl -fsSL https://vault.flouda.io/scripts/setup-nvim | bash
This cross-platform script works on both Arch Linux and Ubuntu systems, automatically handling dependency installation, source compilation when needed, and deploying a complete IDE configuration with language servers and modern development features.
Key Features and Workflow
Window Management
Hyprland provides powerful tiling window management with:
- Automatic Tiling: Windows automatically arrange in optimal layouts
- Workspaces: Multiple virtual desktops for organization
- Floating Windows: Support for traditional floating windows when needed
- Custom Rules: Application-specific window behavior
- Smooth Animations: Beautiful transitions and effects
Application Launching
- Wofi: Application launcher with fuzzy search
- Bemoji: Emoji picker with quick access
- Waybar: Status bar with system information and workspace indicators
System Integration
- Notifications: Desktop notifications via SwayNC
- Audio Control: PulseAudio/PipeWire integration with media keys
- Brightness Control: Laptop brightness control via function keys
- Screenshot Tools: Grim and Slurp for screen capture
- Color Picker: Hyprpicker for selecting colors from screen
File Management
- Nemo: Full-featured file manager with archive support
- Ranger: Terminal-based file manager with vim-style navigation for power users
- Integration: Consistent file handling across applications
Customization and Theming
Theme Consistency
The setup uses the BetterGruvbox theme across all applications for visual consistency:
- GTK Applications: Unified theme for all GUI applications
- Terminal: Coordinated color scheme in terminal applications
- Icons: Papirus icon theme with folder color customization
- Cursors: Bibata cursor theme for modern appearance
Font Configuration
Comprehensive font setup includes:
- Programming: Fira Code with ligatures for development
- Interface: Ubuntu and Liberation fonts for UI elements
- Icons: Font Awesome and Nerd Fonts for symbols
- Multilingual: Noto Fonts for international character support
Troubleshooting and Tips
Common Issues
Audio Problems: If audio doesn’t work after installation, restart PipeWire services:
systemctl --user restart pipewire pipewire-pulse wireplumber
Display Issues: For multi-monitor setups, configure displays in the Hyprland configuration file at ~/.config/hypr/hyprland.conf
.
Application Scaling: For HiDPI displays, adjust scaling in the Hyprland configuration or use the nwg-look
tool for GTK applications.
Performance Optimization
- GPU Acceleration: Ensure proper graphics drivers are installed for your GPU
- Memory Usage: The complete setup uses approximately 1-2GB of RAM at idle
- Startup Time: First boot may be slower as fonts and themes are cached
Backup and Recovery
Before major changes, backup your configuration:
tar -czf ~/dotfiles-backup-$(date +%Y%m%d).tar.gz ~/.config
References and Resources
Official Documentation
Related Vault Resources
- Automated Desktop Setup Script
- Neovim Development Environment Setup
- Dotfiles Synchronization Utility
- Tmux Terminal Multiplexer Configuration
- Ranger File Manager Reference
Source Repository
Questions Answered in This Document
Q: What is Hyprland and why should I use it? A: Hyprland is a modern Wayland compositor and tiling window manager that provides smooth animations, powerful customization options, and efficient workspace management. It’s ideal for users who want a productive, keyboard-driven desktop environment with beautiful visual effects.
Q: Can I use the automated setup script safely? A: Yes, the automated setup script is designed for fresh Arch Linux installations with minimal profiles. It installs all necessary packages and configurations automatically. However, review the script contents if you have an existing setup to avoid conflicts.
Q: How much disk space does the complete setup require? A: The base Hyprland setup requires approximately 2-3GB of disk space. With the complete Neovim development environment, expect around 3-4GB total. The Neovim configuration alone uses about 500MB for language servers and plugins.
Q: Is this setup suitable for laptops? A: Absolutely. The setup includes laptop-specific features like brightness controls, battery indicators in the status bar, power management integration, and touch gestures. It’s optimized for both desktop and laptop use.
Q: Can I customize the theme and appearance?
A: Yes, the setup is highly customizable. You can modify themes in the dotfiles repository, change color schemes in individual application configs, or use tools like nwg-look
for GTK theme management. The BetterGruvbox theme can be replaced with any GTK theme.
Q: What if I encounter issues during installation? A: Most issues are related to missing dependencies or conflicts with existing configurations. Ensure you’re starting with a clean minimal Arch installation, check that all packages installed successfully, and verify system services are running. The troubleshooting section covers common problems.
Q: Is this setup compatible with NVIDIA graphics cards? A: Yes, but NVIDIA users may need additional configuration for optimal Wayland support. Install appropriate NVIDIA drivers and enable DRM kernel mode setting. Some NVIDIA-specific Hyprland configurations may be required for best performance.
Q: Can I use parts of this setup without installing everything? A: Absolutely. Each major component (Hyprland, terminal setup, Neovim) can be installed independently. The modular approach allows you to pick and choose components that fit your needs without installing the complete environment.
Q: How does this compare to other desktop environments like GNOME or KDE? A: This Hyprland setup focuses on tiling window management, keyboard-driven workflows, and minimal resource usage compared to traditional desktop environments. It’s more customizable but requires more initial setup. Choose this if you prefer efficiency and customization over out-of-the-box functionality.