Skip to content

Latest commit

 

History

History
171 lines (122 loc) · 6.14 KB

arch-setup.md

File metadata and controls

171 lines (122 loc) · 6.14 KB

Arch Linux Setup

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.

Base Installation

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

Boot Loader

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.

Microcode Updates

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

Network Manager

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

Arch User Repository

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

Graphical Environment

Display Server

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.

Graphics Driver

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.

Window Manager

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

Display Manager

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

Sound

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

Appearance

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

Fonts

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.