HyprInit automates the setup of a complete Hyprland desktop on a fresh Arch Linux installation. It installs packages, clones your dotfiles, deploys configs with GNU Stow, and enables services β getting you from a minimal Arch install to a fully working Wayland desktop in minutes.
Important
HyprInit β Dotfiles. This repository only contains the installer β scripts and package lists. Your actual configs (Hyprland, Waybar, Rofi, etc.) live in a separate dotfiles repository, managed with GNU Stow.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β hyprinit/ β
β (this repo β installer only) β
β β
β install.sh βββΊ install_packages.sh (pacman + AUR) β
β βββΊ setup_configs.sh (clone + stow) β
β βββΊ enable_services.sh (systemd) β
β βββΊ sanity_check.sh (verification) β
β β
β packages/ Package lists (base, hypr, apps, dev) β
β vars.conf User-configurable settings β
βββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββ
β git clone
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ~/dotfiles/ β
β (separate repo β your actual configs) β
β β
β hypr/.config/hypr/ GNU Stow structure β
β waybar/.config/waybar/ βββΊ ~/.config/waybar/ β
β alacritty/.config/alacritty/βββΊ ~/.config/alacritty/ β
β rofi/.config/rofi/ βββΊ ~/.config/rofi/ β
β nvim/.config/nvim/ βββΊ ~/.config/nvim/ β
β zshrc/.zshrc βββΊ ~/.zshrc β
β ... β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Category | Packages |
|---|---|
| Compositor | Hyprland, Hyprpaper, Hyprlock, Hypridle |
| Display Manager | SDDM (Qt5/Qt6 Wayland) |
| Status Bar | Waybar |
| Launcher | Rofi + Emoji support |
| Terminal | Alacritty |
| File Manager | Dolphin |
| Browser | Brave |
| Editors | Neovim, VS Code, Zed |
| Shell | Zsh |
| Notifications | Mako |
| Screenshots | Grim + Slurp + Swappy |
| Wallpapers | awww (successor to swww) |
| Lock Screen | Hyprlock |
| Audio | PipeWire + WirePlumber |
| Media | VLC, mpv |
| CLI Tools | ripgrep, fd, fzf, bat, eza, btop, htop |
| Containers | Docker + Docker Compose (optional) |
| Fonts | JetBrains Mono Nerd Font, Noto Fonts, Font Awesome |
| Dotfile Mgmt | GNU Stow |
- A fresh Arch Linux installation (minimal profile recommended)
- Active internet connection
- AMD GPU (includes AMD-specific drivers; modify for other GPUs)
Warning
This setup is designed for a clean Arch Linux installation. For best results, use a minimal installation without a desktop environment. If using archinstall, select the 'minimal' profile.
# Install git if not present
sudo pacman -S git
# Clone the installer
git clone https://github.com/Hasib-4174/hyprinit.git
cd hyprinit
# Edit configuration (dotfiles repo URL, service toggles, etc.)
nano vars.conf
# Run the installer
chmod +x install.sh
./install.sh
# Reboot when complete
sudo rebootThe installer performs these steps in order:
- Pre-flight checks β Verifies: not root, Arch Linux, sudo, git, internet
- Install packages β Installs from
packages/lists via pacman + AUR helper- Order:
base.txtβhypr.txtβapps.txtβdev.txt - Installs AUR helper (yay) automatically if needed
- Skips already-installed packages
- Order:
- Deploy dotfiles β Clones your dotfiles repo, stows selected packages
- If dotfiles already cloned β pulls latest changes
- Backs up conflicting configs before stowing
- Enable services β NetworkManager, Bluetooth, SDDM, Docker (optional), PipeWire
- Verification β Checks all commands, services, and symlinks
After reboot, SDDM will greet you. Select Hyprland from the session dropdown.
base.txt β Core System
Core system packages, networking, CLI essentials, fonts, and permissions.
Includes: base, base-devel, linux, linux-firmware, amd-ucode, networkmanager, bluez, git, curl, wget, jq, man-db, polkit, xdg-utils, Noto/JetBrains Mono fonts.
hypr.txt β Hyprland Stack
Full Wayland compositor stack with all essential components.
Includes: hyprland, hyprpaper, hyprlock, hypridle, sddm, waybar, mako, wlogout, awww, grim, slurp, swappy, wl-clipboard, xdg-desktop-portal-hyprland, xdg-desktop-portal-gtk, PipeWire audio stack.
apps.txt β Desktop Applications
Daily-use desktop applications.
Includes: alacritty, dolphin, brave-bin (AUR), rofi, rofi-emoji, vlc, mpv, imv, blueman, pavucontrol, brightnessctl, btop, htop, fastfetch.
dev.txt β Development Tools
Development environment with editors, toolchains, and modern CLI tools.
Includes: neovim, vim, nano, visual-studio-code-bin (AUR), zed, tmux, stow, zsh, ripgrep, fd, fzf, bat, eza, nodejs, npm, python, gcc, cmake, docker, docker-compose, AMD GPU tools (vulkan-radeon, mesa).
Edit vars.conf before running the installer:
# Dotfiles repo (your separate config repository)
DOTFILES_REPO="https://github.com/Hasib-4174/dotfiles.git"
DOTFILES_DIR="$HOME/dotfiles"
# Which stow packages to deploy
STOW_PACKAGES="alacritty awww fontconfig hypr mako nano nvim rofi scripts swappy waybar zshrc"
# AUR helper
AUR_HELPER=yay
# Service toggles
ENABLE_NETWORKMANAGER=true
ENABLE_BLUETOOTH=true
ENABLE_SDDM=true
ENABLE_DOCKER=false
ENABLE_TAILSCALE=falsehyprinit/
βββ install.sh # Main entry point
βββ vars.conf # User configuration
βββ README.md # This file
β
βββ packages/ # Package lists (one per category)
β βββ base.txt # System essentials
β βββ hypr.txt # Hyprland + Wayland stack
β βββ apps.txt # Desktop applications
β βββ dev.txt # Development tools
β
βββ scripts/ # Installation scripts
βββ install_packages.sh # Package installation (pacman + AUR)
βββ setup_configs.sh # Dotfiles clone + GNU Stow deployment
βββ enable_services.sh # systemd service enablement
βββ sanity_check.sh # Post-install verification
Configs live in ~/dotfiles/ and are symlinked via GNU Stow:
~/dotfiles/
βββ hypr/.config/hypr/ β ~/.config/hypr/
βββ waybar/.config/waybar/ β ~/.config/waybar/
βββ rofi/.config/rofi/ β ~/.config/rofi/
βββ alacritty/.config/alacritty/β ~/.config/alacritty/
βββ nvim/.config/nvim/ β ~/.config/nvim/
βββ zshrc/.zshrc β ~/.zshrc
βββ ...To edit configs: Modify files in ~/dotfiles/ β changes apply immediately!
GNU Stow creates symlinks from your dotfiles repo to the correct locations in $HOME.
cd ~/dotfiles
# Stow a package (create symlinks)
stow --target=$HOME hypr
# Re-stow (refresh symlinks)
stow --restow --target=$HOME waybar
# Unstow (remove symlinks)
stow -D rofi
# Stow all packages at once
stow --restow --target=$HOME alacritty awww hypr mako nvim rofi waybar zshrc~/dotfiles/hypr/.config/hypr/hyprland.conf
β stow
~/.config/hypr/hyprland.conf (symlink β ~/dotfiles/hypr/.config/hypr/hyprland.conf)
Each directory in ~/dotfiles/ is a "stow package." Stow mirrors its internal structure relative to the target directory ($HOME).
SDDM Not Starting
sudo systemctl enable sddm.service
sudo systemctl start sddm.serviceNo Audio
PipeWire uses user services (socket-activated on login):
systemctl --user enable --now pipewire pipewire-pulse wireplumberWaybar Not Appearing
killall waybar
waybar &Or check Hyprland autostart: ~/.config/hypr/autostart.conf
Stow Conflicts
If stow reports conflicts, the target file already exists and is not a symlink:
# Option 1: Backup and re-stow
mv ~/.config/hypr ~/.config/hypr.bak
cd ~/dotfiles && stow --restow hypr
# Option 2: Adopt existing files into stow (overwrites dotfiles repo)
cd ~/dotfiles && stow --adopt --restow hypr
# WARNING: --adopt replaces dotfiles repo content with existing filesAUR Package Fails
# Retry manually
yay -S package-name
# Or rebuild from clean state
yay -S --rebuild package-nameDotfiles Repo Not Cloning
# Check the URL in vars.conf
grep DOTFILES_REPO vars.conf
# Try cloning manually
git clone https://github.com/Hasib-4174/dotfiles.git ~/dotfiles- AMD GPU only: The default package lists include AMD-specific drivers. For Intel or NVIDIA, modify
dev.txtaccordingly. - Fresh installs: This installer is designed for clean Arch Linux systems. Using it on an existing desktop may cause conflicts.
- Re-runnable: The installer is idempotent β safe to run multiple times. Already-installed packages are skipped, existing dotfiles are backed up.
- No destructive operations: The installer never removes packages or deletes user files. Conflicts are backed up to
~/.config-backups/. - AUR packages: Only
brave-binandvisual-studio-code-binrequire AUR. Everything else is from official repos.
| Component | Config Location |
|---|---|
| Hyprland | ~/dotfiles/hypr/.config/hypr/ |
| Waybar | ~/dotfiles/waybar/.config/waybar/ |
| Rofi | ~/dotfiles/rofi/.config/rofi/ |
| Alacritty | ~/dotfiles/alacritty/.config/alacritty/ |
| Neovim | ~/dotfiles/nvim/.config/nvim/ |
| Mako | ~/dotfiles/mako/.config/mako/ |
| Zsh | ~/dotfiles/zshrc/.zshrc |
All paths are symlinked β editing files in ~/dotfiles/ directly updates the active config.
Contributions are welcome! Feel free to:
- π Report bugs
- π‘ Suggest features
- π§ Submit pull requests
This project is open-source and available under the MIT License.
Made with β€οΈ for the Hyprland community