Hyprland on Base Arch Linux.
// from tty to usable desktop.
This guide assumes you already have a working base Arch install (network, users, bootloader done). We install Hyprland and enough core tools to make it daily-usable without pulling in someone else's full dotfiles stack.
# sudo pacman -Syu
sync and update base system
# sudo pacman -S --needed hyprland waybar wofi kitty
install compositor and core desktop tools
# Hyprland
// contents
Before you start
GPU and session prerequisites
Install Hyprland stack
Create minimal Hyprland config
Start Hyprland from tty
Optional: use SDDM
First boot checks
Common issues
Sources
Before you start
- You are logged into a regular user on a completed base Arch system.
sudoworks for that user.- Internet is working.
- You are comfortable editing config files in Neovim.
- If this is your first Wayland setup, do this on a VM or non-critical machine first.
// expectation check
Hyprland is a compositor, not a full desktop environment. You need to install and configure your own bar, launcher, notifications, lock screen, and wallpaper tools.
GPU and session prerequisites
Install the driver stack that matches your hardware before debugging Hyprland itself.
driver examples
# Intel / AMD (Mesa stack) sudo pacman -S --needed mesa vulkan-icd-loader # AMD Vulkan userspace sudo pacman -S --needed vulkan-radeon # Intel Vulkan userspace sudo pacman -S --needed vulkan-intel # NVIDIA proprietary stack (if you use NVIDIA) sudo pacman -S --needed nvidia nvidia-utils
Install Hyprland stack
This is a practical baseline: compositor, portal, bar, launcher, terminal, wallpaper, lock, idle, clipboard, screenshot, and audio/session pieces.
core packages
sudo pacman -Syu sudo pacman -S --needed hyprland xdg-desktop-portal xdg-desktop-portal-hyprland sudo pacman -S --needed waybar wofi kitty hyprpaper hyprlock hypridle hyprpolkitagent sudo pacman -S --needed wl-clipboard grim slurp sudo pacman -S --needed pipewire wireplumber pipewire-audio pavucontrol sudo pacman -S --needed ttf-dejavu ttf-jetbrains-mono-nerd noto-fonts noto-fonts-emoji
// portal note
Screen sharing and many flatpak/app file picker flows rely on xdg-desktop-portal plus a backend like xdg-desktop-portal-hyprland.
Create minimal Hyprland config
Copy the packaged default config, then set terminal/launcher and startup services.
main config
mkdir -p ~/.config/hypr cp /usr/share/hypr/hyprland.conf ~/.config/hypr/hyprland.conf nvim ~/.config/hypr/hyprland.conf # ensure these lines exist in hyprland.conf: $terminal = kitty $menu = wofi --show drun bind = SUPER, Return, exec, $terminal bind = SUPER, D, exec, $menu exec-once = waybar exec-once = hyprpaper exec-once = hyprpolkitagent
wallpaper config
mkdir -p ~/Pictures/wallpapers # put a wallpaper image at ~/Pictures/wallpapers/default.jpg first nvim ~/.config/hypr/hyprpaper.conf # hyprpaper.conf: preload = ~/Pictures/wallpapers/default.jpg wallpaper = ,~/Pictures/wallpapers/default.jpg splash = false ipc = on
Start Hyprland from tty
Use tty launch first. It is the fastest way to debug without introducing display-manager variables.
manual start
Hyprland
optional auto-start on tty1
nvim ~/.zprofile # add: if [ -z "$DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then exec Hyprland fi
Optional: use SDDM
If you prefer a graphical login manager instead of tty launch:
sddm path
sudo pacman -S --needed sddm sudo systemctl enable sddm reboot
// first setup recommendation
Validate Hyprland from tty first, then add SDDM after your user config is known-good.
First boot checks
sanity checks
echo $XDG_SESSION_TYPE # should print wayland hyprctl monitors systemctl --user status xdg-desktop-portal.service xdg-desktop-portal-hyprland.service --no-pager pactl info | grep \"Server Name\" nmcli general status
Common issues
Black screen or immediate exit
Switch to tty, run
Hyprland directly, then inspect logs with journalctl --user -b --no-pager. Most failures are driver/session/package gaps.Screen sharing or picker issues
Confirm both portal packages are installed. Then restart user portals:
systemctl --user restart xdg-desktop-portal xdg-desktop-portal-hyprland.No audio devices
Check PipeWire and WirePlumber user services and relogin:
systemctl --user status pipewire wireplumber --no-pager.Polkit prompts do not appear
Ensure
hyprpolkitagent is installed and exec-once = hyprpolkitagent is present in hyprland.conf.