Dependencies
dwm-titus combines dwm, Quickshell, and Xorg with services for audio, networking, power, authentication, and application integration. Fedora is the only supported distribution; the documented image target is Fedora 44 x86_64.
This guide describes the major direct dependencies selected by the installer, not an inventory of your machine or every transitive library. DNF and Flatpak resolve additional dependencies, including Quickshell’s Qt/QML runtime. The shared package map and installer are the source of truth for package selection and conditional installation.
Installation Profiles
| Choice | What it installs |
|---|---|
core |
Build tools and libraries, X11, required runtime utilities, media applications, and one supported terminal. It does not install the complete Quickshell desktop. |
recommended |
Core plus Quickshell, desktop services, system-management prerequisites, themes, fonts, and Gear Lever. Screenshot and some theme packages are attempted with failure-tolerant handling. |
full |
Recommended plus optional file management, keyring, administration and toolkit utilities, wallpapers, and supported gaming integrations. Installs LightDM if no display manager is detected. |
| Dedicated Fedora image | A prepared complete desktop, including image-specific application defaults and boot/storage support. End-user image installation works offline. |
In the tables below, Core means every existing-system profile, Desktop means recommended and full, and Full means an optional extra attempted by full. These describe installer selection, not whether dwm itself requires a component to keep running. For example, Picom is installed by the desktop profile, but dwm can run without it.
Preview the actual installation plan before making changes:
./install.sh --dry-run --non-interactive --profile recommended
Window Manager and Desktop Shell
| Piece | Dependencies | Role and selection |
|---|---|---|
| System foundation | Fedora, RPM/DNF, systemd | Host package management, system services, and user sessions. |
| Display server | xorg-x11-server-Xorg, xorg-x11-xinit |
Core. X11 graphics and startx support. This is not a Wayland session. |
| Window manager | Repository-built dwm |
Tiling, floating windows, tags, focus, window rules, and monitor management. |
| Desktop shell | quickshell and managed repository QML |
Desktop. Panels, launcher, tray, notifications, Control Center, and Settings. Requires Quickshell 0.3.0 or the compatible Fedora 44 snapshot. |
| Compositor | picom |
Desktop. Compositing, opacity, shadows, and visual effects. |
| Wallpaper | feh |
Desktop. Applies wallpaper through the managed helpers. Full additionally attempts to download the wallpaper collection. |
| Session communication | dbus-x11, systemd user services |
Core D-Bus session support; graphical-session integration makes the display environment available to user services. |
| Application autostart | dex-autostart |
Desktop. Fallback for XDG autostart when the systemd graphical-session path is unavailable. |
| Login screen | lightdm, slick-greeter |
Dedicated images, or full when no display manager is detected. An existing display manager is retained; detected LightDM receives the project’s greeter configuration. |
| Terminal | alacritty, with supported fallbacks |
Core. Alacritty is preferred. If unavailable, the installer checks existing Kitty, st, Warp, or xterm before attempting another supported terminal package. |
| Screen locking | light-locker |
Desktop. Locking follows the saved power and locking policy. |
The managed Quickshell configuration lives under
${XDG_CONFIG_HOME:-$HOME/.config}/quickshell/. The window manager stays separate
from the shell and system-service backends. Settings provides the interface;
helpers and service APIs perform the underlying operations.
Hardware and System Services
| Piece | Dependencies | Role and selection |
|---|---|---|
| Audio engine | pipewire, wireplumber, pipewire-pulseaudio |
Desktop. Audio processing, device/session policy, and PulseAudio compatibility. |
| Audio tools | alsa-utils, pulseaudio-utils, pavucontrol |
Desktop. Mixer commands, audio controls, and a standalone configuration interface. |
| Network connections | NetworkManager, NetworkManager-wifi |
Full package group. Backend for networking controls, including the Wi-Fi device plugin. NetworkManager alone leaves Wi-Fi interfaces unmanaged. It may already be present on an existing Fedora system. |
| Bluetooth | bluez, blueman |
Desktop. Bluetooth services and device-management tools. |
| Battery and power profiles | upower, power-profiles-daemon |
Desktop. Battery state and performance/power profiles. The installer retains an installed provider of ppd-service rather than replacing it. |
| Brightness | brightnessctl |
Desktop. Backlight control where supported by the hardware. |
| Display controls | xrandr, xset, xsetroot |
Core. Monitor layout/modes, screen power settings, and root-window utilities. |
| Input controls | xinput, setxkbmap, xkbset |
Core. Input settings, keyboard layouts, and accessibility controls. |
| Input driver | xorg-x11-drv-libinput |
Desktop. Xorg keyboard and pointer driver integration. |
| Authorization dialogs | polkit, mate-polkit |
Desktop selects the authentication agent. Privileged operations use narrow installed helpers and authorization policies; QML stays unprivileged. |
| Credential storage | gnome-keyring, gnome-keyring-pam |
Full. Secret storage and login integration. |
Applications and Desktop Integration
| Piece | Dependencies | Role and selection |
|---|---|---|
| File manager | Thunar |
Full. Graphical folder browsing. |
| File access and shares | gvfs, gvfs-smb |
Full. File-access integration and SMB network shares. |
| Thumbnails | tumbler |
Full. File-manager thumbnail generation. |
| Archives | thunar-archive-plugin, file-roller |
Full. Archive creation/extraction and file-manager integration. |
| Standard user folders | xdg-user-dirs |
Full. Initializes standard directories such as Pictures and Downloads. |
| Default apps and desktop entries | xdg-utils, desktop-file-utils |
Core. URL/file opening, associations, and desktop-entry utilities. |
| Media playback | celluloid, mpv |
Core. Graphical video player and playback engine. |
| Image viewing | sxiv |
Core. Image viewer; Feh separately handles wallpapers. |
| Media controls | playerctl |
Desktop. Controls compatible music and video players. |
| Screenshots | maim, managed dwm-screenshot helper |
Attempted for Desktop. Missing maim disables screenshot hotkeys without failing installation. |
| Clipboard | xclip |
Core. X11 clipboard ownership, including completed screenshot captures. |
| Window inspection and automation | xdotool, xprop |
Core. Window interaction and X11 state inspection used by desktop helpers. |
| Notifications | Quickshell, libnotify |
Desktop. Quickshell displays notifications; libnotify supplies client tools. |
| Sandboxed applications | flatpak, xdg-desktop-portal-gtk |
Desktop. Flatpak applications and portal integration such as file dialogs. |
| AppImage management | Gear Lever (it.mijorus.gearlever) |
Desktop. Installed through user-scoped Flathub when needed; integrates AppImages with the launcher. |
| Software management | PackageKit, PackageKit-glib, python3-gobject, python3-rpm |
Desktop. Package transactions, installed-package information, and system-management integration. |
| User accounts | accountsservice; optional lxqt-admin |
Desktop account-service prerequisites; Full additionally attempts the delegated administration tool. |
| Printing | cups, system-config-printer |
Desktop. Print service and printer-configuration tools. |
| Additional package UI | dnfdragora |
Full. Standalone graphical package management. |
Package presence does not imply that every service is running or every hardware feature is available. Settings reports unsupported capabilities and delegates selected advanced operations to the relevant tools.
Appearance and Helper Infrastructure
| Piece | Dependencies | Role and selection |
|---|---|---|
| GTK settings | xsettingsd, dconf |
Desktop. Session appearance settings and persistent toolkit preferences. |
| Qt appearance | qt6ct, qt5ct |
Recommended attempts the first available candidate; Full attempts both optional packages. Qt toolkit theme integration. |
| Icons | adwaita-icon-theme, papirus-icon-theme |
Desktop. Application and desktop icons. |
| GTK themes | arc-theme, adw-gtk3-theme, numix-gtk-theme, yaru-gtk3-theme, yaru-gtk4-theme, deepin-gtk-theme, bluebird-gtk3-theme |
Attempted for Desktop; unavailable themes do not fail installation. Nordic has a separate installation path. |
| Fonts | google-noto-color-emoji-fonts, google-noto-sans-mono-fonts, Meslo Nerd Font |
Desktop. Emoji, monospace text, and icon glyphs. Meslo uses the installer’s separate font setup. |
| Helper runtime | python3 |
Core. Managed desktop helpers and supporting scripts. |
| Structured data and events | jq, inotify-tools, dbus-tools |
Desktop. JSON processing, filesystem watches, and service communication. |
| Update isolation | bubblewrap, libseccomp |
Desktop. Sandboxing and syscall restrictions for the desktop update workflow. |
| Download and source tools | curl, git, unzip |
Core. Downloads, source updates, and archive extraction. |
| Process and session tools | procps-ng, psmisc, util-linux |
Core. Process inspection/control and session utilities. |
| File synchronization | rsync |
Full optional group; also used by image-building tooling. |
The source-update reconciliation group is deliberately smaller than a complete
installation profile: xsettingsd, xkbset, bubblewrap, libseccomp, and
NetworkManager-wifi.
Rerun the installer with recommended or full to add that profile’s complete
system-management prerequisites to an older installation.
Gaming and Image-Specific Components
| Selection | Dependencies | Purpose |
|---|---|---|
| Full gaming integration on x86_64 | steam, gamescope, gamemode.x86_64, gamemode.i686, mangohud.x86_64, mangohud.i686 |
Game delivery, nested game presentation, performance tuning, and overlays. Includes selected 32-bit support. Third-party repository setup requires approval. |
| Dedicated image browser | brave-origin |
Brave Origin is the fresh-account browser default. Existing-system application choices are preserved. |
| Dedicated image prompt | Starship | Shell prompt with desktop-matched theming. |
| Terminal workspace | Herdr | Verified offline availability in dedicated images. Existing-system installation and activation remain opt-in; normal terminal launches still open Alacritty directly. |
| NVIDIA image only | akmod-nvidia, xorg-x11-drv-nvidia, xorg-x11-drv-nvidia-cuda, nvidia-settings |
Proprietary NVIDIA kernel/graphics support and configuration. Excluded from the standard image. |
The image boot/storage group includes tar, dracut-network, grub2-pc,
grub2-pc-modules, grub2-efi-x64, shim-x64, lvm2, cryptsetup,
btrfs-progs, xfsprogs, e2fsprogs, mdadm, and dosfstools. These support
image installation, boot, filesystems, encryption, and storage configurations;
they are not additional resident desktop-shell components.
Build and Validation Dependencies
The source installer compiles dwm, so even core selects these build packages:
| Dependencies | Purpose |
|---|---|
gcc, make, pkgconf-pkg-config |
C compiler, build system, and library discovery. |
libX11-devel, libxcb-devel, xcb-util-devel |
X11 and XCB interfaces. |
libXinerama-devel |
Multi-monitor interfaces. |
libXrender-devel, libXft-devel |
Rendering and text drawing. |
freetype-devel, fontconfig-devel |
Font rendering and discovery. |
imlib2-devel |
Image handling. |
Development and image-factory profiles have additional tools that are separate from the everyday desktop:
- QML development/validation:
qt6-qtdeclarative-devel, plus Quickshell andxsettingsdfor validation. QML linting needs explicit Qt and Quickshell import roots; see the repository specification. - Headless smoke testing:
xorg-x11-server-Xvfb,dbus-daemon,gawk,google-noto-sans-fonts, and the build/runtime tools in theci-smokemap. - Image assembly:
xorriso,rsync,squashfs-tools-ng,isomd5sum,python3-pillow,fontconfig, andgoogle-noto-sans-fonts. - Image factory and VM qualification:
qemu-system-x86,qemu-img,edk2-ovmf,libguestfs,pykickstart,xz,zstd, andtime, in addition to image-assembly tools.
For installation steps, return to Installation. For the underlying contracts, see the project specification.