A clear and detailed guide for installing Arch Linux with Hyprland on a UEFI system.
Note: This guide assumes basic knowledge of Linux and the terminal. Read through each step carefully before executing commands.
- Prerequisites
- 1. Prepare Installation Media
- 2. Boot & Initial Setup
- 3. Partition the Disk
- 4. Format & Mount Partitions
- 5. Install Base System
- 6. Configure the System
- 7. Install Bootloader
- 8. Post-Installation
- 9. Install Hyprland
- 10. Ricing Tools
- 11. Common Errors & Solutions
- A USB drive (at least 2GB)
- A computer with UEFI firmware
- Arch Linux ISO: https://archlinux.org/download
- A tool to flash the ISO — Rufus on Windows or
ddon Linux - A stable internet connection
On Windows (Rufus):
- Download and open Rufus
- Select your USB drive
- Select the Arch Linux ISO
- Set partition scheme to GPT
- Click Start
On Linux:
dd bs=4M if=/path/to/archlinux.iso of=/dev/sdX status=progress oflag=sync
⚠️ Replace/dev/sdXwith your USB drive (e.g./dev/sdb). Double-check the device — wrong target will wipe your data.
Enter your UEFI/BIOS and set the USB drive as the first boot device, then boot from it.
ls /sys/firmware/efi/efivarsIf the directory exists, you are booted in UEFI mode. If not, check your BIOS settings.
# List available layouts
ls /usr/share/kbd/keymaps/**/*.map.gz
# Load Swedish layout (example)
loadkeys sv-latin1Ethernet: Should work automatically.
Wi-Fi:
iwctl
station wlan0 scan
station wlan0 get-networks
station wlan0 connect YOUR_NETWORK_NAME
exitping -c 3 archlinux.orgtimedatectl set-ntp truelsblkYour disk is typically
/dev/sdafor SATA drives or/dev/nvme0n1for NVMe drives. Adjust the commands below accordingly.
fdisk /dev/sdaRequired partitions for UEFI:
| Partition | Size | Type | Mount point |
|---|---|---|---|
| /dev/sda1 | 512MB | EFI System | /boot |
| /dev/sda2 | 4–8GB (optional) | Linux swap | swap |
| /dev/sda3 | Remaining space | Linux filesystem | / |
Inside fdisk:
g # Create new GPT partition table
n # New partition (repeat for each partition)
p # Print partition table to verify
t # Change partition type (select partition number first)
# Type 1 = EFI System (for /boot)
# Type 19 = Linux swap (for swap)
# Type 20 = Linux filesystem (for /)
w # Write changes and exit
# Format EFI partition
mkfs.fat -F32 /dev/sda1
# Format swap
mkswap /dev/sda2
# Format root partition
mkfs.ext4 /dev/sda3# Mount root
mount /dev/sda3 /mnt
# Enable swap
swapon /dev/sda2
# Create and mount EFI directory
mkdir -p /mnt/boot
mount /dev/sda1 /mnt/bootpacstrap /mnt base base-devel linux linux-firmware networkmanager vim gitThis installs the base system, kernel, firmware, network manager, a text editor and git. May take a few minutes depending on your internet speed.
genfstab -U /mnt >> /mnt/etc/fstabVerify it looks correct with
cat /mnt/etc/fstab.
arch-chroot /mnt# List timezones
timedatectl list-timezones | grep Stockholm
# Set timezone
ln -sf /usr/share/zoneinfo/Europe/Stockholm /etc/localtime
hwclock --systohc# Edit locale.gen and uncomment your locale (e.g. en_US.UTF-8 UTF-8)
vim /etc/locale.gen
# Generate locale
locale-gen
# Set default locale
echo "LANG=en_US.UTF-8" > /etc/locale.confecho "yourhostname" > /etc/hostnamepasswduseradd -m -G wheel -s /bin/bash yourusername
passwd yourusernameEDITOR=vim visudo
# Uncomment the following line:
# %wheel ALL=(ALL:ALL) ALL# Install GRUB and EFI tools
pacman -S grub efibootmgr
# Install GRUB to EFI partition
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
# Generate GRUB config
grub-mkconfig -o /boot/grub/grub.cfgsystemctl enable NetworkManagerexit
umount -R /mnt
reboot
⚠️ Remove the USB drive when the system shuts down.
Log in with your user account.
# Wi-Fi via TUI
nmtuisudo pacman -Syugit clone https://aur.archlinux.org/yay.git
cd yay
makepkg -sisudo pacman -S pipewire pipewire-alsa pipewire-pulse wireplumber \
xdg-user-dirs \
xdg-desktop-portal xdg-desktop-portal-hyprland \
qt5-wayland qt6-wayland \
ttf-font-awesome noto-fonts noto-fonts-emoji \
firefox kitty
xdg-desktop-portalis required as a base alongsidexdg-desktop-portal-hyprlandfor screen sharing and file pickers to work correctly.
sudo pacman -S hyprland waybar wofi dunstPackage descriptions:
| Package | Description |
|---|---|
| hyprland | The Wayland compositor |
| waybar | Status bar |
| wofi | Application launcher |
| dunst | Notification daemon |
| kitty | Terminal emulator (installed in step 8) |
mkdir -p ~/.config/hypr
cp /usr/share/hypr/hyprland.conf ~/.config/hypr/hyprland.confHyprlandAdd the following to your ~/.bash_profile to start Hyprland automatically when logging into TTY1:
if [ -z "$WAYLAND_DISPLAY" ] && [ "$XDG_VTNR" -eq 1 ]; then
exec Hyprland
fiThis check ensures Hyprland only starts on TTY1, not if you log in on another TTY.
A collection of tools to customize and enhance your Arch Linux setup.
| Tool | Description |
|---|---|
| Cmatrix | Matrix-style terminal screensaver |
| Cava | Terminal audio visualizer |
| Btop | Resource monitor with a beautiful UI |
| Peaclock | Minimalist terminal clock |
| Fastfetch | Fast system information tool |
| Cbonsai | Animated bonsai tree in the terminal |
Note: Picom is an X11 compositor and is not compatible with Hyprland. Hyprland has its own built-in compositor with support for transparency and animations — no separate compositor is needed.
# Cmatrix
sudo pacman -S cmatrix
# Cava
sudo pacman -S cava
# Btop
sudo pacman -S btop
# Fastfetch
sudo pacman -S fastfetch
# Peaclock (AUR)
yay -S peaclock
# Cbonsai (AUR)
yay -S cbonsaiYour EFI partition may be too small. Repartition and give /boot at least 512MB.
Boot from the USB, chroot back in and reinstall GRUB:
mount /dev/sda3 /mnt
mount /dev/sda1 /mnt/boot
arch-chroot /mnt
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfgsudo systemctl start NetworkManager
sudo systemctl enable NetworkManager
nmtuiMake sure your GPU drivers are installed:
# AMD
sudo pacman -S mesa vulkan-radeon
# NVIDIA
sudo pacman -S nvidia nvidia-utils
# Intel
sudo pacman -S mesa vulkan-intel- Verify that
xdg-desktop-portalandxdg-desktop-portal-hyprlandare both installed - Make sure you are booting in UEFI mode
- Check GPU drivers are installed (see above)
MIT