]> Git — Sourcephile - julm/julm-nix.git/blob - home-manager/profiles/screen-locker.nix
xmonad: rofi: import more environment variables
[julm/julm-nix.git] / home-manager / profiles / screen-locker.nix
1 {
2 pkgs,
3 lib,
4 config,
5 ...
6 }:
7 with lib;
8 {
9 options.services.xsecurelock = {
10 settings = mkOption {
11 description = "xsecurelock settings";
12 type = lib.types.submodule {
13 freeformType = with types; attrsOf str;
14 };
15 default = { };
16 };
17 };
18 config = {
19 services.xsecurelock.settings = {
20 #XSECURELOCK_DATETIME_FORMAT = mkDefault "";
21 #XSECURELOCK_KEY_%s_COMMAND = mkDefault "";
22 #XSECURELOCK_SWITCH_USER_COMMAND = mkDefault "${pkgs.lightdm}/bin/dm-tool switch-to-greeter";
23 XSECURELOCK_BLANK_DPMS_STATE = mkDefault "off";
24 XSECURELOCK_BLANK_TIMEOUT = mkDefault "1";
25 XSECURELOCK_BURNIN_MITIGATION = mkDefault "100";
26 XSECURELOCK_BURNIN_MITIGATION_DYNAMIC = mkDefault "1";
27 XSECURELOCK_DIM_TIME_MS = mkDefault "2000";
28 XSECURELOCK_DISCARD_FIRST_KEYPRESS = mkDefault "0";
29 XSECURELOCK_FONT = mkDefault "monospace:size=12";
30 XSECURELOCK_PASSWORD_PROMPT = mkDefault "cursor";
31 XSECURELOCK_SAVER = mkDefault "saver_blank";
32 XSECURELOCK_SHOW_DATETIME = mkDefault "1";
33 XSECURELOCK_SHOW_HOSTNAME = mkDefault "1";
34 XSECURELOCK_SHOW_USERNAME = mkDefault "1";
35 XSECURELOCK_WAIT_TIME_MS = mkDefault "2000";
36 };
37 home.packages = [
38 pkgs.xsecurelock
39 pkgs.xss-lock
40 ];
41 services.screen-locker = {
42 enable = true;
43 lockCmd = toString (
44 pkgs.writeShellScript "xsecurelock" ''
45 export PATH=${
46 with pkgs;
47 makeBinPath [
48 coreutils
49 gnugrep
50 xsecurelock
51 xorg.xset
52 ]
53 }
54 ${concatMapStringsSep "\n" (
55 { name, value }: "export " + escapeShellArg name + "=" + escapeShellArg value
56 ) (attrsToList config.services.xsecurelock.settings)}
57 ${pkgs.xsecurelock}/bin/xsecurelock
58 ''
59 );
60 inactiveInterval = mkDefault 3; # minutes
61 xautolock.detectSleep = true;
62 xss-lock.extraOptions = [
63 "--transfer-sleep-lock"
64 #"-n" "${pkgs.xss-lock}/share/doc/xss-lock/dim-screen.sh"
65 ];
66 };
67 };
68 }