Arch Linux + Hyprland desktop environment configuration A complete, reproducible dotfiles repository for restoring my desktop setup from GitHub
This repository contains my personal Arch Linux desktop environment configuration, centered around Hyprland (Wayland compositor) with a sophisticated workflow setup. The configuration is based on the Illogical Impulse Hyprland distribution with extensive custom modifications.
- ๐ช Hyprland - Dynamic tiling Wayland compositor
- ๐ Waybar - Customizable status bar with audio visualizer
- ๐ฑ Kitty - GPU-accelerated terminal emulator
- ๐ Rofi/Fuzzel - Application launchers
- ๐ Swaync/Dunst - Notification system
- ๐จ GTK3/4 + Qt5/6 - Unified theming
- ๐ Hyprlock - Screen locker with custom styling
- ๐ Multi-monitor support (5 displays configured)
- โก Custom keybindings for productivity apps
TODO: Add screenshots of your desktop
- Arch Linux installed
- Internet connection
- Git installed
Option 1: Using the Master Installer (Recommended)
# Clone this repository
git clone https://github.com/Lofiwaffle/lofi-rice.git
cd lofi-rice
# Run the interactive installer
./install.sh
# Follow the prompts and reboot when doneOption 2: Manual Step-by-Step
# Clone this repository
git clone https://github.com/Lofiwaffle/lofi-rice.git
cd lofi-rice
# Install all packages (requires ~2GB download)
./scripts/install-packages.sh
# Restore configurations
./scripts/restore-configs.sh
# Enable systemd services
./scripts/enable-services.sh
# Log out and log back in (or reboot)Option 3: Fully Automated (No Prompts)
git clone https://github.com/Lofiwaffle/lofi-rice.git
cd lofi-rice
./install.sh --auto# Pull latest changes
git pull
# Restore updated configs
./scripts/restore-configs.sh| Component | Description | Config Location |
|---|---|---|
| Hyprland | Wayland compositor | config/hypr/ |
| Waybar | Status bar | config/waybar/ |
| Kitty | Terminal emulator | config/kitty/ |
| Rofi | App launcher | config/rofi/ |
| Dunst/Swaync | Notifications | config/dunst/, config/swaync/ |
| GTK/Qt | Theme configs | config/gtk-{3,4}.0/, config/qt{5,6}ct/ |
- ~180 official repository packages
- ~65 AUR packages
- See
packages/categories/for detailed breakdown by type
| Keybind | Action |
|---|---|
Super + Return |
Terminal (Kitty) |
Super + Q |
Close window |
Super + O |
Obsidian |
Super + W |
Web browser |
Super + E |
File manager |
Super + Space |
App launcher (Rofi) |
Super + L |
Lock screen |
Super + Shift + S |
Screenshot (region) |
Super + V |
Clipboard history |
Super + Period |
Emoji picker |
๐ Full keybindings reference: See docs/KEYBINDS.md
lofi-rice/
โโโ README.md # This file
โโโ install.sh # ๐ Master installation script
โโโ scripts/ # Installation and maintenance scripts
โ โโโ backup-current-configs.sh
โ โโโ install-packages.sh
โ โโโ restore-configs.sh
โ โโโ enable-services.sh
โ โโโ setup-auto-backup.sh
โ โโโ init-git.sh
โโโ packages/ # Package lists
โ โโโ explicit-packages.txt # All explicitly installed packages
โ โโโ aur-packages.txt # AUR-only packages
โ โโโ categories/ # Categorized package lists
โโโ config/ # Application configurations
โ โโโ hypr/ # Hyprland configs
โ โโโ waybar/ # Status bar
โ โโโ kitty/ # Terminal
โ โโโ gtk-3.0/, gtk-4.0/ # GTK theming
โ โโโ ... # Other app configs
โโโ shell/ # Shell configurations
โ โโโ .zshrc
โ โโโ .p10k.zsh
โโโ local/ # User-local files
โ โโโ bin/ # Custom scripts/binaries
โ โโโ share/applications/ # Custom .desktop entries
โโโ systemd/ # Systemd configuration
โ โโโ user/
โโโ docs/ # Documentation
โโโ KEYBINDS.md
โโโ INSTALL.md
โโโ TROUBLESHOOTING.md
Edit Hyprland keybindings:
nano ~/.config/hypr/custom/keybinds.confThen reload Hyprland:
hyprctl reloadYour monitor configuration is in:
nano ~/.config/hypr/monitors.confDetect connected monitors:
hyprctl monitorsThe color scheme is defined in:
~/.config/hypr/hyprland/colors.confcd ~/lofi-rice
./scripts/backup-current-configs.sh
git add .
git commit -m "Update: $(date +%Y-%m-%d)"
git push./scripts/setup-auto-backup.shThis creates a systemd timer that backs up configs daily.
pacman -Qe | awk '{print $1}' > packages/explicit-packages.txt
pacman -Qm | awk '{print $1}' > packages/aur-packages.txt- INSTALL.md - Detailed installation guide
- KEYBINDS.md - Complete keybinding reference
- TROUBLESHOOTING.md - Common issues and solutions
- OS: Arch Linux (kernel 6.17.7-arch1-1)
- Compositor: Hyprland (based on Illogical Impulse)
- Shell: Zsh with Zinit + Powerlevel10k
- Terminal: Kitty
- Display: 5-monitor setup (including portrait displays)
- Bootloader: Limine with BTRFS snapshot support
- GPU: Intel Arrow Lake-P integrated graphics (i915 driver)
- Storage: BTRFS with LUKS encryption
- Displays: 5 monitors (2 portrait, 3 landscape including eDP-1 laptop screen)
# Check Hyprland logs
cat ~/.hyprland.log
# Try starting manually
Hyprland# List connected monitors
hyprctl monitors
# Adjust monitors.conf accordingly
nano ~/.config/hypr/monitors.conf# Restart audio services
systemctl --user restart pipewire.socket
systemctl --user restart wireplumber.service
# Check audio status
wpctl statusMore solutions: See docs/TROUBLESHOOTING.md
This is a personal dotfiles repository, but feel free to:
- Fork it for your own use
- Open issues for questions
- Submit PRs for improvements
MIT License - Feel free to use and modify for your own setup
- Hyprland - The amazing Wayland compositor
- Illogical Impulse - Base Hyprland configuration
- Arch Linux community - For the incredible documentation
- r/unixporn - For inspiration
- GitHub: @Lofiwaffle
- Obsidian vault: See my mind repository for my second brain
Made with โค๏ธ and โ on Arch Linux