diff options
| author | Ophestra Umiker <cat@ophivana.moe> | 2024-09-08 02:45:00 +0900 |
|---|---|---|
| committer | Ophestra Umiker <cat@ophivana.moe> | 2024-09-08 02:45:00 +0900 |
| commit | 60e48465423ded979dfe8cbb09b5635d6ee2802b (patch) | |
| tree | 6e971fdc7cbe28f89db69d4d5d1713dd9e7abb60 /nixos.nix | |
| parent | 19068533823f22e9fd398d7bf6acf6dd09ee7b64 (diff) | |
nix: provide options for capability flags
Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
Diffstat (limited to 'nixos.nix')
| -rw-r--r-- | nixos.nix | 49 |
1 files changed, 40 insertions, 9 deletions
@@ -63,12 +63,38 @@ in ''; }; - pulse = mkOption { - type = bool; - default = true; - description = '' - Whether to share the PulseAudio socket and cookie. - ''; + capability = { + wayland = mkOption { + type = bool; + default = true; + description = '' + Whether to share the Wayland socket. + ''; + }; + + x11 = mkOption { + type = bool; + default = false; + description = '' + Whether to share the X11 socket and allow connection. + ''; + }; + + dbus = mkOption { + type = bool; + default = false; + description = '' + Whether to proxy D-Bus. + ''; + }; + + pulse = mkOption { + type = bool; + default = true; + description = '' + Whether to share the PulseAudio socket and cookie. + ''; + }; }; share = mkOption { @@ -164,8 +190,15 @@ in user: launchers: mapAttrsToList ( name: launcher: + with launcher.capability; let command = if launcher.command == null then name else launcher.command; + capArgs = + (if wayland then " -wayland" else "") + + (if x11 then " -X" else "") + + (if dbus then " -dbus" else "") + + (if pulse then " -pulse" else "") + + (if launcher.method == "fortify-sudo" then " -sudo" else ""); in pkgs.writeShellScriptBin name ( if launcher.method == "sudo" then @@ -174,9 +207,7 @@ in '' else '' - exec fortify${if launcher.pulse then " -pulse" else ""} -u ${user}${ - if launcher.method == "fortify-sudo" then " -sudo" else "" - } ${cfg.shell} -c "exec ${command} $@" + exec fortify${capArgs} -u ${user} ${cfg.shell} -c "exec ${command} $@" '' ) ) launchers; |
