lol

nixos/regreet: make `cage(1)` args configurable

In my case I'd like to be able to add `-m last` to `cage` to make sure
that the login form from regreet isn't displayed half on my external
monitor and half on my laptop screen, but on the last connected monitor
only.

That's basically the issue described in #226586, though it's not a
proper fix since the login form is shown on one monitor only.

+14 -1
+14 -1
nixos/modules/programs/regreet.nix
··· 36 36 ''; 37 37 }; 38 38 39 + cageArgs = lib.mkOption { 40 + type = lib.types.listOf lib.types.str; 41 + default = [ "-s" ]; 42 + example = lib.literalExpression 43 + '' 44 + [ "-s" "-m" "last" ] 45 + ''; 46 + description = lib.mdDoc '' 47 + Additional arguments to be passed to 48 + [cage](https://github.com/cage-kiosk/cage). 49 + ''; 50 + }; 51 + 39 52 extraCss = lib.mkOption { 40 53 type = lib.types.either lib.types.path lib.types.lines; 41 54 default = ""; ··· 50 63 config = lib.mkIf cfg.enable { 51 64 services.greetd = { 52 65 enable = lib.mkDefault true; 53 - settings.default_session.command = lib.mkDefault "${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} -s -- ${lib.getExe cfg.package}"; 66 + settings.default_session.command = lib.mkDefault "${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} ${lib.escapeShellArgs cfg.cageArgs} -- ${lib.getExe cfg.package}"; 54 67 }; 55 68 56 69 environment.etc = {