Skip to main content
Version: 1.4

Advanced Configuration

██████╗ ███╗   ███╗███████╗
██╔══██╗████╗ ████║██╔════╝
██║  ██║██╔████╔██║███████╗
██║  ██║██║╚██╔╝██║╚════██║
██████╔╝██║ ╚═╝ ██║███████║
╚═════╝ ╚═╝     ╚═╝╚══════╝

DankMaterialShell supports several advanced configuration options through environment variables prefixed with DMS_.

Core Configuration

DMS_RUN_GREETER

Enables greeter/login screen mode instead of regular shell mode. Used for display manager integration with greetd.

DMS_RUN_GREETER=1 dms run

DMS_GREET_CFG_DIR

Specifies custom configuration directory for greeter mode (defaults to /etc/greetd/.dms). Useful for isolating greeter settings from user settings.

DMS_GREET_CFG_DIR=/custom/path dms run

DMS_SOCKET

Custom Unix socket path for DMS internal services communication. Used by DMSService, NetworkService, SessionService, and PortalService for IPC.

DMS_SOCKET=/tmp/custom-dms.sock dms run

Display & Rendering

DMS_DISABLE_MATUGEN

Disables matugen dynamic theming system for troubleshooting or when using static themes. Set to 1 or true to disable.

DMS_DISABLE_MATUGEN=1 dms run

DMS_DISABLE_LAYER

Disables layer effects on popout widgets for performance or compatibility reasons. Set to true to disable layer rendering.

DMS_DISABLE_LAYER=true dms run

DMS_DANKBAR_LAYER

Controls Wayland layer for DankBar panel. Valid values: bottom, overlay, background, or top (default). Useful for window stacking issues.

DMS_DANKBAR_LAYER=overlay dms run

DMS_POPOUT_LAYER

Controls Wayland layer for DankBar popout widgets. Valid values: bottom, overlay, background, or top (default). Useful for window stacking issues.

DMS_POPOUT_LAYER=overlay dms run

DMS_MODAL_LAYER

Controls Wayland layer for modal windows like the launcher, settings panel, and other popups. Valid values: bottom, overlay, background, or top (default).

DMS_MODAL_LAYER=overlay dms run

DMS_NOTIFICATION_LAYER

Controls Wayland layer for notification popups. Valid values: bottom, overlay, background, or top (default).

DMS_NOTIFICATION_LAYER=overlay dms run

System Integration

DMS_DISABLE_POLKIT

Disable's the native polkit integration, if you prefer to use a different polkit agent.

DMS_DISABLE_POLKIT=1 dms run

DMS_PREFERRED_BATTERY

Forces specific battery device when multiple batteries detected (e.g., dual-battery laptops). Provide the UPower device name/path.

DMS_PREFERRED_BATTERY=/org/freedesktop/UPower/devices/battery_BAT0 dms run

DMS_HIDE_TRAYIDS

Comma-separated list of system tray icon IDs to hide from the system tray bar.

DMS_HIDE_TRAYIDS=discord,spotify,steam dms run
DMS_DWL_TAG_COUNT=5 dms run

Printing Configuration

DMS_IPP_HOST

Specifies the hostname or IP address of the IPP/CUPS print server. Defaults to localhost if not set.

DMS_IPP_HOST=printserver.local dms run

DMS_IPP_PORT

Specifies the port number for the IPP/CUPS print server. Defaults to 631 (standard IPP port) if not set.

DMS_IPP_PORT=631 dms run

DMS_IPP_USERNAME

Username for authenticating with the IPP/CUPS print server. Leave unset if authentication is not required.

DMS_IPP_USERNAME=printuser dms run

DMS_IPP_PASSWORD

Password for authenticating with the IPP/CUPS print server. Leave unset if authentication is not required.

DMS_IPP_PASSWORD=secret dms run

Setting Environment Variables

Systemd / DankInstall Users

If you manage DMS with systemd (including dankinstall users), set environment variables in ~/.config/environment.d/90-dms.conf:

TERMINAL=ghostty
DMS_DISABLE_MATUGEN=1
DMS_DANKBAR_LAYER=overlay
DMS_HIDE_TRAYIDS=discord,spotify

At least the TERMINAL variable should be present, if you want to use the System Updates widget. Log out and back in for changes to take effect.

niri

Add to your niri config:

environment {
DMS_DISABLE_MATUGEN "1"
DMS_DANKBAR_LAYER "overlay"
DMS_HIDE_TRAYIDS "discord,spotify"
}

Hyprland

Add to your Hyprland config:

env = DMS_DISABLE_MATUGEN,1
env = DMS_DANKBAR_LAYER,overlay
env = DMS_HIDE_TRAYIDS,discord,spotify

Sway

Add to your Sway config:

set $DMS_DISABLE_MATUGEN 1
set $DMS_DANKBAR_LAYER overlay
set $DMS_HIDE_TRAYIDS discord,spotify

Manual Launch

Set variables before launching:

export DMS_DISABLE_MATUGEN=1
export DMS_DANKBAR_LAYER=overlay
dms run

Use Cases

Disable dynamic theming:

DMS_DISABLE_MATUGEN=1

Useful for performance testing or when using only static themes.

Hide system tray icons:

DMS_HIDE_TRAYIDS=discord,slack,teams

Clean up system tray by hiding unwanted application icons.

Fix bar layering issues:

DMS_DANKBAR_LAYER=overlay

If DankBar appears behind windows or other issues, adjust the Wayland layer.

Dual battery laptops:

DMS_PREFERRED_BATTERY=/org/freedesktop/UPower/devices/battery_BAT0

Force DMS to use a specific battery when multiple are detected.

Performance tuning:

DMS_DISABLE_LAYER=true

Disable layer effects to improve performance on lower-end hardware.

Remote print server:

DMS_IPP_HOST=printserver.local
DMS_IPP_PORT=631
DMS_IPP_USERNAME=printuser
DMS_IPP_PASSWORD=secret

Connect to a remote CUPS/IPP print server with authentication.