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 = [