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