Arch Linux Installation
First of all, create a bootable USB (or CD) based on the ISO downloaded from the main Arch Linux website and boot it up.
The Arch Linux wiki is probably one of the best I’ve ever used, so the latest basic installation steps can be found here.
Initial steps
Set keyboard layout to UK
| |
Connect to the Internet before you continue. For my arch linux laptop, I can use ethernet which is the simplest method.
Set timezone and enable NTP
I haven’t had to run these steps in the most recent installation (November 2025) but YMMV
Set the time zone to London and enable NTP for keeping the time/date synchronised.
| |
Disk setup
Create your disk partition layouts at this point using the preferred disk partition tool (fdisk, cfdisk, parted etc.) but remember that if you’re enabling encryption, create the partitions accordingly.
I recommend /home being on a separate partition, as if you need to trash your install and start again, your files should be safe.
Formatting a data partition
| |
Formatting the swap partition
| |
Get ready to install (mount drives)
| |
and if you created a separate /boot partition
| |
and finally enable the swap partition
| |
Install
This is the main installation step, so you should always include base linux linux-firmware at the bare minimum. But you can include any other packages that you’ll definitely want installing. I tend to leave grub until after I’ve chrooted onto the installation, I’m not sure if it makes any difference though.
| |
Create the fstab file
| |
Chroot into the installed OS
| |
Now you’re running commands on your installation!
Next steps…
Set the root password - make it secure!
| |
Set the locale
Edit /etc/locale.gen to uncomment any en_GB entries before generating the locale file
| |
Set the hardware clock
| |
Name the computer (set up hostname)
| |
Install zsh (if you prefer it to bash)
| |
Add your everyday user account and set the password
(replace zsh with bash if you skipped the last step)
| |
Add user to sudoers (optional)
Replace {editor} with the editor of choice - nano should already be installed.
| |
Uncomment the line below to allow all users in wheel group to run root commands
| |
Create a new initramfs file
Remember to update /etc/mkinitcpio.conf if you’re using an encrypted disk to make sure the correct things are loaded before running the following:
| |
Set up grub (bootloader)
| |
If you have any customisations to make to the boot command line, make them in /etc/default/grub now!
| |
Install any additional utilities, window managers etc.
KDE/Plasma & SDDM
| |
Enable the SDDM service so it’s launched on boot:
| |
IceWM
I’ve started using this WM on my HP DM1 (I still use it as it comes in useful for ethernet access on the go), and it’s quite performant.
| |
And then I’ve been using lightdm as the display manager to handle my log in screen:
| |
Terminal
Take your pick from konsole (my preferred in KDE), xterm (very simple), sakura (basic with some features).
There’s also alacritty which is rendered by the GPU, but still works really well on the HP.
Network connectivity
With more recent versions of Arch, it comes with systemd included, so you can use systemd-networkd (already installed) and wpa_supplicant (needs to be installed) to handle your network needs:
| |
Run networkctl to get your device names before you start.
Ethernet
Create /etc/systemd/network/20-wired.network and paste the following into it (with the necessary changes):
| |
And then start+enable (or restart) the following:
| |
Wireless
Create /etc/systemd/network/10-wireless.network and paste the following into it (again, with the necessary changes):
| |
Now you’ll need to connect to your wireless network. In the following steps, it’s recommended to replace wlo1 with your wireless device name for clarity in the future.
| |
Final steps (and reboot)
Exit from the chroot shell, unmount all partitions and reboot:
| |
Additional packages
There are additional packages that I might install after a base install. Some of these are related to software development, some are not.
- Yay (AUR helper, saves a few keypresses for installing packages via AUR)
- nvm (Node Version Manager - this is available on AUR and can be installed with Yay)
- OpenSSH (ssh - because it’s not installed by default)
- Visual Studio Code - I install the MS one from AUR because some plugins that I’ve become pretty used to aren’t in the open repository:
visual-studio-code-bin - docker and docker-compose (both available from official Arch Linux repositories)
- kamoso (camera utility for KDE)
- pulseaudio-equalizer (audio equaliser for pulseaudio - it sets itself up as an additional audio controller, so it affects all audio output)
Fonts
These can be installed from the standard Arch Linux package registry.
- Hack: ttf-hack
- Noto Fonts: noto-fonts noto-fonts-emoji noto-fonts-extra
Pantheon Code
Pantheon Code comes with ElementaryOS, but it’s said to be lightweight, which would be ideal for editing code on a low powered portable machine so I tried getting it to run on my DM1 running Arch.
I was able to install it using:
| |
But it wouldn’t run from the shortcuts. I eventually pinned it down to being called io.elementary.code and located in /usr/bin so I tried running it from zsh but it told me that it was missing a shared file - libvte-2.91.so which took me a while to figure out which package provided that file, and eventually pinned it down to vte3 which I was able to install using pacman.
This got the app running, but the X button to close the app just doesn’t work at all! So I’ll figure that out next.
Gotchas
After rebooting into the fresh install, the keyboard layout reverts to US
This one puzzled me for longer than it should have done, but eventually I figured it out.
| |
Signature is unknown trust
signature from “{name} <{email}>” is unknown trust
As per the Arch docs here, there are a few possible solutions but I’ve had success with installing the archlinux-keyring package and then doing a pacman update:
| |