{ config, lib, pkgs, ... }: let cfg = config.sydnix.dank-material-shell; in { options.sydnix.dank-material-shell = { enable = lib.mkEnableOption "Dank Material Shell"; }; config = lib.mkIf cfg.enable { programs.dank-material-shell = { enable = true; enableDynamicTheming = false; systemd = { enable = true; restartIfChanged = true; }; }; # Start after xwayland-satellite, if possible. So DMS can start # with the DISPLAY env var set. systemd.user.services.dms = { wants = ["xwayland-satellite.service"]; after = ["xwayland-satellite.service"]; }; # services.greetd.settings.default_session.command = ""; services.displayManager.dms-greeter = { enable = true; compositor = { name = assert config.sydnix.niri.enable; "niri"; # see: https://github.com/AvengeMedia/DankMaterialShell/commit/5ceb908b8b69c253e259b5437020192dcad4bfde customConfig = '' hotkey-overlay { skip-at-startup } environment { DMS_RUN_GREETER "1" } gestures { hot-corners { off } } layout { background-color "#000000" } ''; }; configHome = "/home/msyds"; # Really stupid. logs = { save = true; path = "/var/lib/dms-greeter/log"; }; }; }; }