ArchLabs Manual Installation

A manual install guide for those having installer issues, wanting more control, or just interested in the process.

This can also be a place users can post their own customizations to the install.

I’ll break this down into a few steps

  1. Base Install
  2. Additional Packages
  3. Configs and Cleanup

1. Base Install

For the brevity’s sake I’m not going to describe partitioning, mounting, base install (pacstrap), or system config setup (hostname, timezone, locale, etc.); this is all described much better than I can manage on the archwiki. Follow this guide to install a base Arch Linux system (note that AL includes NetworkManager on the live boot, nmtui-connect can be used to connect to a network wirelessly)

Once finished and you’ve reached the bootloader step (and are still in chroot) we recommend using grub for simplicity of this guide

pacman -S grub os-prober

# For UEFI (where DIR is where you mounted the boot partition)
grub-install --verbose --recheck --force --target=x86_64-efi \
		   --efi-directory=DIR --bootloader-id='archlabs'

# For BIOS (where DEVICE is the install disk, not partition e.g. /dev/sda)
grub-install --verbose --recheck --force --target=i386-pc DEVICE

Once the install completes we generate the config

grub-mkconfig -o /boot/grub/grub.cfg

We have some customizations in /etc that should be copied to the new system

# exit chroot

cp -vf /etc/modprobe.d/* /mnt/etc/modprobe.d/
cp -vf /etc/X11/xorg.conf.d/* /mnt/etc/X11/xorg.conf.d/
cp -vf /etc/os-release /mnt/etc/os-release
cp -vf /etc/skel/.zshrc /mnt/etc/skel/.zshrc

# re-enter chroot
arch-chroot /mnt

2. Additional Packages

You should now have a fully boot-able system with all the basic requirements.

Enable archlabs repos in /etc/pacman.conf.

# exit chroot

cp -f /etc/pacman.conf /mnt/etc/

# re-enter chroot
arch-chroot /mnt

At this point additional packages required for AL sessions can be installed.
The following provide a baseline for AL with no sessions.

pacman -S alsa-firmware alsa-lib alsa-plugins archlabs-baph archlabs-fonts \
		   archlabs-icons archlabs-keyring archlabs-scripts archlabs-skel-base \
		   archlabs-themes archlabs-wallpapers ffmpeg gst-libav gst-plugins-base \
		   gst-plugins-good gstreamer gtk3 gvfs libmad libmatroska pamixer \
		   pavucontrol pulseaudio pulseaudio-alsa scrot sudo xdg-user-dirs \
		   xorg xorg-drivers xterm

If you intend to install a window manager instead of a desktop environment we suggest the following

pacman -S arandr dunst exo feh gnome-keyring gsimplecal \
		   network-manager-applet nitrogen polkit-gnome \
		   picom volumeicon wmctrl xclip xdotool \
		   xfce4-power-manager xfce4-settings

2.1 Session Packages

The following commands should be run depending on which session(s) you want installed.

  • awesome: pacman -S awesome archlabs-skel-awesome
  • bspwm: pacman -S bspwm archlabs-skel-bspwm
  • cinnamon: pacman -S cinnamon gnome-terminal
  • deepin: pacman -S deepin deepin-extra
  • fluxbox: pacman -S fluxbox archlabs-skel-fluxbox
  • gnome: pacman -S gnome gnome-tweaks
  • i3-gaps: pacman -S i3-gaps archlabs-skel-i3-gaps
  • jwm: pacman -S jwm
  • lxqt: pacman -S lxqt breeze breeze-icons picom libpulse network-manager-applet
  • openbox: pacman -S openbox archlabs-skel-openbox
  • plasma: pacman -S plasma kde-applications-meta powerdevil
  • xfce4: pacman -S xfce4 archlabs-skel-xfce4 xfce4-goodies

If you installed any sessions you’ll need a display manager, the most common are lightdm and xinit

pacman -S xorg-xinit

# required: create/edit /home/USER/.xinitrc to start your session
pacman -S lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings accountsservice

# enable the service
systemctl enable lightdm

# optionally: edit /etc/lightdm/lightdm.conf and/or /etc/lightdm/lightdm-gtk-greeter.conf

3. Configs and Cleanup

You’ll need to make a user account and copy the skel to the user’s home, the skel configs will include wm, shell, and application configs (note that USER should be replaced with the username and SHELL with either bash or zsh)

# exit the chroot

# create home and copy over skel
mkdir -p /mnt/home/USER
cp -rfaT -b --suffix='.bak' /mnt/etc/skel/ /mnt/home/USER

# re-enter chroot
arch-chroot /mnt

useradd -m -g users -G log,rfkill,wheel -s /bin/SHELL USER

# set the password
passwd USER

When creating the user we added them to the wheel group, on most systems this group is used to allow running commands through sudo, we need to edit the sudoers file to allow it. This can be done with the following command or using visudo and uncommenting the line

sed -i "s/# %wheel ALL=(ALL) ALL/%wheel ALL=(ALL) ALL/g" /etc/sudoers

After all this you should now have a bootable system with our default configs and one or more WM/DE installed. Feel free to tinker around and install additional packages at this point, once finished exit the chroot and reboot



I’m sure there are things that I got wrong or missing. I’ll continue to update this as issues arrive, if you notice anything wrong please let me know.

I’ve decided to make this post a wiki so anyone can edit and make corrections, please don’t abuse this and make your edits clear.



Thx for sharing @natemaia .

Will be useful to our members.

1 Like

Fantastic stuff, thank you so much for this!!

Would it not make more sense to copy the skel files before creating the user? That would ensure that the files are copied with the correct ownerships during the user creation stage.

Also the default behaviour for useradd is to create a group of the same name as the user (starting with a user ID of 1000) and add the user to that initial login group so I don’t think the -u 1000 option is needed.

The groups you have defined with the -G option are no longer needed under systemd:

1 Like

You’re probably right and I changed a few things.


This is why I love AL - because of the people who are behind my fave distro. Thanks to nate, Dobbie, and all here at AL, and have a happy and safe New Year to all!

Many thanks @natemaia, very good tuto.
During vacation i have installed AL in dual boot , no problem. More i use more i like AL.
Many thanks

1 Like