Drivers and useful packages
Install the graphics and audio packages needed by your desktop before continuing to the bootloader page. The remaining sections are optional. Commands run as root inside the chroot.
Graphics drivers
Identify your hardware:
lspci -k | grep -A 3 -E '(VGA|3D|Display)'Install drivers for each GPU you use, including both GPUs on a hybrid laptop. The commands below target current hardware; consult the linked wiki pages for older generations.
AMD
pacman -S mesa vulkan-radeonFor Steam and other 32-bit graphics applications, enable multilib and add:
pacman -S lib32-mesa lib32-vulkan-radeonVA-API support is included in Mesa. See AMDGPU for older GPUs and hardware video acceleration.
Intel
pacman -S mesa vulkan-intelFor 32-bit graphics applications:
pacman -S lib32-mesa lib32-vulkan-intelVideo acceleration packages depend on the GPU generation; see Intel graphics. The legacy xf86-video-intel Xorg driver is not a default requirement.
NVIDIA
Select the driver by GPU generation. The current open kernel modules support Turing and newer, not every NVIDIA card. For the linux kernel installed by this guide:
pacman -S nvidia-open nvidia-utilsFor Steam, add lib32-nvidia-utils after enabling multilib. Use nvidia-open-lts with linux-lts, or nvidia-open-dkms plus matching kernel headers for other kernels.
Maxwell, Pascal and Volta need the legacy nvidia-580xx-dkms AUR branch and matching nvidia-580xx-utils (plus lib32-nvidia-580xx-utils for 32-bit applications). These require AUR setup as a regular user and headers for each installed kernel. For a fresh install on this hardware, complete the base system and boot into a console first; postpone enabling a graphical login until the driver is installed. If you already enabled a display manager, disable that service before rebooting. Older cards need other legacy branches or Nouveau. Do not mix legacy and current NVIDIA userspace libraries.
Read NVIDIA for the hardware support table, hybrid graphics and power-management caveats. Arch's driver transition notice explains the package change.
Initramfs and virtual machines
Keep the default kms hook for in-tree drivers. Only add explicit modules when your hardware requires them, preserving any existing MODULES entries; see early KMS. The next page regenerates the initramfs after configuration.
For a VM, install guest integration appropriate to its hypervisor and virtual GPU: VirtualBox, VMware, or QEMU. The VMware Xorg driver is not a universal VM driver.
Audio
Use PipeWire with WirePlumber:
pacman -S pipewire pipewire-alsa pipewire-pulse wireplumber alsa-utilsThe user services start with the desktop session; do not enable them as system services. Install pipewire-jack only if you need JACK compatibility. Plasma includes volume controls; pavucontrol or pavucontrol-qt are optional alternatives. See PipeWire.
Bluetooth
pacman -S bluez bluez-utils
systemctl enable bluetooth.servicePlasma includes Bluedevil; other desktops can use their own Bluetooth settings or blueman. PipeWire does not need pulseaudio-bluetooth.
Printing and scanning
Start with driverless printing for supported IPP printers:
pacman -S cups
systemctl enable cups.serviceFor network printer discovery, install avahi and enable avahi-daemon.service. Use Plasma's print-manager or system-config-printer to add printers. Install gutenprint, hplip or other device-specific drivers only if your model needs them. See CUPS.
For supported network scanners, install sane-airscan with skanlite (Qt) or simple-scan (GTK). Supported USB IPP devices may need ipp-usb. Local scanning does not require enabling saned.socket; see SANE.
SSD maintenance
For supported SSDs:
systemctl enable fstrim.timerEncrypted systems also need a deliberate discard configuration. The timer alone cannot trim through a LUKS mapping that blocks discard.
File tools and network shares
Install what you use, for example:
pacman -S 7zip unzip unrar rsync xdg-user-dirsUse exfatprogs for native exFAT filesystem tools. Linux includes the ntfs3 driver; ntfs-3g remains an alternative. Network shares may need nfs-utils or cifs-utils, and GTK file managers commonly use gvfs integrations.
NetworkManager is already installed and enabled. Add VPN plugins only for the VPN you use; do not enable another network manager for the same interface.
Android tools
For ADB access as your regular user:
pacman -S android-tools android-udev
usermod -aG adbusers yourusernameAlternative shells
For Zsh:
pacman -S zsh zsh-completions
chsh -s /usr/bin/zsh yourusernameOr for Fish:
pacman -S fish
chsh -s /usr/bin/fish yourusername