From 57180d80bba8a2bd37520c84356c36b0597ee2bc Mon Sep 17 00:00:00 2001 From: Henry Sipp Date: Sat, 28 Jun 2025 13:40:05 -0500 Subject: [PATCH] Hyprlock & idle --- config.nix | 4 +-- flake.nix | 2 +- modules/home-manager/default.nix | 3 +- modules/home-manager/hypridle.nix | 23 +++++++++++++ modules/home-manager/hyprland/looknfeel.nix | 4 +-- modules/home-manager/hyprland/windows.nix | 2 +- modules/home-manager/hyprlock.nix | 38 ++++++++++++++++++--- 7 files changed, 65 insertions(+), 11 deletions(-) create mode 100644 modules/home-manager/hypridle.nix diff --git a/config.nix b/config.nix index 83c646e..3255875 100644 --- a/config.nix +++ b/config.nix @@ -9,7 +9,7 @@ lib: { description = "Main user's email address"; }; theme = lib.mkOption { - type = lib.types.enum ["tokyo-night" "kanagawa" "catppuccin"]; + type = lib.types.enum ["tokyo-night" "kanagawa" "everforest" "catppuccin"]; default = "tokyo-night"; description = "Theme to use for Omarchy configuration"; }; @@ -38,4 +38,4 @@ lib: { ]; }; }; -} \ No newline at end of file +} diff --git a/flake.nix b/flake.nix index c9f94eb..a0020ee 100644 --- a/flake.nix +++ b/flake.nix @@ -32,7 +32,7 @@ }; }; }; - + homeManagerModules = { default = { config, diff --git a/modules/home-manager/default.nix b/modules/home-manager/default.nix index fbdab9f..0ee8836 100644 --- a/modules/home-manager/default.nix +++ b/modules/home-manager/default.nix @@ -7,8 +7,9 @@ inputs: { in { imports = [ (import ./hyprland.nix inputs) + (import ./hyprlock.nix inputs) (import ./hyprpaper.nix) - # (import ./hyprlock.nix) + (import ./hypridle.nix) (import ./alacritty.nix) (import ./btop.nix) (import ./direnv.nix) diff --git a/modules/home-manager/hypridle.nix b/modules/home-manager/hypridle.nix new file mode 100644 index 0000000..0721547 --- /dev/null +++ b/modules/home-manager/hypridle.nix @@ -0,0 +1,23 @@ +{...}: { + services.hypridle = { + enable = true; + settings = { + general = { + lock_cmd = "pidof hyprlock || hyprlock"; + before_sleep_cmd = "loginctl lock-session"; + after_sleep_cmd = "hyprctl dispatch dpms on"; + }; + listener = [ + { + timeout = 300; + on-timeout = "loginctl lock-session"; + } + { + timeout = 330; + on-timeout = "hyprctl dispatch dpms off"; + on-resume = "hyprctl dispatch dpms on && brightnessctl -r"; + } + ]; + }; + }; +} diff --git a/modules/home-manager/hyprland/looknfeel.nix b/modules/home-manager/hyprland/looknfeel.nix index e3dea48..710bd79 100644 --- a/modules/home-manager/hyprland/looknfeel.nix +++ b/modules/home-manager/hyprland/looknfeel.nix @@ -85,9 +85,9 @@ in { }; dwindle = { - pseudotile = true; + pseudotile = true; preserve_split = true; - force_split = 2; + force_split = 2; }; master = { diff --git a/modules/home-manager/hyprland/windows.nix b/modules/home-manager/hyprland/windows.nix index 597d7d6..94aeed7 100644 --- a/modules/home-manager/hyprland/windows.nix +++ b/modules/home-manager/hyprland/windows.nix @@ -11,7 +11,7 @@ # Force chromium into a tile to deal with --app bug "tile, class:^(chromium)$" - # Just dash of transparency + # Just dash of transparency "opacity 0.97 0.9, class:.*" "opacity 1 0.97, class:^(chromium|google-chrome|google-chrome-unstable)$" "opacity 0.97 0.9, initialClass:^(chrome-.*-Default)$ # web apps" diff --git a/modules/home-manager/hyprlock.nix b/modules/home-manager/hyprlock.nix index 605775a..2131050 100644 --- a/modules/home-manager/hyprlock.nix +++ b/modules/home-manager/hyprlock.nix @@ -1,17 +1,21 @@ -{ +inputs: { config, pkgs, + lib, ... }: let cfg = config.omarchy; themes = import ../themes.nix; theme = themes.${cfg.theme}; - rgba = inputs.nix-colors.lib.hexToRgba "#3c3836"; + + backgroundRgb = "rgb(${inputs.nix-colors.lib.conversions.hexToRGBString ", " (builtins.substring 1 6 theme.background)})"; + surfaceRgb = "rgb(${inputs.nix-colors.lib.conversions.hexToRGBString ", " (builtins.substring 1 6 theme.surface)})"; + foregroundRgb = "rgb(${inputs.nix-colors.lib.conversions.hexToRGBString ", " (builtins.substring 1 6 theme.foreground)})"; + foregroundMutedRgb = "rgb(${inputs.nix-colors.lib.conversions.hexToRGBString ", " (builtins.substring 1 6 theme.foreground_muted)})"; in { programs.hyprlock = { enable = true; settings = { - source = "colors.conf"; general = { disable_loading_bar = true; no_fade_in = false; @@ -21,7 +25,33 @@ in { }; background = { monitor = ""; - color = rgba; # You can now use the rgba value here + color = backgroundRgb; + }; + + input-field = { + monitor = ""; + size = "600, 100"; + position = "0, 0"; + halign = "center"; + valign = "center"; + + # inner_color = "rgba(45,53,59,0.8)"; # #2d353b with opacity + inner_color = surfaceRgb; + outer_color = foregroundRgb; # #d3c6aa + outline_thickness = 4; + + font_family = "CaskaydiaMono Nerd Font"; + font_size = 32; + font_color = foregroundRgb; + + placeholder_color = foregroundMutedRgb; + placeholder_text = "Enter Password"; + check_color = "rgba(131, 192, 146, 1.0)"; + fail_text = "Wrong"; + + rounding = 0; + shadow_passes = 0; + fade_on_empty = false; }; }; };