diff options
| -rw-r--r-- | modules/home-manager/default.nix | 2 | ||||
| -rw-r--r-- | modules/home-manager/hyprlock.nix | 113 | ||||
| -rw-r--r-- | modules/home-manager/swayidle.nix | 29 |
3 files changed, 144 insertions, 0 deletions
diff --git a/modules/home-manager/default.nix b/modules/home-manager/default.nix index 9293d1a..95f326a 100644 --- a/modules/home-manager/default.nix +++ b/modules/home-manager/default.nix @@ -17,5 +17,7 @@ ./waybar.nix ./firefox.nix ./spicetify.nix + ./hyprlock.nix + ./swayidle.nix ]; } diff --git a/modules/home-manager/hyprlock.nix b/modules/home-manager/hyprlock.nix new file mode 100644 index 0000000..99810d2 --- /dev/null +++ b/modules/home-manager/hyprlock.nix @@ -0,0 +1,113 @@ +{ + config, + lib, + username, + ... +}: + +{ + options.hyprlock.enable = lib.mkEnableOption "Hyprlock is a screen locker for Hyprland."; + config = lib.mkIf config.hyprlock.enable { + programs.hyprlock = { + enable = true; + settings = { + general = { + immediate_render = true; + }; + + background = [ + { + monitor = ""; + path = "/etc/nixos/images/pond.jpg"; + } + ]; + + input-field = [ + { + monitor = ""; + size = "300, 30"; + outline_thickness = 0; + dots_size = 0.25; + dots_spacing = 0.55; + dots_center = true; + dots_rounding = -1; + outer_color = "rgba(242, 243, 244, 0)"; + inner_color = "rgba(242, 243, 244, 0)"; + font_color = "rgba(242, 243, 244, 0.75)"; + fade_on_empty = false; + placeholder_text = ""; + hide_input = false; + check_color = "rgba(204, 136, 34, 0)"; + fail_color = "rgba(204, 34, 34, 0)"; + fail_text = "$FAIL <b>($ATTEMPTS)</b>"; + fail_transition = 300; + capslock_color = -1; + numlock_color = -1; + bothlock_color = -1; + invert_numlock = false; + swap_font_color = false; + position = "0, -468"; + halign = "center"; + valign = "center"; + } + ]; + + label = [ + { + monitor = ""; + text = ''cmd[update:1000] echo "$(date +"%A, %B %d")"''; + color = "rgba(242, 243, 244, 0.75)"; + font_size = 20; + position = "0, 405"; + halign = "center"; + valign = "center"; + } + { + monitor = ""; + text = ''cmd[update:1000] echo "$(date +"%k:%M")"''; + color = "rgba(242, 243, 244, 0.75)"; + font_size = 93; + position = "0, 310"; + halign = "center"; + valign = "center"; + } + { + monitor = ""; + text = "${username}"; + color = "rgba(242, 243, 244, 0.75)"; + font_size = 12; + position = "0, -407"; + halign = "center"; + valign = "center"; + } + { + monitor = ""; + text = "Enter Password"; + color = "rgba(242, 243, 244, 0.75)"; + font_size = 10; + position = "0, -438"; + halign = "center"; + valign = "center"; + } + ]; + + image = [ + { + monitor = ""; + path = "/etc/nixos/images/pf.jpg"; + border_color = "0xffdddddd"; + border_size = 0; + size = 73; + rounding = -1; + rotate = 0; + reload_time = -1; + reload_cmd = ""; + position = "0, -353"; + halign = "center"; + valign = "center"; + } + ]; + }; + }; + }; +} diff --git a/modules/home-manager/swayidle.nix b/modules/home-manager/swayidle.nix new file mode 100644 index 0000000..33cd495 --- /dev/null +++ b/modules/home-manager/swayidle.nix @@ -0,0 +1,29 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + options.swayidle.enable = lib.mkEnableOption "Enable swayidle configuration"; + config = lib.mkIf config.swayidle.enable { + services.swayidle = { + enable = true; + timeouts = [ + { + timout = "600"; + command = "${pkgs.sway}/bin/swaymsg output * dpms off"; + } + { + timout = "900"; + command = "${pkgs.systemd}/bin/systemctl suspend"; + } + ]; + events = [ + { event = "resume"; command = "${pkgs.sway}/bin/swaymsg output * dpms on"; } + { event = "before-sleep"; command = "${pkgs.hyprlock}/bin/hyprlock"; } + ]; + }; + }; +} |
