📄 Viewing rendered HTML — download raw .md

archLinuxWorkstation-2026

ArchLinux Workstation Installation, 2026

From thumb drive boot

  1. cat /sys/firmware/efi/fw_platform_size to check BIOS vs. EUFI boot.
    If not what you expect then reboot and change settings in BIOS setup.
  2. grep -m1 vendor_id /proc/cpuinfo to see which microcode package to install later on.
  3. pacman --noconfirm -S reflector
  4. reflector --country US --protocol https --latest 20 --sort rate --save /etc/pacman.d/mirrorlist
  5. pacman --noconfirm -S parted
  6. timedatectl to ensure system clock is synchronized
  7. Partition disks.
    1. For BIOS booting you need a 1 MiB bios_grub parition
    2. Be kind to yourself and just go with ext4.
      Label when you format: mkfs.ext4 -L LBL /dev/sdx8 (Use -b 4096 to force for SDDs)
  8. Mount new root to /mnt and if you have a separate boot partition, mount to /mnt/boot.
  9. If the following pacstrap fails with GPG errors, then update keyring: pacman-key --refresh-keys
  10. Install essential packages. pacstrap -K /mnt ... with following packages
  11. genfstab -L /mnt >> /mnt/etc/fstab Leverage e2label.

chroot environment

  1. arch-chroot /mnt
  2. ln -sf /usr/share/zoneinfo/US/Eastern /etc/localtime
  3. hwclock --systohc
  4. vim /etc/locale.gen. Uncomment at least en_US.UTF-8`
  5. locale-gen
  6. echo LANG=en_US.UTF-8 > /etc/locale.conf
  7. echo newname > /etc/hostname
  8. passwd
  9. systemctl enable NetworkManager
  10. systemctl mask tmp.mount
  11. grub-install --target=i386-pc --recheck /dev/sdx8
  12. grub-mkconfig -o /boot/grub/grub.cfg

Non-graphical boot

Bolded keywords represent user-specific values.
N.b. due to markdown limitation I had to doublequote command examples containing bold.

  1. EDITOR=vim visudo Enable the wheel NOPASSWD line.
  2. “groupadd -g userint username”
  3. “useradd -g username -u userint -G wheel -c ‘Full Name’ -m username”
  4. “passwd username”
  5. Log in as username and mkdir -p tmp/aur.d && cd tmp/aur.d
  6. git clone https://aur.archlinux.org/yay.git
  7. cd yay && makepg -noconfirm -sirc
  8. Back to a root prompt
  9. pacman -S --needed plasma sddm kde-applications
  10. Log in as regular user again.
  11. /usr/lib/plasma-dbus-run-session-if-needed /usr/bin/startplasma-wayland to test X
  12. Back to root
  13. sddm
  14. sudo systemctl enable sddm

Graphical boot

  1. Log in as username
  2. Use yay to install KDE apps like konsole. Don’t install flatpak.
  3. Populate /etc/skel/ if you have a good source.
  4. Create additional accounts and set the passwords.
  5. Merge in shell-init files and migrating content for root, username, and other special accounts.
  6. KDE Setup
    1. Konsole setup
      1. Add to Panel
      2. Default profile: font +2
      3. Settings: Show tabs when necessary, no menubar by default
    2. KDE Start > System Settings
    3. Panel setup
      1. Add seconds, date, holidays to time widget (RMB when in setup mode)
      2. Add logoff/lock widget
      3. Disable mouse gestures from fucking with windows
      4. Disable touchpad when mouse detected
      5. Set res to desired
      6. Pick a nicer splash screen
    4. Kill baloo!!!! Voracious file indexer that kills system periodically.
      1. Edit “~/.config/baloofilerc”. Insert at top:
        [Basic Settings] Indexing-Enabled=false
  7. Install console packages. yay --noconfirm -S... with following packages
  8. Optionals
  9. Install npm and node per-user. As a user…
    1. curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
    2. nvm install --lts
    3. npm -g in @mermaid-js/mermaid-cli
  10. Install Claude Code / Terminal to ~/.local/bin/. It attempts to add this dir to $PATH but usually fails.
    curl -fsSL https://claude.ai/install.sh | bash
  11. X