System Diagnostics (doctor)
██████╗ ███╗ ███╗███████╗ ██╔══██╗████╗ ████║██╔════╝ ██║ ██║██╔████╔██║███████╗ ██║ ██║██║╚██╔╝██║╚════██║ ██████╔╝██║ ╚═╝ ██║███████║ ╚═════╝ ╚═╝ ╚═╝╚══════╝
The dms doctor command diagnoses your DMS installation, verifies dependencies, and checks system configuration. Use it to troubleshoot issues or verify your setup is complete.
Usage
dms doctor # Standard output
dms doctor -v # Verbose output with paths and details
dms doctor -j # JSON output for scripting
Status Indicators
| Icon | Status | Meaning |
|---|---|---|
| 🟢 | OK | Check passed |
| 🟡 | Warning | Non-critical issue, may affect some features |
| 🔴 | Error | Critical issue that needs attention |
| ⚪ | Info | Informational, no action needed |
System Checks
Operating System
All GNU/Linux distributions are supported - this information is purely informational.
Architecture
Only amd64/arm64 is officially supported, although other architectures may work with manual compilation.
Display Server
DMS only supports Wayland, this check verifies you're not using X11.
Version Checks
DMS CLI
DMS CLI is the backend and command-line interface for DMS. Its version should match the version of the quickshell configuration.
Quickshell
Quickshell is the framework used by DMS. Older versions of quickshell may result in a reduced feature set within DMS.
DMS Shell
The version of the shell configuration, which should match the DMS CLI version.
Installation Checks
DMS Configuration
By default DMS installs its configuration, plugins, and themes in $XDG_CONFIG_HOME/.config/DankMaterialShell/. This check verifies that the configuration directory exists.
shell.qml
The location of the shell.qml is the installed location of the DMS shell configuration.
Install Type
system: Installed via system package manager (e.g.apt,dnf,pacman)user: if manually installed via manual compilation & installationnix: if installed via Nix package manager
Compositor Checks
All wayland compositors that implement the layer shell protocol are supported, with varying feature sets.
Supported Compositors
| Compositor | Detection | Version Parsing |
|---|---|---|
| niri | niri | niri --version |
| Hyprland | hyprland, Hyprland | hyprctl version |
| mangowc | mangowc | mangowc --version |
| labwc | labwc | labwc --version |
| Sway | sway | sway --version |
| River | river | river -version |
| Wayfire | wayfire | wayfire --version |
Active Compositor
Currently running compositor.
Quickshell Features
These features depend on how Quickshell was built. Using quickshell-git provides full feature support, some builds of quickshell can exclude features based on compilation options.
All of these features currently require quickshell-git or quickshell from the Dank Linux repositories (Fedora, Debian, Ubuntu, OpenSUSE)
Polkit
Polkit is used for escalation prompts, items that require root authorization.
IdleMonitor
Used to automatically lock, power off monitors, suspend, or hibernate.
IdleInhibitor
Used to prevent the system from idling or sleeping.
ShortcutInhibitor
Used to manage keyboard shortcuts, specific to the niri compositor.
Optional Features
accountsservice
Required to persist user profile changes, such as profile picture.
power-profiles-daemon
Required to manage power profiles. (e.g. performance, balanced, power-saver)
I2C/DDC
Required for external monitor brightness control, on most distributions requires i2c-tools and the user to be in the i2c group.
Terminal
Detected terminals (in priority order): ghostty, kitty, alacritty, foot, wezterm
matugen
DMS leverages matugen with custom color enrichment (dank16) to generate themes for itself and various applications, terminals, and IDEs.
dgop
Required to use system monitoring widgets and applets (CPU, RAM, Disk, Network, Processes). See dgop documentation for more information.
cava
Required for audio visualization in media players.
khal
Required to enrich calendar with events from local, CalDAV, or other sources supported by khal.
Network
Detected backends: NetworkManager, iwd, systemd-networkd, iwd+systemd-networkd.
DMS supports different network stacks, NetworkManager is recommended for the vast majority of use cases as its also compatible with Gnome, KDE, etc. This is purely for integration within the shell itself (such as conencting to networks, viewing network status, etc.)
- NetworkManager : all features supported (Wifi, Ethernet, VPN)
- iwd : Wifi only, no Ethernet or VPN support
- systemd-networkd : Ethernet only, no Wifi or VPN support
- iwd+systemd-networkd : Wifi and Ethernet supported, no VPN support
danksearch
Used for indexed filesystem search in the launcher. Use / to initiate a fs search. See DankSearch documentation for more information.
loginctl
Available on systems using systemd or elogind. Used for various session management features such as lock integration, lock before suspend, etc.
fprintd
Adds fingerprint authentication support to the lock screen.
Configuration Files
| File | Location | Purpose |
|---|---|---|
settings.json | ~/.config/DankMaterialShell/ | Main settings |
clsettings.json | ~/.config/DankMaterialShell/ | Command-line settings |
plugin_settings.json | ~/.config/DankMaterialShell/ | Plugin configuration |
session.json | ~/.local/state/DankMaterialShell/ | Session state |
dms-colors.json | ~/.cache/DankMaterialShell/ | Cached color scheme |
Services
dms.service
If in use, DMS lifecycle will be managed by systemd. This is optional, DMS can also be started manually or via other init systems.
greetd
Required for the Dank Greeter. (See DankGreeter documentation for more information.)
Environment Variables
QT_QPA_PLATFORMTHEME
Used to set the Qt platform theme - usually one of gtk3, qt6ct, or kde. This will define how QT applications are themed. Including some elements of DMS (such as icon themes)
QS_ICON_THEME
Optional environment variable to set the icon theme for DMS only. Will not effect other applications.
JSON Output
Use dms doctor -j for machine-readable output:
{
"summary": {
"errors": 0,
"warnings": 1,
"ok": 15,
"info": 5
},
"results": [
{
"category": "System",
"name": "Operating System",
"status": "ok",
"message": "Arch Linux",
"details": "ID: arch, Version: rolling, Arch: amd64"
}
]
}
Welcome Wizard Integration
The doctor checks are also available in the Welcome Wizard's System Check page. Access it via:
dms ipc call welcome doctor
Or through Settings → About → Tools → System Check.