Archlinux installation

Installation of Arch Linux is a rather simple and straightforward task. You have control over every important aspect, and you are less likely to face some "magical" problems.

The post-install process is more challenging, due to its "do it once" nature. The last time I reinstalled Arch from scratch was about 5-6 years ago. I don't remember what changes I've made to the system since then. Below is my log of what I've done this time. I'll (at least try to) update it with all the steps necessary to bring back all the features I previously had. This is my personal setup that works with my dotfiles.

Easy part, no brainer #

Post installation #

pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay-bin.git
cd yay-bin
makepkg -si

Edit /etc/pacman.conf #

If you want to enable testing repo's enable all of them (including mesa-git for AMD gpu)

# Misc options
UseSyslog
Color
CheckSpace
VerbosePkgLists
ParallelDownloads = 12
DisableDownloadTimeout
ILoveCandy

# (...)
# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.

#[core-testing]
#Include = /etc/pacman.d/mirrorlist


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

#[extra-testing]
#Include = /etc/pacman.d/mirrorlist

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

# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.

#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist

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

# Maintainer: [Laurent Carlier](https://archlinux.org/people/trusted-users/#lcarlier)
# Description: Mesa git builds for the testing repositories
#[mesa-git]
#Server = https://pkgbuild.com/~lcarlier/$repo/$arch

Installed from AUR (-m not found in repo db) #

pacman -Qm | awk '{print $1}'

brave-bin
downgrade
etcher-bin
htop-vim
i3blocks-contrib-git
iriunwebcam-bin
microsoft-edge-stable-bin
nodejs-cspell
prettierd
rtx
sddm-archlinux-theme-git
volctl
vmware-workstation
yay-git
zsh-theme-powerlevel10k-git

Installed from official repo (-n found in repo db, -e explicitly installed) #

pacman -Qne | awk '{print $1}'

alacritty
amd-ucode
arandr
atuin
audacity
barrier
base
base-devel
blueman
bluez
bluez-utils
cmatrix
composer
dunst
efibootmgr
eza
fasd
fd
feh
flameshot
flatpak
fping
git
git-delta
github-cli
gst-plugin-pipewire
hq
i3-wm
i3blocks
i3lock
imagemagick
inetutils
jq
julia
kitty
kodi
lazygit
libnotify
libpulse
libva-mesa-driver
linux
linux-firmware
linux-headers
linux-zen
luarocks
lxqt-policykit-agent
man-db
mpv
nemo
nemo-fileroller
neovim
network-manager-applet
networkmanager
noto-fonts-emoji
npm
obs-studio
openssh
otf-aurulent-nerd
otf-codenewroman-nerd
otf-comicshanns-nerd
otf-droid-nerd
otf-firamono-nerd
otf-hasklig-nerd
otf-hermit-nerd
otf-opendyslexic-nerd
otf-overpass-nerd
pavucontrol
picom
pipewire
pipewire-alsa
pipewire-jack
pipewire-pulse
polkit
polkit-qt5
python-pip
python-pynvim
ranger
reflector
ripgrep
rofi
rofi-calc
rofi-emoji
rsync
ruby
rust
scrot
sddm
stow
the_silver_searcher
tig
timeshift
tmux
translate-shell
trash-cli
tree-sitter-cli
ttf-mononoki-nerd
unzip
vlc
vulkan-radeon
wget
wireplumber
xclip
xf86-video-amdgpu
xf86-video-ati
xkill
xorg-server
xorg-xinit
yarn
zram-generator
zsh

I have a home in a separate partition and cloned drive: #

Iriun webcam for Linux #

I can't justify buying a crappy webcam when I have a good one on my phone.

yay -S iriunwebcam-bin

# install and enable kernel module

sudo pacman -S linux-headers v4l2loopback-dkms
modprobe v4l2loopback
sudo rmmod v4l2loopback; sudo modprobe v4l2loopback

NetworkManager #

networkctl (from systemd-networkd.service) is perfectly fine for server configuration. For a desktop experience, though, we want to use NetworkManager that can be used by a few GUI tools. Most important for me is the system tray icon with network status.

Make sure that you have installed:

sudo pacman -S networkmanager network-manager-applet

Stop and disable the systemd-networkd service, then enable and start the service from NetworkManager. Never run them both at the same time.

sudo systemctl disable systemd-networkd.service
sudo systemctl stop systemd-networkd.service

sudo systemctl enable NetworkManager.service
sudo systemctl start NetworkManager.service

Run nm-applet for the tray icon, or nmcli help for a more user-friendly experience 😁.

sshd #

Make sure that openssh is installed, enabled, and started in systemd.

Find Port 22 and change it to whatever is not standard.

sudo nvim /etc/ssh/sshd_config

sudo systemctl restart sshd

Solve screen tearing #

Install a composite manager and play with vsync. My choice is picom, config is in dotfiles

Steam #

Enable multilib in /etc/pacman.conf, sync pacman, and install Steam

sudo nvim /etc/pacman.conf
[multilib]
Include = /etc/pacman.d/mirrorlist
sudo pacman -Suy
sudo pacman -S steam

OC and performance #

undg: lm_sensors setup and fixes for Gigabyte B550 AORUS AX V2

Bluetooth #

Install the bluez daemon, enable and start bluetooth.service.

Install blueman (GUI) and bluez-utils (CLI bluetoothctl) for the frontend.

If needed, enable and connect to trusted devices before Xorg: undg: Enable Bluetooth keyboard before xstart

Published