diff options
author | sinanmohd <sinan@sinanmohd.com> | 2023-11-27 11:19:36 +0530 |
---|---|---|
committer | sinanmohd <sinan@sinanmohd.com> | 2023-11-27 20:54:09 +0530 |
commit | 824fcd344e42c54a4cbdedc8f7a11d3520218649 (patch) | |
tree | fb5305d4c5ee6d0edf90bcbd6b46e2f2e3496710 /modules | |
parent | 0b8e24c80ad0a5e9e97b0aedd17357199b82c369 (diff) |
modules/seatd: drop upstreamed changes
Diffstat (limited to 'modules')
-rw-r--r-- | modules/logind.nix | 121 | ||||
-rw-r--r-- | modules/seatd.nix | 51 |
2 files changed, 0 insertions, 172 deletions
diff --git a/modules/logind.nix b/modules/logind.nix deleted file mode 100644 index 5e6dcdf..0000000 --- a/modules/logind.nix +++ /dev/null @@ -1,121 +0,0 @@ -{ config, lib, ... }: - -let - cfg = config.services.logind; - inherit (lib) mkOption types; - - logindHandlerType = types.enum [ - "ignore" "poweroff" "reboot" "halt" "kexec" "suspend" - "hibernate" "hybrid-sleep" "suspend-then-hibernate" "lock" - ]; -in -{ - options.services.logind = { - enable = mkOption { - default = true; - description = "Whether to enable logind."; - type = types.bool; - }; - - extraConfig = mkOption { - default = ""; - type = types.lines; - example = "IdleAction=lock"; - description = lib.mdDoc '' - Extra config options for systemd-logind. See - [ - logind.conf(5)](https://www.freedesktop.org/software/systemd/man/logind.conf.html) for available options. - ''; - }; - - killUserProcesses = mkOption { - default = false; - type = types.bool; - description = lib.mdDoc '' - Specifies whether the processes of a user should be killed - when the user logs out. If true, the scope unit corresponding - to the session and all processes inside that scope will be - terminated. If false, the scope is "abandoned" (see - [systemd.scope(5)](https://www.freedesktop.org/software/systemd/man/systemd.scope.html#)), and processes are not killed. - - See [logind.conf(5)](https://www.freedesktop.org/software/systemd/man/logind.conf.html#KillUserProcesses=) - for more details. - ''; - }; - - lidSwitch = mkOption { - default = "suspend"; - example = "ignore"; - type = logindHandlerType; - - description = lib.mdDoc '' - Specifies what to be done when the laptop lid is closed. - ''; - }; - - lidSwitchDocked = mkOption { - default = "ignore"; - example = "suspend"; - type = logindHandlerType; - - description = lib.mdDoc '' - Specifies what to be done when the laptop lid is closed - and another screen is added. - ''; - }; - - lidSwitchExternalPower = mkOption { - default = cfg.lidSwitch; - defaultText = lib.literalExpression "services.logind.lidSwitch"; - example = "ignore"; - type = logindHandlerType; - - description = lib.mdDoc '' - Specifies what to do when the laptop lid is closed and the system is - on external power. By default use the same action as specified in - services.logind.lidSwitch. - ''; - }; - }; - - config = lib.mkIf cfg.enable { - systemd.additionalUpstreamSystemUnits = [ - "systemd-logind.service" - "autovt@.service" - "systemd-user-sessions.service" - ] ++ lib.optionals config.systemd.package.withImportd [ - "dbus-org.freedesktop.import1.service" - ] ++ lib.optionals config.systemd.package.withMachined [ - "dbus-org.freedesktop.machine1.service" - ] ++ lib.optionals config.systemd.package.withPortabled [ - "dbus-org.freedesktop.portable1.service" - ] ++ [ - "dbus-org.freedesktop.login1.service" - "user@.service" - "user-runtime-dir@.service" - ]; - - environment.etc = { - "systemd/logind.conf".text = '' - [Login] - KillUserProcesses=${if cfg.killUserProcesses then "yes" else "no"} - HandleLidSwitch=${cfg.lidSwitch} - HandleLidSwitchDocked=${cfg.lidSwitchDocked} - HandleLidSwitchExternalPower=${cfg.lidSwitchExternalPower} - ${cfg.extraConfig} - ''; - }; - - # Restarting systemd-logind breaks X11 - # - upstream commit: https://cgit.freedesktop.org/xorg/xserver/commit/?id=dc48bd653c7e101 - # - systemd announcement: https://github.com/systemd/systemd/blob/22043e4317ecd2bc7834b48a6d364de76bb26d91/NEWS#L103-L112 - # - this might be addressed in the future by xorg - #systemd.services.systemd-logind.restartTriggers = [ config.environment.etc."systemd/logind.conf".source ]; - systemd.services.systemd-logind.restartIfChanged = false; - systemd.services.systemd-logind.stopIfChanged = false; - - # The user-runtime-dir@ service is managed by systemd-logind we should not touch it or else we break the users' sessions. - systemd.services."user-runtime-dir@".stopIfChanged = false; - systemd.services."user-runtime-dir@".restartIfChanged = false; - }; -} diff --git a/modules/seatd.nix b/modules/seatd.nix deleted file mode 100644 index 51977df..0000000 --- a/modules/seatd.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - cfg = config.services.seatd; - inherit (lib) mkEnableOption mkOption mdDoc types; -in -{ - meta.maintainers = with lib.maintainers; [ sinanmohd ]; - - options.services.seatd = { - enable = mkEnableOption (mdDoc "seatd"); - - user = mkOption { - type = types.str; - default = "root"; - description = mdDoc "User to own the seatd socket"; - }; - group = mkOption { - type = types.str; - default = "seat"; - description = mdDoc "Group to own the seatd socket"; - }; - logLevel = mkOption { - type = types.enum [ "debug" "info" "error" "silent" ]; - default = "info"; - description = mdDoc "Logging verbosity"; - }; - }; - - config = lib.mkIf cfg.enable { - environment.systemPackages = with pkgs; [ seatd sdnotify-wrapper ]; - users.groups.seat = lib.mkIf (cfg.group == "seat") {}; - - systemd.services.seatd = { - description = "Seat management daemon"; - documentation = [ "man:seatd(1)" ]; - - wantedBy = [ "multi-user.target" ]; - restartIfChanged = false; - - serviceConfig = { - Type = "notify"; - NotifyAccess = "all"; - SyslogIdentifier = "seatd"; - ExecStart = "${pkgs.sdnotify-wrapper}/bin/sdnotify-wrapper ${pkgs.seatd.bin}/bin/seatd -n 1 -u ${cfg.user} -g ${cfg.group} -l ${cfg.logLevel}"; - RestartSec = 1; - Restart = "always"; - }; - }; - }; -} |