Arch Linux with Hyprland: A Beginner's Guide
Discover the power of Arch Linux and Hyprland, two popular choices for minimalist and highly customizable desktop setups. This tutorial will teach you how to install and configure both, providing you with a tailored desktop experience.
11/01/2024

Introduction
What is Hyprland?
Hyprland is a dynamic tiling Wayland compositor written in C++. It's designed to be highly customizable, feature-rich, and visually appealing while maintaining excellent performance. Hyprland provides advanced window management capabilities, smooth animations, and extensive configuration options that allow users to create a truly personalized desktop experience.
Why Hyprland?
Hyprland is an excellent choice for users who want a modern, efficient, and highly customizable desktop environment. As a Wayland compositor, it offers better security, performance, and multi-monitor support compared to traditional X11 window managers. Hyprland's tiling window management automatically organizes your windows for optimal screen space usage, boosting productivity.
The compositor is particularly appealing for power users and developers who appreciate fine-grained control over their desktop environment. With its extensive configuration options, smooth animations, and active development community, Hyprland represents the cutting edge of Linux desktop technology while remaining stable and reliable for daily use.
Installation
Requirements
- A usb drive with at least 8GB of storage
- A ISO image of Arch Linux Download
- A computer with a 64-bit processor
- A stable internet connection
Installation steps
First, you need to download the Arch Linux ISO image from the Arch Linux website. You can download the ISO image from the Arch Linux website by clicking on the download link on the Arch Linux website.
Second, use Ventoy to burn the ISO image to the USB drive. You can download Ventoy from this website  . Once you have downloaded Ventoy, you can craete bootable USB, then copy the ISO file to this.
Third, plug the USB drive into the computer that you want to install Arch Linux on. Then, you need to boot the computer from the USB drive. You can do this by restarting the computer and pressing the boot menu key when the computer starts up. The boot menu key is usually F12, but it can vary depending on the computer. Once you have booted the computer from the USB drive, you need to select the Arch Linux installation option from the boot menu.
Finally, started to install Arch Linux on your computer. You can follow the Arch Linux installation guide to install Arch Linux on your computer.
# Increase the font size
setfont ter-120nCheck the internet connection.
ping google.comIf the internet connection is not working, you can use the following command to connect to the internet.
iwctl
# List the available device
device list
# Scan the available network
station device_name scan
station device_name get-networks
# Connect to the network
station device_name connect SSID
# Enter the password
# Check the connection
station device_name show
# Exit the iwctl and check the connection
exit
ping google.com
# if the connection is working, you can continue the next stepSet up drive partitions to install Arch Linux.
# Show the available disk
lsblk
# Choose the drive has at least 50GB of storage
# Use cfdisk to create a new partition table on the drive
cfdisk /dev/[drive_name]Create the partitions on the drive.
- 
Move the cursor to the free space and press Enter
- 
Select the Newoption and pressEnter
- 
Set the size of the partition is 1Gand pressEnter
- 
Select typetoEFI Systemand pressEnter
- 
Go to the free space again and select the Newoption and pressEnter
- 
Set the size of the partition is at least 40GBand pressEnterThis partition is used to home directory You can set the size according to your needs. If you have more storage, you can set a larger size for this partition. 
- 
Select writeand pressEnterto write the changes to the disk thenquitto exit the cfdisk
# Format the partitions
mkfs.fat -F32 /dev/[drive_name] # EFI partition 1G
mkfs.ext4 /dev/[drive_name] # Home partition >= 40G
# Mount the partitions to the system
mount --mkdir /dev/[drive_name] /mnt/archinstall # Home partition (>= 40G)
mount --mkdir /dev/[drive_name] /mnt/archinstall/boot # EFI partition (1G)Run archinstall script to start the installation. In archinstall script, you can choose the following options:
- Disk configuration:- Choose Pre-mounted configurationto use the partitions that you have created
- Enter the directory: /mnt/archinstall
 
- Choose 
- Bootloader: Choose- GRUBas the bootloader
- Hostname: Enter the hostname for the computer
- Root password: Enter the root password
- User: Create your user account and remember to set user as- superuser
- Profile:- Choose Desktopas the profile and selectHyprlandas the desktop environment
- Choose Graphics driverand select GPU driver for your computer. In my case, I chooseNvidiadriver
- Greeter: Choose- SDDMas the greeter or something you like
 
- Choose 
- Additional packages:- Choose Yesto install additional packages
- Enter the package name: grubefibootmgros-proberneovimpipewire-pulseorpulseaudio
- Press enter to verify the package name
 
- Choose 
- Network configuration: Choose- Use NetworkManagerto manage the network connection
- Timezone: Choose the timezone for your location.
- Finally, choose Installto start the installation process
If you encounter a "Failed to install packages to new root" error when running archinstall, you may need to update the Arch Linux keyring before proceeding:
pacman -S archlinux-keyringAfter that, configure the system to boot into Arch Linux.
bootctl remove
# Mount the EFI partitions of Windows 11
lsblk # Check the EFI partition
mkdir /mnt/windows
mount /dev/[drive_name] /mnt/windows
# Grub installation
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch
grub-mkconfig -o /boot/grub/grub.cfgThen, config grub boot menu
nvim /etc/default/grubUncomment the following line
GRUB_DISABLE_OS_PROBER=falseUpdate the grub resolution by find and update the following line
GRUB_GFXMODE=1920x1080x32Optionally, you can set GRUB to remember your last boot selection:
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=trueFinally, reboot the computer and select the Arch Linux in the boot menu to start the system.
exit
rebootAfter reboot, open the terminal by press Win + Q, and start to set up dual boot with Windows 11.
sudo grub-mkconfig -o /boot/grub/grub.cfgNow, you can reboot the computer and can see the Windows 11 in the boot menu.
Set up
Installation
- 
Install yaypacman -Syu --needed git base-devel git clone https://aur.archlinux.org/yay.git ~/yay cd ~/yay makepkg -si rm -rf ~/yay
- 
Install all packages yes | yay -S --answerclean All --answerdiff None \ hypridle hyprlock hyprpaper hyprpicker xdg-desktop-portal-hyprland rofi-wayland waybar ffmpeg \ fastfetch zsh brightnessctl nwg-look playerctl libnotify matugen-bin swaync system76-power \ noto-fonts noto-fonts-cjk noto-fonts-emoji otf-geist otf-geist-mono-nerd \ github-cli lazygit lsd ripgrep unzip 7zip \ grim slurp jq cliphist wl-clipboard \ thunar gvfs tumblerI use zen as my default browser, you can install it by running the following command: yay -S zen-browser-binIf you use another browser, you must change the $browservariable in the~/dotfiles/hypr/core/keymaps.conffile to your browser's executable name.
- 
Install oh-my-zshsh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"Then, install zsh plugins git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions- 
UV (Python package manager) curl -LsSf https://astral.sh/uv/install.sh | sh
- 
NVM (Node Version Manager) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
 
- 
- 
Set up github Open your browser (press SUPER+B) and sign in to your GitHub account. Then authenticate GitHub CLI and set up SSH keys:gh auth login
- 
Uninstall unnecessary packages (optional) sudo pacman -Runs htop nano vim wofi
Usage
- 
To apply my config, you can run the following command: git clone git@github.com:tiesen243/dotfiles.git ~/dotfilesThen, create the symbolic links to the config files rm ~/.zshrc rm -rf ~/.config/{Thunar,fastfetch,git,hypr,kitty,lazygit,lsd,matugen,nvim,rofi,swaync,waybar} ln -s ~/dotfiles/{Thunar,fastfetch,git,hypr,kitty,lazygit,lsd,matugen,nvim,rofi,swaync,waybar} ~/.config ln -s ~/dotfiles/zsh/themes/yuki.zsh-theme ~/.oh-my-zsh/custom/themes ln -s ~/dotfiles/zsh/config.zsh ~/.zshrc cp -r ~/dotfiles/matugen/templates/GTK-colors ~/.local/share/themes/MatugenFinal, make all scripts in the dotfiles/scriptsdirectory executablesudo chmod +x ~/dotfiles/scripts/*
- 
Change Wallpaper in ~/dotfiles/hypr/hyprpaper.conf$path = /path/to/your/wallpaperOr change file in ~/dotfiles/assets/_background.png
- 
Add your avatar to ~/dotfiles/assets/_avatar.pngto show in the lock screen
- 
Enable system76-powerservicesystemctl enable --now com.system76.PowerDaemon.service
- 
Generate colorschemamatugen image /path/to/your/wallpaper # or matugen image ~/dotfiles/assets/_background.png
- 
Laptop Fan Control (optional) If you're using a laptop and want to control your fans for better thermal management or noise reduction, install nbfcand configure it to your liking.yay -S nbfc-linuxThen run the following command to set up the fan control - 
Detect the fan on your laptop and set it. sudo nbfc config --set auto
- 
Add service to start the fan control sudo systemctl enable nbfc_serviceThen rebootthe computer to apply the changes.
- 
Now you can control the fan speed by using the following command nbfc set -s [fan_speed in percentage] nbfc set -a #auto fan speed
 
- 
- 
Restart the computer to apply all changes reboot
If it show wrong time on Windows, you can run the following command to fix it
timedatectl set-local-rtc 1Keybindings
Here are the essential keybindings for navigating and controlling your Hyprland desktop environment. These shortcuts will help you efficiently manage windows, workspaces, applications, and system functions:
| Keybinding | Action | 
|---|---|
| Super + A | Toggle notification center (Swaync) | 
| Super + B | Open browser (Zen) | 
| Super + E | Open file manager (Thunar) | 
| Super + T | Open terminal (Kitty) | 
| Super + C | Color picker | 
| Super + Q | Kill active window | 
| Super + Space | Application launcher (Rofi) | 
| Super + X | Power menu (Rofi) | 
| Super + R | Window switcher (Rofi) | 
| Super + G | Google search (Rofi) | 
| Super + V | Clipboard history (Rofi) | 
| Super + F | Toggle floating window | 
| Super + Shift + F | Toggle fullscreen | 
| Super + O | Pseudo tile | 
| Super + Shift + O | Toggle split | 
| Super + S | Screenshot selection | 
| Super + Shift + S | Screenshot full screen | 
| Super + H/J/K/L | Move focus (left/down/up/right) | 
| Super + SHIFT + H/J/K/L | Move window (left/down/up/right) | 
| Super + ALT  + H/J/K/L | Resize window | 
| Super + 1-9/0 | Switch to workspace 1-10 | 
| Super + Shift + 1-9/0 | Move window to workspace 1-10 | 
| Super + W | Toggle special workspace | 
| Super + Shift + W | Move to special workspace | 
| Super + Mouse Wheel | Switch workspaces | 
| Super + Left Click | Move window | 
| Super + Right Click | Resize window | 
| XF86AudioRaiseVolume | Volume up | 
| XF86AudioLowerVolume | Volume down | 
| XF86AudioMute | Toggle mute | 
| XF86MonBrightnessUp | Brightness up | 
| XF86MonBrightnessDown | Brightness down | 
You can find all keybindings in your configuration file at ~/.config/hypr/core/keymaps.conf.
Conclusion
In this tutorial, you have learned how to install Arch Linux with Hyprland OS on your computer. You have also learned how to set up the system and customize it to your liking. I hope this tutorial has been helpful to you, and I wish you the best of luck with your new Arch Linux system. If you have any questions or need further assistance, please feel free to ask. Thank you for reading!
References
Document: Hyprland My dotfiles: GitHub - tiesen243/dotfiles