diff --git a/modules/home/programs/hyprland/default.nix b/modules/home/programs/hyprland/default.nix index 8d5cba1..18e3110 100644 --- a/modules/home/programs/hyprland/default.nix +++ b/modules/home/programs/hyprland/default.nix @@ -113,11 +113,92 @@ in # Services services = { hyprpolkitagent.enable = true; + hyprpaper = { + enable = true; + settings = { + preload = [ "/run/wallpaper.jpg" ]; + wallpaper = [ + "DP-1, /run/wallpaper.jpg" + "DP-2, /run/wallpaper.jpg" + ]; + splash = false; + }; + }; + + hypridle = { + enable = true; + settings = { + general = { + before_sleep_cmd = "loginctl lock-session"; # lock before suspend. + after_sleep_cmd = "hyprctl dispatch dpms on"; # to avoid having to press a key twice to turn on the display. + ignore_dbus_inhibit = false; + lock_cmd = "pidof hyprlock || hyprlock"; # avoid starting multiple hyprlock instances. + }; + listener = [ + # { + # timeout = 300; # 5min + # on-timeout = "brightnessctl -s set 10"; # set monitor backlight to minimum, avoid 0 on OLED monitor. + # on-resume = "brightnessctl -r"; # monitor backlight restore. + # } + { + timeout = 900; # 15 min + on-timeout = "loginctl lock-session"; # lock screen when timeout has passed + } + { + timeout = 930; # 15.5 min + on-timeout = "hyprctl dispatch dpms off"; # screen off when timeout has passed + on-resume = "hyprctl dispatch dpms on"; # screen on when activity is detected after timeout has fired. + } + { + timeout = 3600; # 1hr + on-timeout = "systemctl suspend"; # suspend pc + } + ]; + }; + }; }; # Programs programs = { vscode.profiles.default.userSettings."window"."titleBarStyle" = "custom"; + + hyprlock = { + enable = true; + settings = { + background = [ + { + monitor = ""; + path = "/run/wallpaper.jpg"; # supports png, jpg, webp (no animations, though) + color = "rgba(25, 20, 20, 1.0)"; + + # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations + blur_passes = "3"; # 0 disables blurring + blur_size = "7"; + noise = "0.0117"; + contrast = "0.8916"; + brightness = "0.8172"; + vibrancy = "0.1696"; + vibrancy_darkness = "0.0"; + } + ]; + input-field = [ + { + size = "200, 50"; + position = "0, -80"; + monitor = "DP-1"; + dots_center = true; + fade_on_empty = true; + font_color = "rgb(202, 211, 245)"; + inner_color = "rgb(91, 96, 120)"; + outer_color = "rgb(24, 25, 38)"; + bothlock_color = -1; + outline_thickness = 5; + placeholder_text = ''Password...''; + shadow_passes = 2; + } + ]; + }; + }; }; # Wayland configuration