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
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.