diff --git a/README.md b/README.md
index 88e542b..4af723c 100644
--- a/README.md
+++ b/README.md
@@ -85,10 +85,10 @@ The showcased images do not reflect the latest version of the system's appearanc
| Recorder | Wf-recorder |
| Color Picker | Hyprpicker |
| Clipboard | Wl-clipboard + Cliphist + Clipboard-jh |
-| Idle | Swayidle |
-| Lock | Swaylock |
+| Idle | Hypridle |
+| Lock | Hyprlock |
| Logout menu | Wlogout |
-| Wallpaper | Wpaperd |
+| Wallpaper | Hyprpaper |
| Graphical Boot | Plymouth + Catppuccin-plymouth |
| Display Manager | Greetd + Tuigreet |
| Containerization | Podman |
@@ -182,7 +182,7 @@ And many other useful utilities. The full list can be found in the system config
| SUPER + Y | Launch `youtube-music` |
| SUPER + SHIFT + D | Launch `discord` |
| SUPER + SHIFT + T | Launch `telegram` |
-| SUPER + SHIFT + L | Launch `swaylock` |
+| SUPER + SHIFT + L | Launch `hyprlock` |
| SUPER + SHIFT + S | Take screenshot |
| SUPER + E | Launch `swappy` to edit last taken screenshot |
| SUPER + R | Record screen area (MP4) |
@@ -276,9 +276,9 @@ Here are some tips to enhance your Rust experience on this system:
This repo contains a NixOS configuration file (`nixos/yubikey.nix`) enabling:
- Yubikey authentication with pam_u2f
- - Passwordless login in greetd, sudo, ssh, and swaylock
+ - Passwordless login in greetd, sudo, ssh, and hyprlock
-🚨 Personal Recommendation: While convenient, using a Yubikey for display managers (like greetd) and screen lockers (like swaylock) without additional two-factor or multi-factor authentication (2FA/MFA) has risks. If your Yubikey is lost or stolen, someone could gain full system access before you reset keys. Yubikeys excel at protecting against online attacks but are less secure against offline attacks.
+🚨 Personal Recommendation: While convenient, using a Yubikey for display managers (like greetd) and screen lockers (like hyprlock) without additional two-factor or multi-factor authentication (2FA/MFA) has risks. If your Yubikey is lost or stolen, someone could gain full system access before you reset keys. Yubikeys excel at protecting against online attacks but are less secure against offline attacks.
🛡️ For enhanced security and a passwordless experience:
You can consider a YubiKey Bio Series device. These keys support FIDO2/WebAuthn and FIDO U2F and has built in fingerprint scanner for strong authentication. Please note, they do not offer Smart card, OpenPGP, or OTP functionality.
diff --git a/home/.config/fish/functions/autostart.fish b/home/.config/fish/functions/autostart.fish
index d9eae61..7b8f1ff 100644
--- a/home/.config/fish/functions/autostart.fish
+++ b/home/.config/fish/functions/autostart.fish
@@ -1,10 +1,3 @@
function autostart
- pypr & \
- wpaperd & \
- waybar & \
- poweralertd & \
- wl-paste --watch cliphist store & \
- avizo-service & \
- systemctl --user start psi-notify &\
- swayidle -w
+ pypr & hyprpaper & waybar & poweralertd & wl-paste --watch cliphist store & avizo-service & systemctl --user start psi-notify & hypridle -w
end
diff --git a/home/.config/helix/config.toml b/home/.config/helix/config.toml
index 7cd152d..652467b 100644
--- a/home/.config/helix/config.toml
+++ b/home/.config/helix/config.toml
@@ -24,7 +24,7 @@ separator = "│"
[editor.lsp]
display-messages = true
-# display-inlay-hints = true
+display-inlay-hints = true
# [editor.file-picker]
# max-depth = 10
diff --git a/home/.config/hypr/hypridle.conf b/home/.config/hypr/hypridle.conf
new file mode 100644
index 0000000..b7816c0
--- /dev/null
+++ b/home/.config/hypr/hypridle.conf
@@ -0,0 +1,34 @@
+general {
+ lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
+ 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.
+}
+
+listener {
+ timeout = 180 # 3min.
+ on-timeout = brightnessctl -s set 15% # set monitor backlight to minimum, avoid 0 on OLED monitor.
+ on-resume = brightnessctl -r # monitor backlight restore.
+}
+
+# turn off keyboard backlight, comment out this section if you dont have a keyboard backlight.
+listener {
+ timeout = 180 # 3min.
+ on-timeout = brightnessctl -sd platform::kbd_backlight set 0 # turn off keyboard backlight.
+ on-resume = brightnessctl -rd platform::kbd_backlight # turn on keyboard backlight.
+}
+
+listener {
+ timeout = 300 # 5min
+ on-timeout = loginctl lock-session # lock screen when timeout has passed
+}
+
+listener {
+ timeout = 350 # 5.83min
+ 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.
+}
+
+listener {
+ timeout = 420 # 7min
+ on-timeout = systemctl suspend # suspend pc
+}
diff --git a/home/.config/hypr/hyprland.conf b/home/.config/hypr/hyprland.conf
index 358c995..057c5b1 100644
--- a/home/.config/hypr/hyprland.conf
+++ b/home/.config/hypr/hyprland.conf
@@ -74,7 +74,7 @@ decoration {
shadow_offset = 0, 0
shadow_render_power = 3
col.shadow = $teal
- col.shadow_inactive = $base;
+ col.shadow_inactive = 0xff$baseAlpha;
active_opacity = 0.7
inactive_opacity = 0.7
@@ -220,7 +220,7 @@ bind = $mainMod, Y, exec, youtube-music
bind = $mainMod, D, exec, rofi -show drun
bind = $mainMod SHIFT, D, exec, firejail --apparmor discord
bind = $mainMod, ESCAPE, exec, fish -c wlogout_uniqe
-bind = $mainMod SHIFT, L, exec, swaylock
+bind = $mainMod SHIFT, L, exec, hyprlock
bind = $mainMod SHIFT, S, exec, fish -c screenshot_to_clipboard
bind = $mainMod, E, exec, fish -c screenshot_edit
bind = $mainMod SHIFT, R, exec, fish -c record_screen_gif
diff --git a/home/.config/hypr/hyprlock.conf b/home/.config/hypr/hyprlock.conf
new file mode 100644
index 0000000..4d64d08
--- /dev/null
+++ b/home/.config/hypr/hyprlock.conf
@@ -0,0 +1,83 @@
+source = $HOME/.config/hypr/macchiato.conf
+
+$accent = $teal
+$accentAlpha = $tealAlpha
+$font = JetBrains Mono Regular
+
+# GENERAL
+general {
+ disable_loading_bar = true
+ hide_cursor = true
+}
+
+# BACKGROUND
+background {
+ monitor =
+ path = ~/background
+ blur_passes = 2
+ color = $base
+}
+
+# TIME
+label {
+ monitor =
+ text = cmd[update:30000] echo "$(date +"%R")"
+ color = $text
+ font_size = 90
+ font_family = $font
+ position = -130, -100
+ halign = right
+ valign = top
+ shadow_passes = 2
+}
+
+# DATE
+label {
+ monitor =
+ text = cmd[update:43200000] echo "$(date +"%A, %d %B %Y")"
+ color = $text
+ font_size = 25
+ font_family = $font
+ position = -130, -250
+ halign = right
+ valign = top
+ shadow_passes = 2
+}
+
+# USER AVATAR
+image {
+ monitor =
+ path = ~/.face
+ size = 100
+ border_color = $accent
+ rounding = -1
+
+ position = 0, 75
+ halign = center
+ valign = center
+ shadow_passes = 2
+}
+
+# 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, -35
+ halign = center
+ valign = center
+ shadow_passes = 2
+}
diff --git a/home/.config/hypr/hyprpaper.conf b/home/.config/hypr/hyprpaper.conf
new file mode 100644
index 0000000..f8f2b18
--- /dev/null
+++ b/home/.config/hypr/hyprpaper.conf
@@ -0,0 +1,5 @@
+preload = ~/background
+wallpaper = ,~/background
+
+ipc = off
+splash = false
diff --git a/home/.config/hypr/macchiato.conf b/home/.config/hypr/macchiato.conf
index 10d064d..9e7071a 100644
--- a/home/.config/hypr/macchiato.conf
+++ b/home/.config/hypr/macchiato.conf
@@ -1,29 +1,78 @@
-$rosewater = 0xfff4dbd6
-$flamingo = 0xfff0c6c6
-$pink = 0xfff5bde6
-$mauve = 0xffc6a0f6
-$red = 0xffed8796
-$maroon = 0xffee99a0
-$peach = 0xfff5a97f
-$green = 0xffa6da95
-$teal = 0xff8bd5ca
-$sky = 0xff91d7e3
-$sapphire = 0xff7dc4e4
-$blue = 0xff8aadf4
-$lavender = 0xffb7bdf8
-$text = 0xffcad3f5
-$subtext1 = 0xffb8c0e0
-$subtext0 = 0xffa5adcb
+$rosewater = rgb(f4dbd6)
+$rosewaterAlpha = f4dbd6
-$overlay2 = 0xff939ab7
-$overlay1 = 0xff8087a2
-$overlay0 = 0xff6e738d
+$flamingo = rgb(f0c6c6)
+$flamingoAlpha = f0c6c6
-$surface2 = 0xff5b6078
-$surface1 = 0xff494d64
-$surface0 = 0xff363a4f
+$pink = rgb(f5bde6)
+$pinkAlpha = f5bde6
-$base = 0xff24273a
-$mantle = 0xff1e2030
-$crust = 0xff181926
+$mauve = rgb(c6a0f6)
+$mauveAlpha = c6a0f6
+
+$red = rgb(ed8796)
+$redAlpha = ed8796
+
+$maroon = rgb(ee99a0)
+$maroonAlpha = ee99a0
+
+$peach = rgb(f5a97f)
+$peachAlpha = f5a97f
+
+$yellow = rgb(eed49f)
+$yellowAlpha = eed49f
+
+$green = rgb(a6da95)
+$greenAlpha = a6da95
+
+$teal = rgb(8bd5ca)
+$tealAlpha = 8bd5ca
+
+$sky = rgb(91d7e3)
+$skyAlpha = 91d7e3
+
+$sapphire = rgb(7dc4e4)
+$sapphireAlpha = 7dc4e4
+
+$blue = rgb(8aadf4)
+$blueAlpha = 8aadf4
+
+$lavender = rgb(b7bdf8)
+$lavenderAlpha = b7bdf8
+
+$text = rgb(cad3f5)
+$textAlpha = cad3f5
+
+$subtext1 = rgb(b8c0e0)
+$subtext1Alpha = b8c0e0
+
+$subtext0 = rgb(a5adcb)
+$subtext0Alpha = a5adcb
+
+$overlay2 = rgb(939ab7)
+$overlay2Alpha = 939ab7
+
+$overlay1 = rgb(8087a2)
+$overlay1Alpha = 8087a2
+
+$overlay0 = rgb(6e738d)
+$overlay0Alpha = 6e738d
+
+$surface2 = rgb(5b6078)
+$surface2Alpha = 5b6078
+
+$surface1 = rgb(494d64)
+$surface1Alpha = 494d64
+
+$surface0 = rgb(363a4f)
+$surface0Alpha = 363a4f
+
+$base = rgb(24273a)
+$baseAlpha = 24273a
+
+$mantle = rgb(1e2030)
+$mantleAlpha = 1e2030
+
+$crust = rgb(181926)
+$crustAlpha = 181926
diff --git a/home/.config/swayidle/config b/home/.config/swayidle/config
deleted file mode 100644
index edff6ec..0000000
--- a/home/.config/swayidle/config
+++ /dev/null
@@ -1,5 +0,0 @@
-timeout 180 'brightnessctl -s && brightnessctl s 15%' resume 'brightnessctl -r'
-timeout 300 'swaylock'
-timeout 350 'brightnessctl s 0%' resume 'brightnessctl -r'
-timeout 420 'systemctl suspend'
-before-sleep 'swaylock'
\ No newline at end of file
diff --git a/home/.config/swaylock/config b/home/.config/swaylock/config
deleted file mode 100644
index 5c860f8..0000000
--- a/home/.config/swaylock/config
+++ /dev/null
@@ -1,33 +0,0 @@
-daemonize
-indicator
-clock
-screenshots
-
-effect-blur=11x11
-effect-compose=1100,10;/home/xnm/.config/swaylock/rebecca.png
-effect-compose=20,0;40%x100%;/home/xnm/.config/swaylock/lucy.png
-font=JetBrains Mono
-indicator-radius=80
-indicator-thickness=8
-timestr=%I:%M %p
-datestr=%F
-
-inside-color=#181926
-ring-color=#8bd5ca
-key-hl-color=#a6da95
-text-color=#cad3f5
-layout-text-color=#cad3f5
-layout-bg-color=#181926
-text-caps-lock-color=#cad3f5
-
-inside-clear-color=#f4dbd6
-ring-clear-color=#f0c6c6
-text-clear-color=#1e2030
-
-inside-ver-color=#91d7e3
-ring-ver-color=#7dc4e4
-text-ver-color=#1e2030
-
-inside-wrong-color=#ee99a0
-ring-wrong-color=#ed8796
-text-wrong-color=#1e2030
diff --git a/home/.config/swaylock/lucy.png b/home/.config/swaylock/lucy.png
deleted file mode 100644
index 3905fa0..0000000
Binary files a/home/.config/swaylock/lucy.png and /dev/null differ
diff --git a/home/.config/swaylock/rebecca.png b/home/.config/swaylock/rebecca.png
deleted file mode 100644
index 3d44486..0000000
Binary files a/home/.config/swaylock/rebecca.png and /dev/null differ
diff --git a/home/.config/wlogout/layout b/home/.config/wlogout/layout
index 6841651..30b3392 100644
--- a/home/.config/wlogout/layout
+++ b/home/.config/wlogout/layout
@@ -1,6 +1,6 @@
{
"label" : "lock",
- "action" : "swaylock",
+ "action" : "hyprlock",
"text" : "Lock",
"keybind" : "l"
}
@@ -33,4 +33,4 @@
"action" : "systemctl reboot",
"text" : "Reboot",
"keybind" : "r"
-}
\ No newline at end of file
+}
diff --git a/home/.config/wpaperd/output.conf b/home/.config/wpaperd/output.conf
deleted file mode 100644
index 574aef5..0000000
--- a/home/.config/wpaperd/output.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-[default]
-path = "~/Pictures/Wallpapers/"
-duration = "30m"
-# apply-shadow = true
\ No newline at end of file
diff --git a/home/Pictures/Wallpapers/wallpaper_girl_1.png b/home/background
similarity index 100%
rename from home/Pictures/Wallpapers/wallpaper_girl_1.png
rename to home/background
diff --git a/nixos/flake.nix b/nixos/flake.nix
index 73970a4..36b7599 100644
--- a/nixos/flake.nix
+++ b/nixos/flake.nix
@@ -26,7 +26,7 @@
./nix-settings.nix
./nixpkgs.nix
./gc.nix
- ./auto-upgrade.nix
+ # ./auto-upgrade.nix
./linux-kernel.nix
./screen.nix
./display-manager.nix
diff --git a/nixos/hyprland.nix b/nixos/hyprland.nix
index fa0bc66..519d36e 100644
--- a/nixos/hyprland.nix
+++ b/nixos/hyprland.nix
@@ -10,6 +10,9 @@
pyprland
hyprpicker
hyprcursor
+ hyprlock
+ hypridle
+ hyprpaper
wezterm
cool-retro-term
diff --git a/nixos/security-services.nix b/nixos/security-services.nix
index 0176890..eca417b 100644
--- a/nixos/security-services.nix
+++ b/nixos/security-services.nix
@@ -24,7 +24,7 @@
];
};
services.fail2ban.enable = true;
- security.pam.services.swaylock = {};
+ security.pam.services.hyprlock = {};
# security.polkit.enable = true;
programs.browserpass.enable = true;
services.clamav = {
diff --git a/nixos/services.nix b/nixos/services.nix
index c774658..e1dfb03 100644
--- a/nixos/services.nix
+++ b/nixos/services.nix
@@ -30,8 +30,6 @@
qt6.qtwayland
psi-notify
poweralertd
- swaylock-effects
- swayidle
playerctl
psmisc
grim
@@ -52,8 +50,6 @@
dunst
avizo
wlogout
- wpaperd
- # swww
gifsicle
];
}
diff --git a/nixos/work.nix b/nixos/work.nix
index 4e1aff9..2f5b6ff 100644
--- a/nixos/work.nix
+++ b/nixos/work.nix
@@ -7,5 +7,6 @@
awscli2
cargo-lambda
gnumake
+ cmake
];
}
diff --git a/nixos/yubikey.nix b/nixos/yubikey.nix
index aed66ce..fc69c15 100644
--- a/nixos/yubikey.nix
+++ b/nixos/yubikey.nix
@@ -15,6 +15,6 @@
security.pam.services = {
greetd.u2fAuth = true;
sudo.u2fAuth = true;
- swaylock.u2fAuth = true;
+ hyprlock.u2fAuth = true;
};
}