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.

archlinuxhyprlandlinuxtutorialdesktop-environmentrolling-releasecustomizationinstallation-guide

11/01/2024

Arch Linux with Hyprland: A Beginner's Guide

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

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-120n

Check the internet connection.

ping google.com

If 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 step

Set 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.

# 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:

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-keyring

After 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.cfg

Then, config grub boot menu

nvim /etc/default/grub

Uncomment the following line

/etc/default/grub
GRUB_DISABLE_OS_PROBER=false

Update the grub resolution by find and update the following line

/etc/default/grub
GRUB_GFXMODE=1920x1080x32

Optionally, you can set GRUB to remember your last boot selection:

/etc/default/grub
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

Finally, reboot the computer and select the Arch Linux in the boot menu to start the system.

exit
reboot

After 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.cfg

Now, you can reboot the computer and can see the Windows 11 in the boot menu.

Set up

Installation

  1. Install yay

    pacman -Syu --needed git base-devel
    git clone https://aur.archlinux.org/yay.git ~/yay
    cd ~/yay
    makepkg -si
    rm -rf ~/yay
  2. Install all packages

    yes | yay -S --answerclean All --answerdiff None \
      hypridle hyprlock hyprpaper hyprpicker xdg-desktop-portal-hyprland-git rofi-wayland \
      noto-fonts noto-fonts-cjk noto-fonts-emoji otf-geist otf-geist-mono-nerd \
      fastfetch zsh brightnessctl nwg-look playerctl libnotify swaync \
      github-cli lazygit lsd ripgrep unzip \
      grim slurp cliphist wl-clipboard \
      ffmpeg pipewire wireplumber \
      thunar gvfs

    I use zen as my default browser, you can install it by running the following command:

    yay -S --noconfirm zen-browser-bin

    If you use another browser, you must change the $browser variable in the ~/dotfiles/hypr/core/keymaps.conf file to your browser's executable name.

  3. Install oh-my-zsh

    sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

    Remember to choose zsh as your default shell

    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
  4. 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
  5. Uninstall unnecessary packages (optional)

    sudo pacman -Runs htop nano vim wofi

Usage

  1. To apply my config, you can run the following command:

    git clone git@github.com:tiesen243/dotfiles.git ~/dotfiles

    Then, create the symbolic links to the config files

    rm ~/.zshrc
    rm -rf ~/.config/{Thunar,fastfetch,git,hypr,kitty,lazygit,lsd,nvim,rofi,swaync}
    
    ln -s ~/dotfiles/{Thunar,fastfetch,git,hypr,kitty,lazygit,lsd,nvim,rofi,swaync} ~/.config
    ln -s ~/dotfiles/zsh/themes/yuki.zsh-theme ~/.oh-my-zsh/custom/themes
    ln -s ~/dotfiles/zsh/config.zsh ~/.zshrc

    Final, make all scripts in the dotfiles/scripts directory executable

    sudo chmod +x ~/dotfiles/scripts/*
  2. Change Wallpaper in ~/dotfiles/hypr/hyprpaper.conf

    $path = /path/to/your/wallpaper

    Or change file in ~/dotfiles/assets/_background.png

  3. Add your avatar to ~/dotfiles/assets/_profile.png to show in the lock screen

  4. Change sddm theme

    Copy the eucalyptus-drop theme to the SDDM themes directory:

    sudo cp -r ~/dotfiles/sddm/eucalyptus-drop /usr/share/sddm/themes

    Change the SDDM theme in the SDDM configuration file:

    /usr/lib/sddm/sddm.conf.d/default.conf
    [Theme]
    # Current theme name
    Current=/usr/share/sddm/themes/eucalyptus-drop
  5. Laptop Fan Control (optional)

    If you're using a laptop and want to control your fans for better thermal management or noise reduction, install nbfc and configure it to your liking.

     yay -S nbfc-linux

    Then 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_service

      Then reboot the 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

If it show wrong time on Windows, you can run the following command to fix it

timedatectl set-local-rtc 1

Keybindings

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:

KeybindingAction
Super + AToggle notification center
Super + BOpen browser (Zen)
Super + EOpen file manager (Thunar)
Super + TOpen terminal (Kitty)
Super + CColor picker
Super + QKill active window
Super + SpaceApplication launcher (Rofi)
Super + XPower menu (Rofi)
Super + RWindow switcher (Rofi)
Super + NWeb search (Rofi)
Super + VClipboard history (Rofi)
Super + FToggle floating window
Super + Shift + FToggle fullscreen
Super + OPseudo tile
Super + Shift + OToggle split
Super + SScreenshot selection
Super + Shift + SScreenshot full screen
Super + H/J/K/LMove focus (left/down/up/right)
Super + Ctrl + H/J/K/LMove window (left/down/up/right)
Super + Ctrl + Shift + H/J/K/LResize window
Super + 1-9/0Switch to workspace 1-10
Super + Shift + 1-9/0Move window to workspace 1-10
Super + WToggle special workspace
Super + Shift + WMove to special workspace
Super + Mouse WheelSwitch workspaces
Super + Left ClickMove window
Super + Right ClickResize window
XF86AudioRaiseVolumeVolume up
XF86AudioLowerVolumeVolume down
XF86AudioMuteToggle mute
XF86MonBrightnessUpBrightness up
XF86MonBrightnessDownBrightness down

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