zaphyra's git: nixfiles

zaphyra's nixfiles

commit 66f9a4d69043db61c237c82ee9069dc5855b26c9
parent 57ae4c9b4243694ed730723dd9b93b2ffbac6a22
Author: Katja Ramona Sophie Kwast (zaphyra) <git@zaphyra.eu>
Date: Wed, 27 Aug 2025 17:12:55 +0200

config: add `gtklock`
2 files changed, 59 insertions(+), 0 deletions(-)
A
config/home-manager/zaphyra/programs/gtklock.nix
|
17
+++++++++++++++++
A
config/nixos/modules/services/gtklock.nix
|
42
++++++++++++++++++++++++++++++++++++++++++
diff --git a/config/home-manager/zaphyra/programs/gtklock.nix b/config/home-manager/zaphyra/programs/gtklock.nix
@@ -0,0 +1,17 @@
+{ pkgs, ... }:
+
+{
+
+  tgc.programs.gtklock = {
+    enable = false;
+    systemd.enable = true;
+    settings.main = {
+      idle-hide = true;
+      idle-timeout = 10;
+    };
+    modules = [
+      pkgs.gtklock-playerctl-module
+    ];
+  };
+
+}
diff --git a/config/nixos/modules/services/gtklock.nix b/config/nixos/modules/services/gtklock.nix
@@ -0,0 +1,42 @@
+{
+  povSelf,
+  config,
+  lib,
+  pkgs,
+  ...
+}:
+let
+  inherit (lib) types;
+  cfg = lib.getAttrFromPath povSelf config;
+
+in
+{
+
+  options.enable = {
+    type = types.bool;
+    default = false;
+  };
+
+  config = lib.mkIf cfg.enable {
+    security.pam.services.gtklock = { };
+
+    services.systemd-lock-handler.enable = true;
+
+    home-manager.sharedModules = [
+      {
+        systemd.user.services = {
+          gtklock = lib.mkDefault {
+            Unit.OnSuccess = [ "unlock.target" ];
+            Unit.PartOf = [ "lock.target" ];
+            Unit.After = [ "lock.target" ];
+            Install.WantedBy = [ "lock.target" ];
+            Service.ExecStart = lib.getExe pkgs.gtklock;
+            Service.Restart = "on-failure";
+            Service.RestartSec = 0;
+          };
+        };
+      }
+    ];
+  };
+
+}