Skip to main content

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

IconStatusMeaning
🟢OKCheck passed
🟡WarningNon-critical issue, may affect some features
🔴ErrorCritical issue that needs attention
InfoInformational, 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 & installation
  • nix: 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

CompositorDetectionVersion Parsing
niriniriniri --version
Hyprlandhyprland, Hyprlandhyprctl version
mangowcmangowcmangowc --version
labwclabwclabwc --version
Swayswaysway --version
Riverriverriver -version
Wayfirewayfirewayfire --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.

note

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

FileLocationPurpose
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

Upcoming in 1.2

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.