Skip to main content

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:

DMS_DISABLE_MATUGEN=1
DMS_DANKBAR_LAYER=overlay
DMS_HIDE_TRAYIDS=discord,spotify

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.