Compare commits

...

4 commits

Author SHA1 Message Date
Jeena
1e65b6da57 fix: auto-detect battery so waybar hides it on machines without one 2026-05-09 08:36:01 +09:00
Jeena
e7add39b93 feat: enable fingerprint unlock in hyprlock 2026-05-09 08:36:01 +09:00
Jeena
5b81e86c5b feat: add battery widget to waybar 2026-05-09 08:36:01 +09:00
Jeena
11d2d51544 fix: lock screen on lid close without desktop flash on open
- Add lid-close.sh: starts hyprlock in background and immediately cuts
  the display via dpms off, so the display is dark while hyprlock renders
- William.conf: bind lid close to lid-close.sh; bind lid open to kill dim
  and turn display back on
- lock.sh: pass --no-fade-in to hyprlock
- hyprlock.conf: disable fadeOut animation
- hypridle.conf: add inhibit_sleep = 3 and use loginctl lock-session
2026-05-09 08:36:01 +09:00
5 changed files with 41 additions and 10 deletions

View file

@ -1,13 +1,7 @@
general {
# Define the lock command for hypridle
# This is used whenever hypridle or listeners need to lock the screen
lock_cmd = pidof hyprlock || hyprlock
# Runs before system suspend (safety net if you manually suspend)
# On a desktop, you can remove this if you never suspend manually
before_sleep_cmd = ~/.config/hypr/scripts/lock.sh
# Restore screen after sleep
inhibit_sleep = 3
lock_cmd = pidof hyprlock || ~/.config/hypr/scripts/lock.sh
before_sleep_cmd = loginctl lock-session
after_sleep_cmd = hyprctl dispatch dpms on
}

View file

@ -1,3 +1,15 @@
auth {
fingerprint {
enabled = true
ready_message = Scan fingerprint to unlock
present_message = Scanning...
}
}
animations {
animation = fadeOut, 0
}
background {
path = ~/.config/hypr/wallpapers/Purple.jpg
blur_passes = 2

8
hypr/scripts/lid-close.sh Executable file
View file

@ -0,0 +1,8 @@
#!/bin/bash
pkill -x dim
hyprctl switchxkblayout all 0
wpctl set-mute @DEFAULT_AUDIO_SINK@ 1
hyprlock --no-fade-in &
hyprctl dispatch dpms off
wait
wpctl set-mute @DEFAULT_AUDIO_SINK@ 0

View file

@ -2,4 +2,4 @@
hyprctl switchxkblayout all 0
fcitx5-remote -s keyboard-us-dvorak
wpctl set-mute @DEFAULT_AUDIO_SINK@ 1
hyprlock && wpctl set-mute @DEFAULT_AUDIO_SINK@ 0
hyprlock --no-fade-in && wpctl set-mute @DEFAULT_AUDIO_SINK@ 0

View file

@ -16,6 +16,7 @@
"hyprland/language",
"custom/notifications",
"custom/idle-inhibit",
"battery",
"custom/power"
],
@ -114,6 +115,22 @@
"format": " ⏻ ",
"tooltip": false,
"on-click": "wlogout --protocol layer-shell"
},
"battery": {
"interval": 60,
"states": {
"warning": 30,
"critical": 15
},
"events": {
"on-discharging-warning": "notify-send -u normal 'Low Battery'",
"on-discharging-critical": "notify-send -u critical 'Very Low Battery'",
"on-charging-100": "notify-send -u normal 'Battery Full!'"
},
"format": "{capacity}% {icon}",
"format-icons": ["", "", "", "", ""],
"max-length": 25
}
}