Arch with UEFI boot and Hyprland compositor

Verify connectivity:

ping archlinux.org

ensure time and date

timedatectl

Partitioning primary disk

fdisk /dev/{DEVICE}

UEFI with GPT partitions

  1. Boot: 4GB

  2. Swap: double the ram space

  3. Root: Reminder

Formatting partitions

BTRFS

Mkfs.fat -F 32 /dev/sdXx

mkswap /dev/sdXx

mkfs.btrfs /dev/sdXx

Mount file systems

Root: mount /dev/sdXx /mnt/

Boot: mount --mkdir /dev/sdXx /mnt/boot/efi

Swap: swapon /dev/sdXx

Download essentials:

pacstrap -K /mnt base linux linux-firmware nano intel-ucode hyprland
polkit nvidia-open nvidia-utils networkmanager man texinfo

Generate fstab

genfstab -L /mnt \>\> /mnt/etc/fstab

chroot to the installed system

arch-chroot /mnt

Set timezone

ln -sf /usr/share/zoneinfo/*Region*/*City* /etc/localtime

Set Hardware clock

hwclock \--systohc

edit /etc/locale.gen to enable locales

nano locale.gen

Create locale.conf accordingly

nano locale.conf

LANG=en_US.UTF-8

LC_TIME= en_US.UTF-8

LC_MONETARY= en_US.UTF-8

Then run

locale-gen

When chrooted make sure that DRM is enabled for wayland to function

properly with Nvidia drivers

Post install:

Enable multilib

nano /etc/pacman.conf

Uncomment:

[multilib] Include = /etc/pacman.d/mirrorlist

install extras

pacman -S lib32-nvidia-utils btrfs-progs sof-firmware networkmanager
grub efibootmgr yay lightdm lightdm-webkit2-greeter

Lib32-nvidia-utils: 32bit application support for nvidia driver

  1. btrfs-progs: BTRFS utilities

  2. soft-firmware: Sound Open Firmware

  3. networkmanager: Network Manager

  4. grub: grub bootloader

  5. efibootmgr: efi utilities needed for grub UEFI boot

  6. yay: AUR package manager

  7. lightdm: login manager

  8. lightdm-webkit2-greeter: login manager greeter

  9. lightdm-webkit-theme-aether: greeter theme

Add a pacman hook for nvidia upgrades

nano /etc/pacman.d/hooks/nvidia.hook

[Trigger]

Operation=Install

Operation=Upgrade

Operation=Remove

Type=Package

# You can remove package(s) that don't apply to your config, e.g. if you only use nvidia-open you can remove nvidia-lts as a Target

Target=nvidia

Target=nvidia-open

Target=nvidia-lts

# If running a different kernel, modify below to match

Target=linux

[Action]

Description=Updating NVIDIA module in initcpio

Depends=mkinitcpio

When=PostTransaction

NeedsTargets

Exec=/bin/sh -c 'while read -r trg; do case $trg in linux*) exit 0; esac; done; /usr/bin/mkinitcpio -P'

Create hostname

nano /etc/hostname

Recreate initramfs in case

mkinitcpio -P

set root password

passwd

grub configuration

grub-install --target=x86_64-efi --efi-directory=/boot/efi
--bootloader-id=GRUB

grub-mkconfig -o /etc/grub/grub.cfg

Reboot to the new system