Skip to content

Hasib-4174/hyprinit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ HyprInit

Automated Hyprland setup for fresh Arch Linux installations.

Arch LinuxHyprlandLicense: MIT

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.


πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                      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               β”‚
β”‚  ...                                                    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

✨ What's Included

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

πŸš€ Installation

Prerequisites

  • 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.

Quick Start

# 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 reboot

Installation Flow

The installer performs these steps in order:

  1. Pre-flight checks β€” Verifies: not root, Arch Linux, sudo, git, internet
  2. 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
  3. Deploy dotfiles β€” Clones your dotfiles repo, stows selected packages
    • If dotfiles already cloned β†’ pulls latest changes
    • Backs up conflicting configs before stowing
  4. Enable services β€” NetworkManager, Bluetooth, SDDM, Docker (optional), PipeWire
  5. Verification β€” Checks all commands, services, and symlinks

After reboot, SDDM will greet you. Select Hyprland from the session dropdown.


πŸ“¦ Package Categories

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).


βš™οΈ Configuration

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=false

πŸ“‚ Repository Structure

hyprinit/
β”œβ”€β”€ 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

After Installation

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 Usage

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

How Stow Works

~/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).


πŸ”§ Troubleshooting

SDDM Not Starting
sudo systemctl enable sddm.service
sudo systemctl start sddm.service
No Audio

PipeWire uses user services (socket-activated on login):

systemctl --user enable --now pipewire pipewire-pulse wireplumber
Waybar 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 files
AUR Package Fails
# Retry manually
yay -S package-name

# Or rebuild from clean state
yay -S --rebuild package-name
Dotfiles 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

⚠️ Important Notes

  • AMD GPU only: The default package lists include AMD-specific drivers. For Intel or NVIDIA, modify dev.txt accordingly.
  • 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-bin and visual-studio-code-bin require AUR. Everything else is from official repos.

πŸ› οΈ Post-Install Customization

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.


🀝 Contributing

Contributions are welcome! Feel free to:

  • πŸ› Report bugs
  • πŸ’‘ Suggest features
  • πŸ”§ Submit pull requests

πŸ“„ License

This project is open-source and available under the MIT License.


Made with ❀️ for the Hyprland community

About

A lean Arch Linux base with Hyprland, delivering a fast, tiling Wayland experience

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages