arch-linux
The Complete Guide to Setting Up Xero's Dotfiles on Arch Linux
• 12 min read
The Complete Guide to Setting Up Xero's Dotfiles on Arch Linux
Setting up a new Linux environment can be a daunting task, especially when aiming for a polished, efficient, and aesthetically pleasing workflow. This guide walks you through Xero's Dotfiles, a comprehensive Hyprland-based configuration for Arch Linux.
This configuration is based on JaKooLit's Hyprland-Dots, featuring custom modifications for improved stability, performance, and a cleaner developer workflow.
What's Included?
| Component | Application |
|---|---|
| Window Manager | Hyprland |
| Terminal | Kitty, Ghostty |
| Shell | Zsh (Oh-My-Zsh + Powerlevel10k) |
| Bar | Waybar |
| Launcher | Rofi (Wayland fork) |
| Notifications | SwayNC |
| File Manager | Thunar |
| Wallpaper | swww + wallust |
| Lock Screen | Hyprlock |
| Idle Daemon | Hypridle |
| Multiplexer | Tmux |
| Editor | Neovim |
Directory Structure
dotfiles/
├── .config/
│ ├── hypr/ # Hyprland window manager
│ ├── waybar/ # Status bar
│ ├── rofi/ # Application launcher
│ ├── kitty/ # Primary terminal emulator
│ ├── ghostty/ # Alternative terminal
│ ├── swaync/ # Notification center
│ ├── tmux/ # Terminal multiplexer
│ └── ... # More configs
├── .zshrc # Zsh configuration
├── .zprofile # Zsh login profile
└── README.md
Installation
Step 1: Install Dependencies
sudo pacman -S --needed hyprland hypridle hyprlock xdg-desktop-portal-hyprland \
wl-clipboard cliphist grim slurp swappy pipewire pipewire-pulse wireplumber \
pamixer playerctl swaync waybar rofi-wayland jq polkit-gnome \
network-manager-applet blueman brightnessctl thunar kitty kvantum qt5ct qt6ct \
nwg-look nwg-displays ttf-jetbrains-mono-nerd ttf-meslo-nerd otf-font-awesome \
zsh fzf zoxide atuin lsd lazygit tmux neovim papirus-icon-theme stow
# AUR packages
yay -S --needed swww wallust pokemon-colorscripts-git bibata-cursor-theme
Step 2: Clone & Apply
git clone https://github.com/lxrdxe7o/dotfiles.git ~/dotfiles
cd ~/dotfiles
stow .
Step 3: Configure Zsh
chsh -s $(which zsh)
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# Powerlevel10k
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git \
${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
# Plugins
git clone https://github.com/z-shell/F-Sy-H.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/F-Sy-H
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
Step 4: Reboot
reboot
Essential Keybindings
| Keybinding | Action |
|---|---|
SUPER + Return | Open Terminal |
SUPER + Q | Close Window |
SUPER + D | App Launcher (Rofi) |
SUPER + E | File Manager |
SUPER + 1-0 | Switch Workspace |
SUPER + SHIFT + 1-0 | Move Window to Workspace |
SUPER + SPACE | Toggle Floating Mode |
SUPER + SHIFT + S | Screenshot (Area) |
SUPER + W | Wallpaper Selector |
SUPER + CTRL + L | Lock Screen |
Troubleshooting
NVIDIA Users
Add to ~/.config/hypr/UserConfigs/ENVariables.conf:
env = LIBVA_DRIVER_NAME,nvidia
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = NVD_BACKEND,direct
Audio Issues
systemctl --user restart pipewire pipewire-pulse wireplumber
Happy ricing!