diff --git a/nixos/home/desktop/hyprland/clipboard-rofi.nix b/nixos/home/desktop/hyprland/clipboard-rofi.nix index e5b87be..5eb2a64 100644 --- a/nixos/home/desktop/hyprland/clipboard-rofi.nix +++ b/nixos/home/desktop/hyprland/clipboard-rofi.nix @@ -6,10 +6,10 @@ }: { options = { - rofi.clipboard.enable = lib.mkEnableOption "rofi-clipboard"; + desktop.hyprland.rofi.clipboard.enable = lib.mkEnableOption "rofi-clipboard"; }; - config = lib.mkIf config.rofi.clipboard.enable { + config = lib.mkIf config.desktop.hyprland.rofi.clipboard.enable { home.file = { ".config/rofi/cliboard.rasi".source = ../../../../config/clipboard.rasi; }; diff --git a/nixos/home/desktop/hyprland/hyprland.nix b/nixos/home/desktop/hyprland/hyprland.nix index cc21915..019a063 100644 --- a/nixos/home/desktop/hyprland/hyprland.nix +++ b/nixos/home/desktop/hyprland/hyprland.nix @@ -14,13 +14,19 @@ ./waybar.nix ./rofi.nix ./wlogout.nix + ./hyprlock.nix ]; config = lib.mkIf config.desktop.hyprland.enable { - waybar.enable = lib.mkDefault true; - rofi.enable = lib.mkDefault true; - rofi.clipboard.enable = lib.mkDefault true; - wlogout.enable = lib.mkDefault true; + desktop.hyprland = { + waybar.enable = lib.mkDefault true; + rofi = { + enable = lib.mkDefault true; + clipboard.enable = lib.mkDefault true; + }; + hyprlock.enable = lib.mkDefault true; + wlogout.enable = lib.mkDefault true; + }; xdg.portal.enable = true; xdg.portal.config = { @@ -32,6 +38,7 @@ services.network-manager-applet.enable = true; services.dunst.enable = true; + programs.hyprlock.enable = true; home.sessionVariables = { WLR_NO_HARDWARE_CURSORS = "1"; diff --git a/nixos/home/desktop/hyprland/hyprlock.nix b/nixos/home/desktop/hyprland/hyprlock.nix new file mode 100644 index 0000000..38e646c --- /dev/null +++ b/nixos/home/desktop/hyprland/hyprlock.nix @@ -0,0 +1,88 @@ +{ + lib, + config, + ... +}: { + options = { + desktop.hyprland.hyprlock.enable = lib.mkEnableOption "Enable hyprlock"; + }; + + config = lib.mkIf config.desktop.hyprland.hyprlock.enable { + programs.hyprlock = { + enable = true; + + settings = { + general = { + disable_loading_bar = true; + hide_cursor = true; + }; + + background = { + monitor = ""; + # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations + blur_passes = 0; # 0 disables blurring + blur_size = 3; + noise = 0.0117; + contrast = 0.8916; + brightness = 0.8172; + vibrancy = 0.1696; + vibrancy_darkness = 0.0; + }; + + image = { + monitor = ""; + #path = ~/.face.icon + size = 100; + border_color = "$accent"; + + position = "0, 75"; + halign = "center"; + valign = "center"; + }; + + input-field = { + monitor = ""; + size = "200, 50"; + outline_thickness = 0; + dots_size = 0.33; # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.15; # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = false; + dots_rounding = -1; # -1 default circle, -2 follow input-field rounding + #outer_color = "$accent"; + #inner_color = "$surface0"; + #font_color = "$text"; + fade_on_empty = true; + fade_timeout = 1000; # Milliseconds before fade_on_empty is triggered. + #placeholder_text = '\'Password...'\'; + hide_input = false; + rounding = -1; # -1 means complete rounding (circle/oval) + #check_color = "$accent"; + #fail_color = "$red"; # if authentication failed, changes outer_color and fail message color + fail_text = "$FAIL ($ATTEMPTS)"; # can be set to empty + fail_transition = 300; # transition time in ms between normal outer_color and fail_color + #capslock_color = "$yellow"; + numlock_color = -1; + bothlock_color = -1; # when both locks are active. -1 means don't change outer color (same for above) + invert_numlock = false; # change color if numlock is off + swap_font_color = false; # see below + + position = "0, -20"; + halign = "center"; + valign = "center"; + }; + + label = { + monitor = ""; + text = "$TIME $LAYOUT[!, cz, ru]"; + color = "$text"; + font_size = 40; + #font_family = "Monaspace Xenon"; + + position = "0, 80"; + halign = "center"; + valign = "center"; + }; + }; + }; + }; +} diff --git a/nixos/home/desktop/hyprland/rofi.nix b/nixos/home/desktop/hyprland/rofi.nix index c1a77d1..0036a00 100644 --- a/nixos/home/desktop/hyprland/rofi.nix +++ b/nixos/home/desktop/hyprland/rofi.nix @@ -5,14 +5,14 @@ ... }: { options = { - rofi.enable = lib.mkEnableOption "enable Rofi module"; + desktop.hyprland.rofi.enable = lib.mkEnableOption "enable Rofi module"; }; imports = [ ./clipboard-rofi.nix ]; - config = lib.mkIf config.rofi.enable { + config = lib.mkIf config.desktop.hyprland.rofi.enable { programs.rofi = { enable = true; cycle = true; diff --git a/nixos/home/desktop/hyprland/waybar.nix b/nixos/home/desktop/hyprland/waybar.nix index 9bbf081..a7e4403 100644 --- a/nixos/home/desktop/hyprland/waybar.nix +++ b/nixos/home/desktop/hyprland/waybar.nix @@ -5,10 +5,10 @@ ... }: { options = { - waybar.enable = lib.mkEnableOption "enable Waybar module"; + desktop.hyprland.waybar.enable = lib.mkEnableOption "enable Waybar module"; }; - config = lib.mkIf config.waybar.enable { + config = lib.mkIf config.desktop.hyprland.waybar.enable { home.packages = [ pkgs.waybar ]; diff --git a/nixos/home/desktop/hyprland/wlogout.nix b/nixos/home/desktop/hyprland/wlogout.nix index 5ff2df0..e0a8643 100644 --- a/nixos/home/desktop/hyprland/wlogout.nix +++ b/nixos/home/desktop/hyprland/wlogout.nix @@ -5,10 +5,10 @@ ... }: { options = { - wlogout.enable = lib.mkEnableOption "enable wlogout module"; + desktop.hyprland.wlogout.enable = lib.mkEnableOption "enable wlogout module"; }; - config = lib.mkIf config.wlogout.enable { + config = lib.mkIf config.desktop.hyprland.wlogout.enable { programs.wlogout = { enable = true; layout = [