Pos-Installation

Double Checking

To check the timesyncd service, run:

timedatectl status

To refresh the entire system:

sudo pacman -Syyu

Make sure to have some basic system packages installed:

sudo pacman -S --needed base-devel bash curl gcc git ncurses xz zstd

Installing Some Compilers

Install clang:

sudo pacman -S clang

Install go:

sudo pacman -S go

Install lua:

sudo pacman -S lua

Install rustup:

sudo pacman -S rustup
rustup update stable

Graphic Drivers

OpenGL

Install mesa:

sudo pacman -S mesa

AMD

For Vulkan support:

sudo pacman -S vulkan-radeon

Nvidia

Install the nvidia package:

sudo pacman -S nvidia

UKI

Busybox

Install busybox to enable an emergency shell in case of a panic during the boot process:

sudo pacman -S busybox

Microcode

Install amd-ucode or intel-ucode according with your CPU.

sudo pacman -S amd-ucode
sudo pacman -S intel-ucode

Booster

Install booster:

sudo pacman -S booster

Set the configuration file accordingly:

sudo nano /etc/booster.yaml
extra_files: busybox,fsck,fsck.ext4
modules_force_load: amdgpu,hid_generic,usbhid

Note: the modules_force_load: amdgpu,hid_generic,usbhid line is not obligatory.

For NVIDIA you can replace amdgpu with the following:

modules_force_load: nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm

Ukify

Install systemd-ukify:

sudo pacman -S systemd-ukify

Set the configuration accordingly:

sudo nano /etc/ukify.conf
[UKI]
Linux=/boot/vmlinuz-linux
Initrd=/boot/amd-ucode.img /boot/booster-linux.img
Cmdline=@/etc/kernel/cmdline
OSRelease=@/etc/os-release
Splash=/usr/share/systemd/bootctl/splash-arch.bmp

Note: probably this configuration isn't required because it will be replaced by the kernel-install one.

Kernel-install

Set the install.conf file:

sudo nano /etc/kernel/install.conf
layout=uki
uki_generator=ukify

Set the ukify configuration in the uki.conf file:

sudo nano /etc/kernel/uki.conf
[UKI]
Linux=/boot/vmlinuz-linux
Initrd=/boot/amd-ucode.img /boot/booster-linux.img
Cmdline=@/etc/kernel/cmdline
OSRelease=@/etc/os-release
Splash=/usr/share/systemd/bootctl/splash-arch.bmp

To verify the current kernel-install paths and parameters configuration, run:

kernel-install inspect

Kernel Command Line

To check the parameters your system was booted up with, run:

cat /proc/cmdline

To include new kernel parameters to the UKI, for example nvme_load=YES, nowatchdog, quiet, splash, etc. use the /etc/kernel/cmdline file:

sudo nano /etc/kernel/cmdline

rEFInd

Install refind package:

sudo pacman -S refind

Install it with the refind-install script:

refind-install

Note: for comfort I will use the su command that launches an interactive shell as root.

To add the catppuccin theme, create a themes directory inside refind installation path:

cd /efi/EFI/refind
mkdir themes

Clone the repo inside the themes folder:

cd themes
git clone https://github.com/catppuccin/refind.git catppuccin

It requires a include themes/catppuccin/mocha.conf line to be appended to the end of refind.conf file.

To go back to the refind directory:

cd /efi/EFI/refind

We can now customize the refind.conf by adding a new menuentry for the systemd-boot boot loader. Although it might seem a bit contradictory to use rEFInd to launch systemd-boot, rEFInd's role here is to provide a simple and customizable interface that can handle a dual-boot scenario for different available distros.

nano refind.conf
menuentry "Arch Linux" {
    icon /EFI/refind/themes/catppuccin/assets/mocha/icons/os_arch.png
    volume "ARCHIE"
    loader /EFI/systemd/systemd-bootx64.efi
}

include themes/catppuccin/mocha.conf

Note the catppuccin theme being included in the last line.

For more info, check rEFInd official documentation

To exit the interactive shell simply run exit.

Package Manager

Pacman

Update pacman configuration file:

sudo nano /etc/pacman.conf
# Misc options
#UseSyslog
Color
ILoveCandy
#NoProgressBar
#CheckSpace
VerbosePkgLists
ParallelDownloads = 5

An example can be found on EndeavourOS repo

Yay

First, create and cd into an apps directory:

mkdir apps && cd apps

To install yay:

git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si

Additional Pacman Hooks

Install extra pacman hooks for the kernel-install:

yay -S pacman-hook-kernel-install

Pacman Utilities

Install the pacman-contrib package:

sudo pacman -S pacman-contrib

Enable the paccache.timer to periodically clean the pacman cache:

systemctl enable paccache.timer

Generating the UKI

Reinstall the kernel package to trigger the kernel-install in order to generate the unified kernel image:

sudo pacman -S linux

To list the current available boot entries which have been configured, run:

sudo bootctl list

If everything seems correct, reboot the system:

reboot