diff options
Diffstat (limited to 'sys/kiosk/default.nix')
| -rw-r--r-- | sys/kiosk/default.nix | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/sys/kiosk/default.nix b/sys/kiosk/default.nix new file mode 100644 index 0000000..be20829 --- /dev/null +++ b/sys/kiosk/default.nix @@ -0,0 +1,48 @@ +{ + config, + lib, + ... +}: +with lib; let + cfg = config.local.kiosk; +in { + options.local.kiosk = { + enable = mkEnableOption "kiosk mode"; + + program = mkOption { + type = types.str; + }; + + user = mkOption { + type = types.str; + }; + + allowVTSwitch = mkOption { + type = types.bool; + default = false; + }; + }; + + config = mkIf cfg.enable { + services = { + cage = { + enable = true; + inherit (cfg) program user; + + extraArguments = [ + ( + if cfg.allowVTSwitch + then "-sd" + else "-d" + ) + ]; + }; + + physlock = { + enable = true; + disableSysRq = true; + muteKernelMessages = true; + }; + }; + }; +} |
