A fully automated script to install, configure, and personalize your Arch Linux with Hyprland and a minimal Wayland-only desktop.
This setup includes your custom dotfiles, essential utilities, UI themes, and personal preferences — with interactive choices for gaming setup.
🔹 Fully scripted Arch install (no manual package entry)
🔹 Wayland desktop with Hyprland
🔹 Notifications via Mako.
🔹 Status bar = Ironbar.
🔹 Menus/launcher = Fuzzel.
🔹 Audio stack = PipeWire + EasyEffects.
Hyprland-dots/
├── .config/ → All configs (Hyprland, Ironbar, Fuzzel, Fish, etc.)
├── .local/ → Local scripts, fish history, color schemes
├── systemd/system/ → Custom system services (e.g. Bluetooth fixes)
├── scripts/ → Helper scripts (installed to /usr/local/bin/)
├── .assets/ → Screenshots + overview video
├── install.sh → Main install and setup script
└── README.md → You're here
This script is intended for a fresh Arch Linux minimal install.
git clone https://github.com/zaeemali272/Hyprland-dots.git
cd Hyprland-dots
chmod +x install.sh
./install.sh
bash <(curl -s https://raw.githubusercontent.com/zaeemali272/Hyprland-dots/main/Install.sh)
The script is idempotent — safe to re-run, will back up existing configs unless --force is used.
You can control behavior with flags:
| Flag | Description |
|---|---|
--extras |
Install optional extra utilities (gparted, htop, ncdu, etc.) |
--gaming |
Install gaming stack (Steam, Lutris, Wine, Gamemode, MangoHud) |
--dry-run |
Show what would change (no writes) |
--force |
Overwrite existing files without backup (dangerous) |
--no-overwrite |
Skip overwriting existing files |
--skip-aur |
Skip AUR bootstrap & packages |
--no-icons |
Skip OneUI icon theme installation |
--enable-user-services |
Enable user services (Ironbar, etc.) |
-y or --non-interactive |
Run without prompts (default yes to optional steps) |
When prompted, you can install the gaming stack:
- Lutris
- Wine + Winetricks
- Gamemode
- Steam (if you add it to
PACMAN_PKGS) - Game-related optimizations
If you say no, the related scripts/services are removed so your environment stays clean.
The script can optionally set up autologin on tty1 with:
/etc/systemd/system/getty@tty1.service.d/override.conf
It then starts Hyprland automatically via config.fish.
Before finishing, the script runs:
- rfkill list → warns if Wi-Fi or Bluetooth are blocked.
- Ensures services are reloaded.
- Prints reboot recommendation.
- Log in → you’ll land directly in Hyprland.
- Wallpapers managed with swww.
- Notifications via Mako.
- Status bar = Ironbar.
- Menus/launcher = Fuzzel.
- Audio stack = PipeWire + EasyEffects.













