From 6cc4fd6ede4909226cb81d3475834251ed1b7210 Mon Sep 17 00:00:00 2001 From: "Gregory C. Oakes" Date: Sat, 1 Feb 2020 10:17:58 -0800 Subject: [PATCH] screen-locker: made xss-lock a systemd service. Takes advantage of the new `--session` xss-lock parameter to allow xss-lock be made into a systemd service. PR #1015 --- modules/services/screen-locker.nix | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/modules/services/screen-locker.nix b/modules/services/screen-locker.nix index 2d0fc7588..30591a7d1 100644 --- a/modules/services/screen-locker.nix +++ b/modules/services/screen-locker.nix @@ -65,12 +65,21 @@ in { }; }; - # xss-lock will run specified screen locker when the session is locked via loginctl - # can't be started as a systemd service, - # see https://bitbucket.org/raymonad/xss-lock/issues/13/allow-operation-as-systemd-user-unit - xsession.initExtra = "${pkgs.xss-lock}/bin/xss-lock ${ - concatStringsSep " " cfg.xssLockExtraOptions - } -- ${cfg.lockCmd} &"; + systemd.user.services.xss-lock = { + Unit = { + Description = "xss-lock, session locker service"; + After = [ "graphical-session-pre.target" ]; + PartOf = [ "graphical-session.target" ]; + }; + + Install = { WantedBy = [ "graphical-session.target" ]; }; + + Service = { + ExecStart = concatStringsSep " " + ([ "${pkgs.xss-lock}/bin/xss-lock" "-s \${XDG_SESSION_ID}" ] + ++ cfg.xssLockExtraOptions ++ [ "-- ${cfg.lockCmd}" ]); + }; + }; }; }