Dependencies and Package Profiles
lyona supports Arch Linux only. Every package it installs comes from one map,
scripts/dwm-packages.sh, so the installer, the install ISO, CI and this page
cannot disagree about a name. tests/test-arch-packages.sh fails if a package in
the groups below is missing from this page.
List any group yourself:
source scripts/dwm-packages.sh
dwm_packages arch required
Group names that are not listed print nothing.
Installer profiles
install.sh --profile (or DWM_INSTALL_PROFILE) takes three values, described in
Installation:
| Profile | What it installs |
|---|---|
core | required, plus Alacritty. |
recommended | core, plus the recommended group. |
full (the default) | recommended, plus the optional and gaming groups. |
The groups are made of smaller groups:
| Group | Made of |
|---|---|
required | build + x11 + runtime-required |
recommended | desktop + browser + media + system-management + screenshot-optional + theme + theme-gtk + fonts + shell |
optional | theme-optional + desktop-optional + system-management-optional |
full | required + recommended + optional + gaming |
The optional and gaming additions in full are conveniences. Picom is part of
the recommended desktop, since the overview’s window previews need it. Still, dwm
depends on none of these: the desktop starts without Picom, a wallpaper, a file
manager or a preferred terminal, and without Picom the overview shows icon-and-title
cards.
Groups
Each group below lists its packages exactly as the map prints them.
build
Compilers and the X11 development libraries that build dwm.
gcc make pkgconf base-devel libx11 libxft libxinerama libxrender imlib2 libxcb xcb-util freetype2 fontconfig
x11
The Xorg server, xinit, and the X tools the session and Settings call (xrandr, xrdb, xset, xinput, setxkbmap), plus xsettingsd, which broadcasts theme, cursor and DPI to running toolkits.
xorg-server xorg-xinit xorg-xrandr xorg-xrdb xorg-xset xorg-xsetroot xorg-xinput xorg-setxkbmap xsettingsd
runtime-required
What a running session needs: D-Bus, xdotool and xprop (the Quickshell state bridge), clipboard access, git, and the usual process and archive tools.
dbus curl git procps-ng psmisc unzip util-linux xclip xdotool xorg-xprop xdg-utils
desktop
The managed shell and the desktop around it: Quickshell, Picom, Feh, Dex, the polkit agent, audio (PipeWire, WirePlumber, pavucontrol), brightness, notifications, Bluetooth, power, Flatpak, the GTK desktop portal, AppImages, the login keyring, the signature check of lyona’s own updates, the Thunar file manager and NetworkManager.
quickshell picom python feh dex mate-polkit alsa-utils brightnessctl inotify-tools jq libpulse pipewire pavucontrol pipewire-pulse wireplumber libnotify light-locker xf86-input-libinput bluez bluez-utils blueman playerctl upower power-profiles-daemon flatpak xdg-desktop-portal-gtk pciutils gum cosign xorg-xmessage fuse2 squashfs-tools gnome-keyring pacman-contrib thunar gvfs gvfs-smb tumbler thunar-archive-plugin file-roller xdg-user-dirs networkmanager wireless-regdb iw
Thunar with SMB browsing, archives and thumbnails (the file-manager group) is what Super+E opens. BlueZ (bluez) is what the panel’s and Settings’ Bluetooth read; the installer enables and starts bluetooth.service when the unit is installed and not masked, and the image installer enables it on the new system. NetworkManager (the network group) is what the panel’s network status and Wi-Fi read; the installer enables it only when no other network manager (systemd-networkd, iwd, ConnMan, dhcpcd, netctl) is in use, and it starts at the next boot. Without it the panel says “NetworkManager not installed” or “NetworkManager not running”. The group also installs wireless-regdb, the kernel’s Wi-Fi regulatory database: without it Wi-Fi stays on the world domain, where 5 GHz connects slowly or not at all. iw, which it needs, also shows the Wi-Fi country (iw reg get).
fuse2 and squashfs-tools (the appimage group) are for AppImages: fuse2 runs the classic ones, which need libfuse.so.2 (the newer static-runtime ones run with Flatpak’s fuse3), and lyona-appimage reads an AppImage’s launcher entry and icon with unsquashfs, without running it.
cosign checks the Sigstore signature of each lyona release before lyona-update installs it. Without it, an update to a signed release is refused.
xorg-xmessage shows the one message the shell cannot: when a shell key finds the shell down and cannot start it again, since the shell is the notification server (#338).
gnome-keyring (the keyring group) stores secrets for browsers, NetworkManager and other applications. It includes pam_gnome_keyring.so, which Arch’s LightDM PAM stack already loads, so a password login unlocks the keyring; there is no separate PAM package. Under startx the keyring is unlocked on first use instead. dwm-diagnostics and System Health flag it when it is missing.
pacman-contrib (the update-indicator group) provides checkupdates, which the panel’s update icon counts pending package updates with. It never takes pacman’s lock.
browser
A web browser, for SUPER+B and the links other programs open. On a fresh account, seed-default-apps.sh makes it the default for web links and HTML pages only. Firefox also claims image, audio and video types, but those stay with sxiv and Celluloid. The installer skips it when your default https handler (xdg-mime query default x-scheme-handler/https) is another browser that’s already installed.
firefox
media
Celluloid, mpv and sxiv, which scripts/seed-default-apps.sh makes the defaults for audio, video and images on a fresh account.
celluloid mpv sxiv desktop-file-utils
system-management
What Settings > System reads: PackageKit and its Python bindings, AccountsService and CUPS.
python python-gobject packagekit accountsservice cups
screenshot-optional
maim, used by the screenshot hotkeys. The installer skips it, and says so, if it is not in the enabled repositories.
maim
theme
Icon themes and dconf.
dconf adwaita-icon-theme papirus-icon-theme
theme-gtk
The Arch GTK theme packages the installer installs when available; lyona also generates a GTK theme from every palette of its own.
adw-gtk-theme deepin-gtk-theme
fonts
Noto fonts and emoji, and MesloLGS Nerd Font, the terminal, bar and shell font
(the font-meslo profile).
noto-fonts-emoji noto-fonts ttf-meslo-nerd
shell
The shell add-ons the mybash configuration uses: Starship, zoxide, fzf, Fastfetch and friends.
starship zoxide fzf fastfetch bat tree trash-cli bash-completion
desktop-optional
rsync and autorandr. Every package is in the official repositories. The file manager and NetworkManager are in desktop.
rsync autorandr
theme-optional
qt6ct. With it installed, applying a theme points it at the palette lyona generates so Qt applications follow it. qt5ct, which the installer used to try when qt6ct was missing, is no longer installed; one you installed yourself is still pointed at the palette (docs/src/theming.md).
qt6ct
system-management-optional
The printer configuration tool and arch-audit.
system-config-printer arch-audit
gaming
Steam, Gamescope, GameMode and MangoHud, including the 32-bit builds. Needs the multilib repository.
steam gamescope gamemode lib32-gamemode mangohud lib32-mangohud
terminal
Alacritty and Kitty.
alacritty kitty
terminal-primary
Alacritty, the default terminal.
alacritty
lightdm
The LightDM display manager and its greeter.
lightdm lightdm-slick-greeter
iso
What the live install medium itself runs, on top of archiso’s releng
profile: the whole package list of the install image. The desktop is not on
it, as the new system downloads every package it installs.
plymouthdraws the boot splash;gumdraws the wizard, andjqwrites its credentials file;curlchecks the network, looks up the timezone and sets up the CachyOS repositories;opensslhashes the password, andpciutils(lspci) finds the GPU;reflectorranks the package mirrors in your country.
plymouth gum jq curl openssl pciutils reflector
qml-development
QML tooling for developing the shell: qt6-declarative (qmllint, qmltestrunner).
qt6-declarative
qml-validation
What CI needs to validate the QML: Quickshell and qt6-declarative.
quickshell qt6-declarative
Not installed by any profile
Continuous-integration groups (ci-smoke, ci-tools, ci-full) exist for the
project’s own test jobs and are not part of an install.
Repositories and the AUR
Every package above is in the official Arch repositories. Lyona limits the AUR to
where no official package can do the job (docs/AUR-PACKAGES.md, enforced by
make check-aur-policy). Today that is four places:
- the
yayhelperinstall.shinstalls for you; - Topgrade, built from the AUR’s pinned, reviewed
topgrade-binPKGBUILD, as Topgrade is only in the AUR; - on the live medium, an older NVIDIA card’s legacy driver, built from a pinned AUR PKGBUILD when the CachyOS repository cannot supply it;
- Settings -> System -> Update packages, which runs your own
yay -Syuwhenyayis installed.
Steam and its libraries need the multilib repository, which the installer enables only after
separate approval.