diff --git a/flake.lock b/flake.lock
index 9e8f6d3..74e9720 100644
--- a/flake.lock
+++ b/flake.lock
@@ -366,11 +366,11 @@
"wshowkeys": "wshowkeys"
},
"locked": {
- "lastModified": 1786876041,
- "narHash": "sha256-VshRLF8nJ1CB3D09OzoNgXPGVCJo0SOFG740TRJoumE=",
+ "lastModified": 1787049459,
+ "narHash": "sha256-erOg/oPA/0Ov7tfFffKp8A9lnf5teXD7U13LIRB3QOg=",
"ref": "refs/heads/main",
- "rev": "c853222bde4a2ba8e74d4a4a6fe2d1e26f92ddd6",
- "revCount": 54,
+ "rev": "1f00fe9e145cbb48cebd58d64f216672e676a23d",
+ "revCount": 55,
"type": "git",
"url": "https://git.voidarc.co.uk/voidarc/hypr"
},
diff --git a/modules/features/hyprland/default.nix b/modules/features/hyprland/default.nix
index 981f328..474e318 100644
--- a/modules/features/hyprland/default.nix
+++ b/modules/features/hyprland/default.nix
@@ -34,7 +34,6 @@
security.polkit.enable = true;
environment.systemPackages = with pkgs; [
- hyprlock
gsettings-desktop-schemas
];
@@ -68,6 +67,7 @@
kitty = self'.packages.kitty;
gotify-desktop = self'.packages.gotify-desktop;
otter-launcher = self'.packages.otter-launcher;
+ hyprlock = self'.packages.hyprlock;
quickshell = self'.packages.quickshell;
wshowkeys = self'.packages.wshowkeys;
waybar = self'.packages.waybar;
diff --git a/modules/features/hyprlock/cat.png b/modules/features/hyprlock/cat.png
new file mode 100644
index 0000000..deb6a04
Binary files /dev/null and b/modules/features/hyprlock/cat.png differ
diff --git a/modules/features/hyprlock/default.nix b/modules/features/hyprlock/default.nix
new file mode 100644
index 0000000..a7ff428
--- /dev/null
+++ b/modules/features/hyprlock/default.nix
@@ -0,0 +1,17 @@
+{
+ inputs,
+ moduleWithSystem,
+ ...
+}: {
+ flake.nixosModules.hyprlock = moduleWithSystem ({self', ...}: {
+ environment.systemPackages = with self'.packages; [
+ hyprock
+ ];
+ });
+ perSystem = {pkgs, ...}: {
+ packages.hyprlock = inputs.wrappers.wrappers.hyprlock.wrap {
+ inherit pkgs;
+ "hyprlock.conf".path = ./hyprlock.conf;
+ };
+ };
+}
diff --git a/modules/features/hyprlock/hyprlock.conf b/modules/features/hyprlock/hyprlock.conf
new file mode 100644
index 0000000..cfb0912
--- /dev/null
+++ b/modules/features/hyprlock/hyprlock.conf
@@ -0,0 +1,110 @@
+source = ./mocha.conf
+
+$accent = $mauve
+$accentAlpha = $mauveAlpha
+$font = FiraMono Nerd Font
+
+# GENERAL
+general {
+ hide_cursor = true
+}
+
+# BACKGROUND
+background {
+ monitor =
+ path = screenshot
+ blur_passes = 3
+ color = rgba(0, 0, 0, 0)
+}
+
+
+# LAYOUT
+label {
+ monitor =
+ text = Layout: $LAYOUT
+ color = $text
+ font_size = 25
+ font_family = $font
+ position = 30, -30
+ halign = left
+ valign = top
+}
+
+# TIME
+label {
+ monitor =
+ text = $TIME
+ color = $text
+ font_size = 90
+ font_family = $font
+ position = -30, 0
+ halign = right
+ valign = top
+}
+
+# DATE
+label {
+ monitor =
+ text = cmd[update:43200000] date +"%A, %d %B %Y"
+ color = $text
+ font_size = 25
+ font_family = $font
+ position = -30, -150
+ halign = right
+ valign = top
+}
+
+# FINGERPRINT
+{
+ monitor = "";
+ text = "$FPRINTPROMPT";
+ color = "$text";
+ font_size = 14;
+ font_family = $font;
+ position = "0, -107";
+ halign = "center";
+ valign = "center";
+}
+
+image {
+ path = ./cat.png
+ size = 240
+ border_color = transparent
+ rounding = 0
+ position = 0, 7px
+}
+
+# USER AVATAR
+image {
+ monitor =
+ path = $HOME/.face
+ size = 100
+ border_color = $accent
+ position = 0, 75
+ halign = center
+ valign = center
+}
+
+# INPUT FIELD
+input-field {
+ monitor =
+ size = 300, 60
+ outline_thickness = 4
+ dots_size = 0.2
+ dots_spacing = 0.2
+ dots_center = true
+ outer_color = $accent
+ inner_color = $surface0
+ font_color = $text
+ fade_on_empty = false
+ placeholder_text = Logged in as $USER
+ hide_input = false
+ check_color = $accent
+ fail_color = $red
+ fail_text = $FAIL ($ATTEMPTS)
+ capslock_color = $yellow
+ position = 0, -47
+ halign = center
+ valign = center
+}
+
diff --git a/modules/features/hyprlock/mocha.conf b/modules/features/hyprlock/mocha.conf
new file mode 100644
index 0000000..a7b5dc7
--- /dev/null
+++ b/modules/features/hyprlock/mocha.conf
@@ -0,0 +1,79 @@
+
+$rosewater = rgb(f5e0dc)
+$rosewaterAlpha = f5e0dc
+
+$flamingo = rgb(f2cdcd)
+$flamingoAlpha = f2cdcd
+
+$pink = rgb(f5c2e7)
+$pinkAlpha = f5c2e7
+
+$mauve = rgb(cba6f7)
+$mauveAlpha = cba6f7
+
+$red = rgb(f38ba8)
+$redAlpha = f38ba8
+
+$maroon = rgb(eba0ac)
+$maroonAlpha = eba0ac
+
+$peach = rgb(fab387)
+$peachAlpha = fab387
+
+$yellow = rgb(f9e2af)
+$yellowAlpha = f9e2af
+
+$green = rgb(a6e3a1)
+$greenAlpha = a6e3a1
+
+$teal = rgb(94e2d5)
+$tealAlpha = 94e2d5
+
+$sky = rgb(89dceb)
+$skyAlpha = 89dceb
+
+$sapphire = rgb(74c7ec)
+$sapphireAlpha = 74c7ec
+
+$blue = rgb(89b4fa)
+$blueAlpha = 89b4fa
+
+$lavender = rgb(b4befe)
+$lavenderAlpha = b4befe
+
+$text = rgb(cdd6f4)
+$textAlpha = cdd6f4
+
+$subtext1 = rgb(bac2de)
+$subtext1Alpha = bac2de
+
+$subtext0 = rgb(a6adc8)
+$subtext0Alpha = a6adc8
+
+$overlay2 = rgb(9399b2)
+$overlay2Alpha = 9399b2
+
+$overlay1 = rgb(7f849c)
+$overlay1Alpha = 7f849c
+
+$overlay0 = rgb(6c7086)
+$overlay0Alpha = 6c7086
+
+$surface2 = rgb(585b70)
+$surface2Alpha = 585b70
+
+$surface1 = rgb(45475a)
+$surface1Alpha = 45475a
+
+$surface0 = rgb(313244)
+$surface0Alpha = 313244
+
+$base = rgb(1e1e2e)
+$baseAlpha = 1e1e2eee
+
+$mantle = rgb(181825)
+$mantleAlpha = 181825
+
+$crust = rgb(11111b)
+$crustAlpha = 11111b
+