A modern, aesthetically-pleasing Wayland desktop environment configuration for Artix Linux (dinit) featuring Hyprland, dynamic PyWAL theming, and extensive customization.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
- OS: Artix Linux with dinit (systemd-free)
- Compositor: Hyprland (Wayland) with 240Hz support
- Status Bar: Hyprpanel
- Terminal: Alacritty (primary), Kitty (alternative)
- Shell: Zsh with Powerlevel10k prompt
- Launcher: Rofi (apps), Wofi (wallpapers)
- Lock Screen: Hyprlock with custom styling
- Logout Menu: Wlogout with power controls
- PyWAL16 Integration: Automatic color scheme generation from wallpapers
- All UI elements synchronized: Hyprland, Alacritty, Rofi, Wlogout, rEFInd, sddm
- Seamless theme switching with wallpaper selector
- 15+ wallpapers included (see Wallpapers section)
- Extensive Hyprland keybindings (SUPER as main modifier)
- Window management, workspace navigation, media controls
- Custom scripts triggered by hotkeys
- Wallpaper Selector: GUI picker with thumbnail generation and caching
- Lock Screen: Screenshot-based blur with automatic cleanup
- Browser Launcher: Quick browser selection menu
- Battery Monitor: Daemon with sound notifications at 15%, 50%, 100%
- Flight Mode: Quick WiFi toggle
- More automation scripts for daily tasks
- High-DPI support (1.333x scaling for 2560x1600 @ 240Hz)
- Custom fonts: MesloLGS NF, SF Pro Display, Roboto
- Smooth animations and blur effects
- Semi-transparent terminals and menus
- Catppuccin-inspired color palette
.profile1.jpg
.profile2.jpg
.stow-local-ignore
.zshenv
.config/
βββ hypr/
β βββ hyprland.conf
β βββ hyprlock.conf
β βββ keybinds/
β βββ keywords/
β βββ scripts/
βββ zsh/
β βββ .zshrc
β βββ .p10k.zsh
β βββ .zprofile
βββ alacritty/
βββ kitty/
βββ rofi/
βββ wofi/
βββ wlogout/
βββ aliasrc
install.sh
README.md
lockscreen- Lock screen with screenshot blurwofi-wallpaper-selector.sh- Advanced wallpaper pickerrofi-browser.sh- Browser selection menubattery-checknow- Battery monitoring daemonflightmode- WiFi toggle utilityafkscript- Minecraft auto-fishing automation- Plus more utility scripts
- Lock screen profile images
- Wlogout power menu icons (16 themed PNGs)
- Custom system sounds for notifications
- Font files (JetBrains Mono Nerd, SF Pro Display)
- π¦ Additional Packages
System Requirements:
- Artix Linux (dinit preferred) or Arch-based distribution
- Wayland support
- Basic familiarity with command line and Hyprland
Essential Packages:
# Core Wayland & Hyprland
hyprland hyprpanel hyprlock xdg-desktop-portal-hyprland wayvnc
# Wallpaper & Theming
swww python-pywal16 imagemagick
# Launchers & Menus
rofi-wayland wofi wlogout
# Screenshots
grim slurp
# Audio & Media
pipewire pipewire-<your-init> wireplumber wireplumber-<your-init> playerctl paplay
# Terminal & Shell
alacritty kitty zsh
# Utilities
brightnessctl thunar eza fzf fastfetch zoxide
β οΈ WARNING: This will replace your current configurations. Back up your existing dotfiles first!
Automated Installation (Recommended):
# 1. Clone this repository
cd ~
git clone https://github.com/ShengHuiPang/dotfiles.git
cd dotfiles
# 2. Run the installation script
./install.sh
# Or use command-line options for automation
./install.sh --help # Show all options
./install.sh --yes --symlink # Non-interactive symlink installationThe install script features:
- β Dependency checking (required + optional packages)
- β Automatic backup with timestamps
- β Symlink or copy installation modes
- β Zsh plugin installation (Powerlevel10k, fzf-tab, syntax-highlighting, autosuggestions)
- β PyWAL theme initialization
- β Interactive or non-interactive modes (--yes flag)
- β Command-line arguments (--help, --symlink, --copy)
- β Comprehensive error handling and feedback
Manual Installation:
# 1. Clone this repository
cd ~
git clone https://github.com/ShengHuiPang/dotfiles.git
# 2. Backup your current configs (IMPORTANT!)
mkdir -p ~/dotfiles-backup
cp -r ~/.config ~/dotfiles-backup/
cp ~/.zshenv ~/dotfiles-backup/
# 3. Create symlinks (or copy files)
# Option A: Symlink (recommended - keeps repo in sync)
ln -sf ~/dotfiles/.config/* ~/.config/
ln -sf ~/dotfiles/.zshenv ~/.zshenv
# Option B: Copy (standalone configs)
cp -r ~/dotfiles/.config/* ~/.config/
cp ~/dotfiles/.zshenv ~/.zshenv
# 4. Make scripts executable
chmod +x ~/dotfiles/Scripts/*
chmod +x ~/dotfiles/.config/hypr/scripts/*
# 5. Set Zsh as default shell
chsh -s $(which zsh)
# 6. Install Zsh plugins (if not already installed)
# Powerlevel10k
paru -S zsh-theme-powerlevel10k-git ttf-meslo-nerd-font-powerlevel10k
# Remaining Plugins
paru -S fzf-tab-git zsh-syntax-highlighting zsh-autosuggestions zsh-vi-mode zsh-you-should-use zsh-auto-notify
# 7. Add wallpapers to ~/dotfiles/Wallpapers/
mkdir -p ~/dotfiles/Wallpapers
# Copy your wallpapers here (jpg/png format)
# 8. Initialize PyWAL with first wallpaper
wal -i ~/dotfiles/Wallpapers/wallpaper1.jpg
# 9. Reload Hyprland
hyprctl reload
# Or restart your session
# 10. Configure personal settings
# Edit ~/.config/hypr/keywords/keywords.conf for your preferencesAfter installation, you should customize these files:
-
Personal Information
- Edit
~/.config/hypr/hyprlock.conf- Update username and profile image
- Edit
-
Monitor Configuration
- Edit
~/.config/hypr/hyprland.conf- Adjust monitor settings for your display
# Change this line to match your monitor monitor=eDP-1, 2560x1600@240, 0x0, 1.333 - Edit
-
Preferred Applications
- Edit
~/.config/hypr/keywords/keywords.conf
$terminal = alacritty # Your preferred terminal $fileManager = thunar # Your preferred file manager - Edit
-
GPU Configuration
- If using AMD/Intel GPU, remove or adjust NVIDIA-specific environment variables in
hyprland.conf
- If using AMD/Intel GPU, remove or adjust NVIDIA-specific environment variables in
This setup uses PyWAL for dynamic color generation:
# Change theme by setting wallpaper
wal -i /path/to/wallpaper.jpg
# Or use the wallpaper selector
# Press SUPER+A to open GUI selectorHow it works:
- PyWAL analyzes wallpaper colors
- Generates color schemes in
~/.cache/wal/ - All configs import these colors automatically
- Instant theme synchronization across all apps
Important: Don't edit colors directly in app configs - they'll be overridden!
| Keybind | Action |
|---|---|
SUPER + Q |
Open terminal (Alacritty) |
SUPER + E |
File manager (Thunar) |
SUPER + D |
Application launcher (Rofi) |
SUPER + A |
Wallpaper selector (Wofi) |
SUPER + W |
Browser selector |
SUPER + L |
Lock screen |
SUPER + M |
Logout menu |
SUPER + C |
Close window |
SUPER + V |
Toggle floating |
SUPER + F |
Toggle fullscreen |
SUPER + [1-9] |
Switch workspace |
SUPER + Shift + [1-9] |
Move window to workspace |
SUPER + Arrow Keys |
Move focus |
SUPER + Shift + Arrow Keys |
Move window |
Print |
Screenshot (full screen) |
SUPER + B |
Screenshot (region) |
Volume/Brightness Keys |
Media controls |
Full keybind reference: See ~/.config/hypr/keybinds/keybinds.conf
Wallpapers are stored in ~/dotfiles/Wallpapers/ but not included in this repository due to file size.
Current Wallpaper Collection:
- 15 high-quality wallpapers (2560x1600 recommended)
- Naming:
wallpaper1.jpgthroughwallpaper15.png - Mix of JPG and PNG formats
Adding Your Own Wallpapers:
# Copy wallpapers to the folder
cp /path/to/your/wallpaper.jpg ~/dotfiles/Wallpapers/
# Use wallpaper selector to apply
# Press SUPER+A and select from thumbnailsThe wallpaper selector will automatically:
- Generate thumbnails (250x141px)
- Cache them for faster loading
- Apply wallpaper with smooth transition
- Generate matching color scheme via PyWAL
-
Create script in
~/dotfiles/Scripts/touch ~/dotfiles/Scripts/my-script.sh chmod +x ~/dotfiles/Scripts/my-script.sh
-
Add to keybinds (
~/.config/hypr/keybinds/keybinds.conf)bind = SUPER, KEY, exec, $HOME/Scripts/my-script.sh -
Reload Hyprland
hyprctl reload
Edit ~/.config/aliasrc:
alias myalias='command here'Reload shell:
source ~/.config/zsh/.zshrcEdit ~/.config/zsh/.zshrc and add conditional loading:
if [ -f /path/to/plugin.zsh ]; then
source /path/to/plugin.zsh
fiHyprland won't start
- Check logs:
cat ~/.hyprland/hyprland.log - Verify GPU drivers installed
- Ensure Wayland support enabled
Colors look wrong
- Run PyWAL:
wal -i ~/dotfiles/Wallpapers/wallpaper1.jpg - Check cache exists:
ls ~/.cache/wal/ - Reload Hyprland:
hyprctl reload
Scripts don't execute
- Verify executable:
chmod +x ~/dotfiles/Scripts/* - Check path in keybinds uses
$HOME/Scripts/ - Test script manually from terminal
Powerlevel10k not showing
- Install required fonts: MesloLGS NF
- Run configuration wizard:
p10k configure - Check Zsh plugin loaded in
.zshrc
Lock screen shows wrong username
- Edit
~/.config/hypr/hyprlock.conf - Update text label with your username
Wallpaper selector is empty
- Add wallpapers to
~/dotfiles/Wallpapers/ - Verify wofi and swww installed
- Check script has execute permission


















