This document describes my personal workflow for setting up my Arch Linux environment. This setup guide is intended to function as more of a checklist than a tutorial and assumes you have a working base installation of Arch Linux. As such, please refer to another resource such as the excellent ArchWiki installation guide for an installation reference.
These three packages should have been installed during the base installation of Arch Linux.
pacman -S base linux linux-firmware
This package includes useful commands and utilities such as grep
and sudo
.
pacman -S base-devel
This package includes headers and scripts for building modules for the Linux kernel.
pacman -S linux-headers
A boot loader such as GRUB is needed to load and start
the boot time tasks and processes of the operating system. For dual booting,
the os-prober
package can detect other filesystems with operating systems on
them, and work out how to boot other linux installs. The dosfstools
and
mtools
packages are useful for working with filesystems.
pacman -S grub os-prober dosfstools mtools
Be sure to install and configure GRUB after installing the packages.
If you have an Intel or AMD CPU, enable microcode updates in addition.
For Intel CPUs, the appropriate package is intel-ucode
. After installing the
microcode package, regenerate the GRUB config to activate loading the microcode
update
pacman -S intel-ucode
grub-mkconfig -o /boot/grub/grub.cfg
To configure network connections, install a network manager such as NetworkManager. Be sure to enable the NetworkManager daemon after installation.
pacman -S networkmanager
systemctl enable NetworkManager
The Arch User Repository (AUR) contains packages submitted by users. To install these user contributed packages, an AUR helper such as [Paru][paru] is required.
pacman -S git
git clone https://aur.archlinux.org/paru.git
cd paru && makepkg -si
cd .. && rm -rf paru
Install a display server such as Xorg to enable using
a graphical user interface. The xorg-xinit
package allows you to manually
start an Xorg display server with the startx
command using the ~/.xinitrc
configuration file.
pacman -S xorg xorg-xinit
The default .xinitrc
should be found in /etc/X11/xinit/xinitrc
.
Install the appropriate graphics drivers to allow your computer to use the
graphics hardware. Check which packages are recommended for your
graphics card and install the packages. For Nvidia GPUs, the appropriate
package is nvidia
.
pacman -S nvidia
A system reboot may be required to enable the driver.
A window manager is a more lightweight alternative to a
desktop environment. My preferred window manager is
XMonad. The XMonad configuration file is in ~/.xmonad/xmonad.hs
.
The xmonad-contrib
package contains third party extensions for XMonad.
pacman -S xmonad xmonad-contrib
Install a display manager such as LightDM to
automate starting the display server. A greeter such as
lightdm-gtk-greeter
will also be required to display the GUI greeter prompt.
Be sure to enable LightDM so it will be started at boot.
pacman -S lightdm lightdm-gtk-greeter
systemctl enable lightdm
Symlink ~/.xprofile
to ~/.xinitrc
since LightDM sources ~/.xprofile
and
we also want to be able to start our own display server.
ln -s ~/.xinitrc ~/.xprofile
The alsa-utils
package contains among other utilities the alsamixer
and
amixer
utilities. PulseAudio is a general purpose sound server
intended to run as a middleware between your applications and your hardware
devices.
pacman -S alsa-utils pulseaudio pulseaudio-alsa
To customize your desktop, you may want to change the font, GTK theme, and icon theme. The LXAppearance GUI interface can be used to change the GTK theme, icon theme, and more.
yay -S nerd-fonts-fira-code
pacman -S lxappearance
yay -S gtk-theme-numix-solarized
pacman -S papirus-icon-theme
You may also want some additional fonts for use in other applications that have support for CJK characters and emojis. The Noto Fonts are a font family that tries to support all languages with a unified appearance.
pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji
You can check whether the fonts are installed properly in the terminal with
curl
or in the browser by using the UTF-8 sample file and emoji
sample file.