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
- Base Install
- Additional Packages
- 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
exit
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
exit
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
- xinit: TUI startup - see https://wiki.archlinux.org/index.php/Xinit
pacman -S xorg-xinit
# required: create/edit /home/USER/.xinitrc to start your session
- lightdm: GUI startup - see https://wiki.archlinux.org/index.php/LightDM
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
exit
# 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
exit
reboot
Conclusion
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.
Cheers.