Package Categories and References


1. Core System

These are not optional. Without them, nothing else works correctly.


Base System

The absolute minimum for a bootable Arch installation. Includes
the core utilities, the C library, and the package manager itself.
Without this layer, the system does not exist.

Examples: base, base-devel


Linux Kernel

The kernel is the bridge between your hardware and your software.
It manages memory, processes, devices, and system calls. Arch
ships the vanilla upstream kernel, but alternatives exist with
different scheduling and performance characteristics.

Examples: linux, linux-lts, linux-zen, linux-hardened

linux-headers is also needed if you build kernel modules
(e.g. for certain GPU drivers or VPN tools).


Firmware

Blobs of binary code that the kernel loads onto hardware devices
at boot – GPU microcode, Wi-Fi card firmware, NVMe controller
firmware. Without this, hardware either does not work at all or
works badly.

Examples: linux-firmware


CPU Microcode

Processor-specific patches applied by the bootloader at boot
time. They fix hardware bugs and security vulnerabilities at the
CPU level. You pick one depending on your CPU manufacturer.

Examples: intel-ucode, amd-ucode


Bootloader

The first piece of software that runs after your firmware (UEFI
or BIOS). It finds the kernel image and hands control over to it.
Without a bootloader, the system does not start.

Examples: grub, systemd-boot (part of systemd), rEFInd


Init System

The first process the kernel starts (PID 1). It brings up
everything else – mounts filesystems, starts daemons, manages
services. Arch uses systemd by default. You are not replacing it
unless you know exactly why.

Examples: systemd (default on Arch, already present)


Filesystem Utilities

Tools for creating, checking, and repairing filesystems. Also
needed for mounting drives formatted with filesystems other than
the one your root partition uses – external drives, USB sticks,
Windows partitions.

Examples: e2fsprogs (ext4), dosfstools (FAT32),
ntfs-3g (NTFS), exfatprogs (exFAT), btrfs-progs


Man Pages

The built-in documentation system. man ls, man systemctl,
man pacman. Without man-db, you have no offline reference.
You will need the internet for everything.

Examples: man-db, man-pages


Time Synchronisation

Keeps the system clock accurate by syncing with network time
servers. An inaccurate clock breaks HTTPS certificate validation,
authentication tokens, and log timestamps. systemd-timesyncd
is already present on most Arch installs and handles basic NTP.

Examples: systemd-timesyncd (lightweight, already in
systemd), chrony (more accurate, better for laptops
that sleep frequently)


Disk Encryption

Encrypts partitions or volumes so their contents are unreadable
without the correct passphrase or key. If you set up LUKS during
install, cryptsetup is already on your system. If not, this is
the tool you use to add encryption later.

Examples: cryptsetup (LUKS), veracrypt


2. Display & Compositor


Wayland Compositor

On a standard desktop environment like GNOME or KDE, the
compositor is bundled in. On a standalone window manager setup
like this, it is its own package. The compositor is responsible
for drawing windows, handling input, managing outputs (monitors),
and compositing everything into what you see on screen. On
Wayland, the compositor also is the display server.

Examples: hyprland, sway, river, niri


Display Manager / Login Manager

The graphical (or TUI) interface that greets you before you log
in. It authenticates your session and launches your compositor.
You can also skip it entirely and launch Hyprland from a TTY with
uwsm or a shell script – but a display manager gives you a
cleaner boot experience.

Examples: ly, greetd, sddm, gdm


Wayland Session Manager

A wrapper that correctly launches a Wayland compositor as a
proper systemd user session, ensuring environment variables are
set, D-Bus is activated, and XDG portals start correctly. Without
something like this, some applications or portals may not
function properly.

Examples: uwsm


XDG Desktop Portal

A standardised interface that allows sandboxed applications
(Flatpak, but also native apps) to request desktop services –
screen sharing, file picker, opening URIs, camera access – in a
controlled way. Without the correct portal for your compositor,
screen sharing in browsers, file pickers in some apps, and
screenshots via portals will not work.

You typically need two: one compositor-specific, one GTK fallback.

Examples: xdg-desktop-portal-hyprland,
xdg-desktop-portal-gtk, xdg-desktop-portal-kde


XWayland

A compatibility layer that allows X11 applications to run inside
a Wayland session. Some software has not been ported to Wayland
yet. Without XWayland, those applications will not launch at all.

Examples: xwayland (often pulled as a dependency of the
compositor)


GPU Driver

Software that lets the kernel communicate with your graphics
card. Without the correct driver, you get software rendering,
which is slow, consumes a lot of CPU, and will make Hyprland
painful to use.

Examples: mesa (AMD / Intel open source), nvidia,
nvidia-open, vulkan-intel, vulkan-radeon


Video Acceleration

Libraries that offload video decoding and encoding to the GPU
rather than the CPU. Without this, playing video is noticeably
more expensive on your system resources.

Examples: intel-media-driver, libva-mesa-driver,
nvidia-utils, libva-utils (for testing)


Display Configuration Tool

A tool for arranging monitors, setting resolutions, refresh
rates, and scaling. Hyprland handles this in its config file, but
a GUI tool makes multi-monitor setups significantly less painful
to configure initially.

Examples: nwg-displays, wdisplays, kanshi
(kanshi is for automatic profiles, not interactive config)


3. Desktop Environment Components

These are the building blocks of the desktop. A traditional DE
like GNOME bundles all of these together. On a standalone
compositor, you assemble them yourself.


Status Bar / Panel

A persistent bar that displays information – time, date,
workspace indicators, system stats, network status, battery,
volume, active window title. On Wayland this communicates with
the compositor via its own protocol or via standard Wayland
protocols.

Examples: waybar, eww, yambar, ags


Application Launcher

A fuzzy-search interface for launching applications by name,
running shell commands, or switching between open windows.
Without one, you either open a terminal every time or bind every
application to a keyboard shortcut.

Examples: rofi (with Wayland fork), wofi, tofi, fuzzel,
anyrun


Notification Daemon

Receives and displays desktop notifications sent by applications
via the D-Bus notification spec. Manages the queue, allows
dismissal, can support actions (buttons inside notifications).
Without one, notifications are silently dropped.

Examples: mako, swaync, dunst


Screen Lock

Blanks the screen and requires authentication to resume the
session. The lock screen sits between your unattended machine and
anyone who walks up to it.

Examples: hyprlock, swaylock, waylock


Idle Daemon

Monitors input inactivity and triggers actions after a set time
– dim the screen, lock the session, suspend the system. Works
in tandem with the screen lock.

Examples: hypridle, swayidle


Wallpaper Setter

Sets and manages the desktop background. On Wayland this must be
a Wayland-native tool; X11 wallpaper setters will not work.

Examples: hyprpaper, swww, swaybg, mpvpaper (animated
wallpapers via mpv)


Polkit Authentication Agent

Polkit is a framework for controlling privilege escalation for
unprivileged processes. When an application needs elevated
permissions (mounting a drive, installing a package via a GUI),
Polkit intercepts the request and the authentication agent
presents a password prompt. Without one, those GUI operations
silently fail.

Examples: polkit-kde-agent, polkit-gnome,
lxqt-policykit


Keyring / Secret Storage

A secure, encrypted store for secrets – passwords, API tokens,
SSH keys, application credentials. Applications that handle
authentication (browsers, email clients, cloud sync tools) expect
a secret service to be present and will either fail to save
credentials or store them in plaintext without one.

Examples: gnome-keyring, keepassxc (with secret service
integration)


Clipboard Manager

Wayland does not have a persistent clipboard by default. When a
window closes, its clipboard content disappears. A clipboard
manager keeps a history of copied items and makes them accessible
after the source application is gone. Also enables fuzzy-search
through clipboard history.

Examples: cliphist, clipman

wl-clipboard (wl-copy / wl-paste) is also needed as the
underlying Wayland clipboard utility. It is not a manager itself,
but most managers depend on it.


Screenshot Tool

Captures the screen, a region, or a specific window. On Wayland
this works through the compositor’s screencopy protocol or via
XDG portals. X11 screenshot tools do not function on Wayland.

Examples: grim, hyprshot, grimblast

A region selection tool is almost always used alongside the
screenshot tool.


Screen Region Selector

An interactive overlay that lets you draw a rectangle over the
screen to define a capture area. Used with screenshot tools and
sometimes screen recorders.

Examples: slurp


Screen Recorder

Captures video of the screen or a region of it. Useful for
documentation, bug reports, or content creation. Wayland screen
recording requires compositor support for the screencopy protocol.

Examples: wf-recorder, obs-studio


Color Picker

Samples the color of any pixel on screen and returns the hex or
RGB value. Small tool, but immediately useful when theming.

Examples: hyprpicker, gpick


On-Screen Display (OSD)

A temporary overlay that appears when you change volume or
brightness, showing the current level visually. Not strictly
necessary, but without it you adjust volume blind.

Some notification daemons (like swaync) can be configured to
do this. There are also dedicated tools.

Examples: swayosd, custom scripts using notify-send


Screen Annotation / Screenshot Editor

Edits screenshots immediately after capture – adds arrows,
text, highlights, and crops. Useful for documentation.

Examples: swappy


4. Audio


Audio Server

The layer between the kernel’s audio subsystem (ALSA) and your
applications. It handles routing, mixing, Bluetooth audio,
virtual devices, and gives applications a consistent interface
regardless of hardware. PipeWire is the current standard on
modern Linux – it also handles PulseAudio and JACK compatibility.

Examples: pipewire, pipewire-pulse, pipewire-alsa,
pipewire-jack, wireplumber (session manager for PipeWire)


Volume Control / Audio Mixer

A GUI or TUI for controlling per-application volume, input/output
device selection, and audio routing. The audio server itself does
not provide this interface.

Examples: pavucontrol (GUI), pulsemixer (TUI), pamixer
(CLI)


5. Networking


Network Manager

Manages wired, wireless, and VPN connections. Handles DHCP,
static IP configuration, connection profiles, and automatic
reconnection. Without this (or an equivalent), you configure
networking manually via ip and wpa_supplicant every boot,
which is painful.

Examples: networkmanager, iwd, connman


Network Manager Frontend

A user interface for the network manager. The manager itself runs
as a daemon in the background; the frontend is how you interact
with it – connecting to Wi-Fi, editing profiles, toggling VPN.

Examples: nm-applet (system tray), nmtui (TUI),
networkmanager-dmenu (rofi/dmenu integration)


DNS Resolver / Encrypted DNS

Handles domain name resolution. The default system resolver sends
DNS queries in plaintext, which is readable by your ISP and any
network middleman. An encrypted DNS tool routes those queries over
DoH or DNSCrypt.

Examples: dnscrypt-proxy, systemd-resolved (with DoH
config), stubby


VPN Client

Encrypts your network traffic and routes it through a remote
server. Necessary for privacy on hostile networks or for
accessing private network resources.

Examples: wireguard-tools, openvpn, openconnect


Firewall

Controls which network traffic is allowed in and out of the
system. Without one, all ports are open to whatever the kernel
allows by default.

Examples: ufw (frontend for nftables/iptables),
nftables, iptables


SSH Client / Server

The standard tool for remote access and secure file transfer.
The client lets you connect to remote machines. The server lets
remote machines connect to yours.

Examples: openssh


Tor

Routes traffic through the Tor anonymity network. torsocks
wraps arbitrary applications to force their traffic through Tor.

Examples: tor, torsocks


Network Diagnostics

Tools for inspecting, testing, and debugging network connections
at a lower level than a browser or ping. Useful for diagnosing
connectivity issues, scanning for open ports, or measuring
throughput.

Examples: nmap (port scanning), traceroute,
iperf3 (bandwidth testing), bind (provides dig and
nslookup for DNS queries), openbsd-netcat


6. Input & Hardware


Input Remapper

Remaps keys, mice, and other input devices at the kernel or
application level. Useful for non-standard keyboards, ergo
layouts, or remapping modifier keys across the entire system.

Examples: keyd, xremap, interception-tools


Brightness Control

Adjusts screen backlight brightness. On Wayland this usually
works through a tool that writes directly to the kernel’s backlight
interface.

Examples: brightnessctl, light


Fingerprint Reader

If your machine has a fingerprint sensor, this daemon enables
it for PAM authentication – login, sudo, screen unlock.

Examples: fprintd


Power Management

Controls CPU frequency scaling, disk spin-down, USB autosuspend,
and other power-saving features. Particularly relevant on laptops.

Examples: tlp, auto-cpufreq, power-profiles-daemon


Bluetooth Manager

Manages Bluetooth device pairing, connection, and profiles. The
kernel’s Bluetooth stack (bluez) is the backend; a frontend
gives you a usable interface.

Examples: bluez, bluez-utils (backend),
blueman (GUI), bluetui (TUI)


Smart Drive Monitor

Monitors hard drive and SSD health via the S.M.A.R.T. interface
built into the drive firmware. Useful for catching failing drives
before data loss.

Examples: smartmontools


7. Theming & Appearance


Font — Monospace (with Icons)

Your terminal, editor, and status bar all render text. A Nerd
Font patches the typeface with icon glyphs used by many TUI tools
and status bars. Without one, you see boxes or question marks
instead of icons.

Examples: ttf-jetbrains-mono-nerd, ttf-firacode-nerd,
ttf-hack-nerd


Font — Sans-Serif (UI / Interface)

Used by GTK applications, notification bodies, rofi, and anywhere
a proportional font is expected. Picking one gives the desktop
a consistent look across applications.

Examples: inter-font, noto-fonts, ttf-ubuntu-font-family


Font — Emoji

Without emoji fonts, emoji render as empty boxes. Browsers,
terminals, and some applications use them even if you do not
intentionally.

Examples: noto-fonts-emoji, ttf-twemoji


Font — Serif

Used in documents, PDF viewers, and reading-focused applications.
Less critical than monospace and sans-serif for a terminal-first
setup, but absence is noticeable in document viewers and office
applications.

Examples: adobe-source-serif-fonts, noto-serif


Font Management Tool

Previews, installs, and organises fonts. Not necessary if you
install fonts via the package manager, but useful if you are
downloading fonts from external sources or managing a large
collection.

Examples: font-manager


Icon Theme

The set of icons used by GTK applications for file types,
folders, application launchers, and system actions.

Examples: papirus-icon-theme, hicolor-icon-theme
(hicolor is the fallback standard, always install it)


Cursor Theme

The mouse cursor shape. The default Wayland cursor is functional
but ugly. A cursor theme makes things look intentional.

Examples: capitaine-cursors, xcursor-themes,
bibata-cursor-theme


GTK Theme

Controls the visual appearance of GTK2/GTK3/GTK4 applications –
buttons, windows, scrollbars, toggles, everything. Without a
theme, GTK apps use the bare Adwaita default which may clash with
your compositor’s look.

Examples: adwaita-dark (built-in GTK), catppuccin-gtk-theme


GTK Settings Manager

A GUI tool for applying GTK themes, icon themes, and cursor
themes without manually editing ~/.config/gtk-3.0/settings.ini.
Also handles font settings for GTK apps.

Examples: nwg-look, lxappearance


Qt Theme / Qt Theming Layer

Qt applications use a separate theming system from GTK. Without
configuring this, Qt apps look completely different from everything
else – mismatched fonts, colours, and widget styles.

qt5ct and qt6ct are configuration tools. Kvantum is a theme
engine that applies SVG-based themes to Qt.

Examples: qt5ct, qt6ct, kvantum


8. Shell & Terminal


Terminal Emulator

The window that runs your shell. On Wayland this must be a
Wayland-native terminal or one that runs under XWayland. GPU
acceleration makes a meaningful difference in rendering speed,
especially with large outputs.

Examples: kitty, alacritty, foot, wezterm, ghostty


Shell

The command interpreter. Bash is the default on Arch. Zsh adds
better completion, history handling, and plugin support. Fish is
friendly but not POSIX-compatible.

Examples: zsh, bash, fish


Shell Prompt

The part of your shell that displays information at the start of
each line – current directory, git branch, last exit code, etc.
A well-configured prompt gives you context at a glance.

Examples: starship, oh-my-posh, powerlevel10k (Zsh only)


Terminal Multiplexer

Allows multiple terminal sessions within a single window, with
persistent sessions that survive disconnection. Especially useful
for SSH or long-running processes.

Examples: tmux, zellij, screen


Pager

Displays long text output one screenful at a time.
less is the standard. bat is a replacement with syntax
highlighting and line numbers.

Examples: less, bat


AUR Helper

Automates building and installing packages from the Arch User
Repository, which is not covered by pacman directly. Also
wraps pacman for full system upgrades.

Examples: paru, yay


9. Text Editors

There is a meaningful distinction between a quick terminal editor,
a modal editor, and a full IDE. They are not interchangeable and
serve different moments.


Simple Terminal Editor

A straightforward, non-modal editor that behaves like most
people expect a text editor to behave – you open it, you type,
you save, you quit. No modes, no configuration required to use
it. The value is immediate usability, especially on a fresh
system before anything else is configured, or when editing a
single file quickly over SSH.

The tradeoff is that it is slow for large-scale editing and
offers almost no extensibility.

Examples: nano, micro


A terminal editor built around the concept of distinct modes –
usually a normal mode for navigation and commands, and an insert
mode for typing. This means the keyboard is not wasted on just
typing characters; every key is a potential command. The learning
curve is steep but the payoff is that editing becomes
significantly faster once the muscle memory is built.

vim is the classic. It is installed almost everywhere, which
makes knowing it valuable beyond your own machine. neovim is
a modernised fork with a Lua configuration API, better defaults,
and a large plugin ecosystem. The two share the same fundamental
editing model.

These editors are also the foundation of the terminal-first
development workflow – with enough configuration they approach
full IDE behaviour.

Examples: vim, neovim


IDE (Integrated Development Environment)

A heavier, more complete development environment than a plain
text editor. An IDE bundles a file tree, integrated terminal,
built-in debugger, version control UI, and deep
language-specific tooling into one application. The distinction
from a text editor is fuzzy – Neovim with enough plugins
approaches IDE behaviour – but a dedicated IDE requires less
configuration to get to that point.

Worth noting: VS Code and its derivatives are technically
Electron applications. They are large, they consume more memory
than a terminal editor, and they are not terminal-native. The
tradeoff is that they work well out of the box for most
languages without extensive configuration.

Examples: code (VS Code), vscodium (VS Code without
Microsoft telemetry), intellij-idea-community,
pycharm-community, eclipse


10. Development & Version Control


Version Control System

Tracks changes to files over time. Essential for any code or
configuration work. Also used by AUR helpers to clone and update
packages.

Examples: git


Git TUI / Frontend

An interactive terminal interface for git – viewing diffs,
staging changes, managing branches, and resolving conflicts
without memorising every git subcommand.

Examples: lazygit, gitui


Diff / Merge Tool

Compares two files or directories side by side and highlights
differences. A merge tool extends this to resolve conflicts when
two versions of a file have both been modified. git diff is
sufficient for simple cases; a dedicated tool helps with complex
conflicts.

Examples: meld (GUI), vimdiff (terminal),
delta (better git diff output in terminal)


Language / Runtime Version Manager

Manages multiple installed versions of a language runtime on the
same machine. Essential when different projects require different
versions – one project needs Node 18, another needs Node 20, a
third needs Python 3.10 while your system has 3.12. A version
manager lets you switch between them per-project or per-shell
without reinstalling anything.

Examples: nvm (Node.js), pyenv (Python),
rustup (Rust – also the official Rust installer),
sdkman (JVM languages), mise (polyglot, handles many
languages in one tool)


Language Runtimes and Toolchains

The interpreters, compilers, and build tools for whatever
language you are working in. Arch ships most of these in the
official repositories.

Examples: nodejs, npm, python, python-pip, rust,
go, deno


LSP Servers

Language Server Protocol implementations that provide
autocompletion, diagnostics, go-to-definition, and other IDE
features in editors that support LSP (like Neovim). Installed
separately per language.

Examples: managed via mason.nvim inside Neovim, or installed
directly via the package manager


Build System / Build Tools

Automates the steps required to turn source code into a runnable
binary or deployable artifact. Handles compilation order,
dependency linking, and running tests. Different languages use
different build tools; base-devel on Arch covers most of what
you need to compile anything from the AUR or from source.

Examples: make, cmake, meson, ninja, gradle


API Testing Tool

Sends HTTP requests to an API endpoint and inspects the response.
Used for testing and debugging REST or GraphQL APIs without
writing code. Some are CLI tools, some are GUI applications.

curl covers basic use but is not ergonomic for repeated API
work.

Examples: httpie, xh, curlie (CLI),
bruno, insomnia (GUI, open source)


Database Client

Connects to a running database and lets you inspect schemas,
run queries, view data, and manage tables. Essential once you
are working with any persistent data store.

Examples: dbeaver (GUI, multi-database),
beekeeper-studio (GUI), pgcli (TUI, Postgres),
mycli (TUI, MySQL)


Container Runtime

Runs applications in isolated containers. Docker is the most
common. Podman is a daemonless alternative. Incus/LXD runs full
system containers and virtual machines.

Examples: docker, podman, incus


Virtualisation

Runs full virtual machines with their own kernel. QEMU is the
backend; virt-manager and virt-viewer are frontends.

Examples: qemu-full, virt-manager, virt-viewer,
libvirt


System Call Tracer / Debugger

Traces the system calls a process makes, which is how you find
out why a program is failing when it gives you no useful error
message. A low-level debugging tool you reach for when everything
else fails.

Examples: strace, ltrace


Hex Editor

Opens binary files and shows their raw byte values in
hexadecimal. Used when inspecting files that are not plain text
– compiled binaries, firmware images, corrupted files.

Examples: hexyl (terminal, read-only with colour),
bless (GUI, editable), xxd (CLI, ships with vim)


11. File Management


File Manager

Browse, move, copy, rename, and delete files. TUI file managers
are fast and integrate well with terminal workflows. GUI file
managers provide drag-and-drop and thumbnail support.

Examples: yazi, lf, nnn (TUI),
thunar, dolphin (GUI)


Archive Manager

Creates and extracts compressed archives – zip, tar, 7z, rar,
gz, zst. Without the right tool for a format, you cannot open it.

Examples: 7zip, unzip, unrar, tar (usually already
present), file-roller (GUI)


Thumbnail Generator

Generates preview thumbnails for images, videos, and documents
in GUI file managers. Without this, file managers show blank
icons instead of previews.

Examples: ffmpegthumbnailer, tumbler


Disk Usage Analyser

Shows what is consuming disk space, either visually or as a
sorted list. Useful when a drive fills up and you need to find
the cause.

Examples: dust, ncdu, duf (disk usage summary)


Disk / Partition Management

Tools for creating, resizing, and managing partitions and
partition tables. Used for setting up drives or external storage.

Examples: gptfdisk, parted, gparted (GUI)


LVM Tools

If your system uses Logical Volume Management for flexible disk
partitioning, these are required.

Examples: lvm2


Backup Tool

Copies data to a secondary location in a way that supports
incremental backups, deduplication, and restoration. rsync is
simple file mirroring. restic and borg add encryption,
deduplication, and snapshot management.

This is not optional if the data matters. A broken package
upgrade, a full disk, or a hardware failure will eventually
happen.

Examples: rsync, restic, borgbackup


Cloud Storage Client

Syncs files with a remote cloud storage service.

Examples: filen-cli, rclone, syncthing


Remote Desktop Client

Connects to remote machines running a graphical desktop via VNC,
RDP, or other protocols. Useful for managing Windows machines or
headless Linux servers that have a GUI.

Examples: remmina, tigervnc


12. System Utilities


System Monitor / Resource Monitor

Displays live information about CPU, memory, disk I/O, network,
and running processes. A better-looking, more informative
replacement for top.

Examples: btop, htop, bottom


Process Viewer

A better ps. Lists running processes with readable output,
filtering, and sorting.

Examples: procs


Fuzzy Finder (CLI)

An interactive filter for lists of text in the terminal.
Integrates with the shell to search command history, files,
processes, and anything else that outputs text.

Examples: fzf, sk


Smart Search (File Content)

Searches file contents recursively. Much faster than grep -r
on large codebases.

Examples: ripgrep, silversearcher-ag


Smart Search (File Name)

Finds files by name. Faster and more user-friendly than find.

Examples: fd


Modern ls Replacement

A replacement for ls with colour, icons (with Nerd Fonts),
git status integration, and human-readable sizes.

Examples: eza, lsd


Download Manager

Downloads files from the internet, with support for resuming
interrupted downloads, parallel connections, and multiple
protocols.

Examples: aria2, wget, curl


Calculator (CLI)

A command-line calculator for quick arithmetic or more complex
expressions without opening a GUI application.

Examples: bc, qalculate (has a CLI mode)


Security Auditing

Checks the system for known vulnerabilities in installed packages
and configuration issues.

Examples: arch-audit, rkhunter, lynis


Duplicate File Finder

Scans directories for files with identical content and lists or
removes them. Useful for cleaning up storage.

Examples: fdupes, rmlint


13. Applications


Web Browser

Fetches, renders, and runs web content. Wayland-native browsers
render noticeably smoother than those running via XWayland.

Examples: firefox, librewolf, floorp, brave, chromium


Email Client

Sends and receives email. Can be a full GUI application or a
terminal-based client.

Examples: thunderbird, tutanota-desktop (GUI),
neomutt, aerc (TUI)


Document Viewer / PDF Reader

Opens and reads PDF, ePub, DjVu, and similar formats. A minimal
document viewer is faster than a full office suite for just
reading.

Examples: zathura (with zathura-pdf-mupdf), evince,
okular


ePub / eBook Reader

A dedicated reader for ePub files specifically. zathura can
handle some formats but a dedicated reader offers better
navigation, bookmarking, and reading experience for long-form
text.

Examples: epr (terminal), foliate (GUI)


Image Viewer

Opens and browses image files. Should be Wayland-native or
usable under XWayland.

Examples: imv, swayimg, eog


Image Manipulation Tool

Edits and converts images. imagemagick is a CLI tool that
handles format conversion, resizing, and compositing.

Examples: imagemagick (CLI), gimp (GUI raster),
inkscape (GUI SVG / vector)


Video Player

Plays video files and streams. mpv is the standard for
terminal-first setups – it is scriptable, lightweight, and
supports virtually every format.

Examples: mpv, vlc


Media Downloader

Downloads video and audio from websites and streaming platforms
to local files.

Examples: yt-dlp


Music Player Daemon

A background daemon that manages a music library and plays audio.
Controlled separately by a client application. Separates
playback logic from the interface – if your UI crashes, the
music keeps playing.

Examples: mpd


Music Player Client

The interface for a music player daemon. Controls playback,
browsing the library, and managing the queue.

Examples: ncmpcpp, mpc (CLI), cantata (GUI)


Note Taking Application

A place to write and organise notes, references, and personal
knowledge.

Examples: obsidian, logseq, zettlr


Password Manager

An encrypted database of credentials. Without one you either
reuse passwords or write them somewhere insecure.

Examples: keepassxc, bitwarden, pass


Office Suite

For documents, spreadsheets, and presentations in standard
formats (ODF, DOCX, XLSX, etc.).

Examples: libreoffice


Spell Check Library

Provides spell checking for applications that support it –
LibreOffice, email clients, some browsers. You install the
library and then the dictionary for your language separately.

Examples: hunspell, hunspell-en_gb, hunspell-en_us,
aspell (some applications prefer this over hunspell)


Calculator (GUI)

A graphical calculator. Qalculate is particularly good because
it handles unit conversion, symbolic maths, and complex
expressions.

Examples: qalculate


Communication / Messaging

Applications for chat, social platforms, and real-time
communication.

Examples: telegram-desktop, element-desktop (Matrix),
discord, slack-desktop


Fediverse / Social Client

TUI or GUI clients for federated social platforms – Mastodon,
Akkoma, Pleroma, Misskey. If you are on the Fediverse and want
to interact without a browser.

Examples: tut (Mastodon TUI), toot (CLI),
kaiteki (GUI, multi-platform Fediverse)


RSS / Feed Reader

Aggregates and displays content from RSS and Atom feeds – blogs,
news, podcast listings, YouTube channels. Keeps information
consumption terminal-side and out of the browser.

Examples: newsboat (TUI), rss-guard (GUI)


Torrent Client

Downloads files via the BitTorrent protocol. Useful for Linux
ISOs, large open datasets, and anything distributed without a
central server.

Examples: transmission-cli (CLI/daemon),
transmission-gtk (GUI), qbittorrent, deluge


Fetching Tool

Displays system information alongside an ASCII or image logo.
Purely aesthetic. Installed last, used constantly.

Examples: fastfetch, neofetch (unmaintained), macchina


14. Fonts Summary

Fonts deserve a consolidated note because they affect the entire
desktop.

TypePurposeExample Packages
Monospace Nerd FontTerminal, editor, status bar iconsttf-jetbrains-mono-nerd
Sans-Serif UI FontGTK apps, notifications, launchersinter-font, noto-fonts
Emoji FontEmoji rendering everywherenoto-fonts-emoji
Serif FontDocuments, readingadobe-source-serif-fonts

15. Quick Checklist

Use this to verify nothing critical is missing.

Core System

  • Base system and kernel
  • CPU microcode and firmware
  • Bootloader
  • Man pages
  • Time synchronisation
  • Disk encryption (ideally set up at install time)

Display

  • GPU driver and video acceleration
  • Display manager or TTY launch setup
  • Compositor (Hyprland)
  • XDG desktop portals (compositor-specific + GTK fallback)
  • XWayland
  • Display configuration tool

Desktop Components

  • Status bar
  • Application launcher
  • Notification daemon
  • Screen lock + idle daemon
  • Wallpaper setter
  • Polkit agent
  • Keyring
  • Clipboard manager + wl-clipboard
  • Screenshot tool + region selector
  • Screen annotation tool
  • Color picker
  • OSD (volume / brightness feedback)

Audio

  • Audio server (PipeWire + WirePlumber)
  • Volume control

Networking

  • Network manager + frontend
  • Firewall
  • SSH client/server
  • Encrypted DNS
  • Network diagnostics tools

Input & Hardware

  • Brightness control
  • Bluetooth (if hardware present)
  • Power management (if on a laptop)
  • Fingerprint reader (if hardware present)
  • Input remapper (if needed)
  • Smart drive monitor

Shell & Terminal

  • Terminal emulator
  • Shell + prompt
  • Terminal multiplexer
  • Pager
  • AUR helper

Theming

  • Fonts (monospace Nerd Font + emoji at minimum)
  • Icon theme + hicolor fallback
  • Cursor theme
  • GTK settings manager
  • Qt theming (qt5ct / qt6ct + Kvantum)

Editors & IDE

  • Simple terminal editor (nano or micro)
  • Modal terminal editor (vim or neovim)
  • IDE (if text editor + plugins is not sufficient)

Development

  • Git + git TUI
  • Language runtimes and toolchains
  • Language version manager
  • Build tools (base-devel covers most of this)
  • LSP servers
  • API testing tool
  • Database client (if working with databases)
  • Container runtime (docker, podman, or incus)
  • Virtualisation (qemu + virt-manager if needed)
  • Diff / merge tool
  • System call tracer (strace)
  • Hex editor

File Management

  • File manager
  • Archive manager
  • Disk usage analyser
  • Disk / partition management tools
  • Backup tool and a tested restore procedure
  • Cloud storage client (if needed)
  • Remote desktop client (if needed)

System Utilities

  • System monitor
  • Fuzzy finder (fzf)
  • Smart file content search (ripgrep)
  • Smart file name search (fd)
  • Modern ls replacement (eza)
  • Download manager
  • Security auditing tools

Applications

  • Web browser
  • Email client
  • Document / PDF viewer
  • Image viewer
  • Video player
  • Music player daemon + client
  • Note taking application
  • Password manager
  • Office suite
  • Spell check library + dictionaries
  • Media downloader (yt-dlp)
  • Communication / messaging apps
  • Torrent client (if needed)
  • RSS reader (if needed)
  • Fetching tool

This note is a reference, not a prescription. Your actual
package list will differ. The point is to know what each
category does so you know what you are missing when something
does not work.