- added custom systemd config for sleep and login.

Those scripts should be placed in /etc/systemd/ in case of a restore on the laptop
- strengthened the lid_close and lid_open scripts to debounce and not handle sleep
- switched from deep sleep to s2idle, so that resume is not immediate
- hibernating after 30 minutes of s2idle state
- themed fuzzel with dracula
- cleaned up hyprland comments on lid close/open
- removed splash from hyprpaper config
This commit is contained in:
2026-02-12 05:30:06 +01:00
parent 68d0010f0f
commit 4f81f9df18
7 changed files with 45 additions and 25 deletions

View File

@@ -0,0 +1,5 @@
[Login]
HandleLidSwitch=suspend-then-hibernate
HandleLidSwitchExternalPower=suspend-then-hibernate
HandleLidSwitchDocked=ignore

View File

@@ -0,0 +1,5 @@
[Sleep]
AllowSuspendThenHibernate=yes
MemorySleepMode=s2idle
HibernateDelaySec=30min

View File

@@ -1,3 +1,6 @@
#Sourced from https://github.com/dracula/fuzzel
#dracula themed fuzzel
# output=<not set>
font=JetBrainsMono Nerd Font Mono:size=15
match-counter = on
@@ -11,7 +14,7 @@
# password-character=*
# fuzzy=yes
show-actions=yes
list-executables-in-path=yes
list-executables-in-path=no
# terminal=$TERMINAL -e # Note: you cannot actually use environment variables here
terminal=wezterm {cmd}
# launch-prefix=<not set>

View File

@@ -193,10 +193,9 @@ bind = , XF86MonBrightnessUp, exec, sudo brightnessctl s "+10%"
bind = , XF86MonBrightnessDown, exec, sudo brightnessctl s "10%-"
#lid binds
#bindl = , switch:on:Lid Switch, exec, swaylock --screenshots --effect-blur 7x5 --clock
# trigger when the switch is turning off
# trigger when the lid is opened
bindl = , switch:off:Lid Switch,exec,~/bin/lid_open.sh
# # trigger when the switch is turning on
# trigger when the lid is closed
bindl = , switch:on:Lid Switch,exec,~/bin/lid_close.sh
# Desktop zooming or magnifier

View File

@@ -20,7 +20,7 @@
#ipc = off
#wallpaper = , /home/thierry/Pictures/bg/IMG_20210913_142249.jpg
splash = false
wallpaper {
monitor = eDP-1
path = /home/thierry/Pictures/bg/

View File

@@ -3,24 +3,27 @@ set -euo pipefail
INTERNAL="eDP-1"
# Count non-internal monitors reported by Hyprland
external_count=$(
hyprctl monitors | awk -v internal="$INTERNAL" '
$1 == "Monitor" {
name = $2
sub(":", "", name) # strip trailing colon
if (name != internal) {
print name
}
}
' | wc -l
sleep 0.2
external_on_count=$(
hyprctl -j monitors | jq -r --arg internal "$INTERNAL" '
[ .[]
| select(.name != $internal)
| select(.disabled != true)
| select(.dpmsStatus == true)
] | length
'
)
# Always turn off the laptop panel on lid close
hyprctl keyword monitor "$INTERNAL, disable"
if [ "$external_on_count" -eq 0 ]; then
# no external screen, we sleep
#systemctl hybrid-sleep
#systemctl suspend-then-hibernate
# Only lock if there is NO external monitor
if [ "$external_count" -eq 0 ]; then
hyprlock
systemctl suspend
#debounce hyprlock
pgrep -x hyprlock >/dev/null || hyprlock
else
# docked, we turn off internal screen
hyprctl keyword monitor "$INTERNAL, disable"
fi

View File

@@ -1,5 +1,10 @@
#!/usr/bin/env bash
hyprctl keyword monitor "eDP-1, preferred, 0x0, 1"
swayosd-server &
hyprpaper &
set -euo pipefail
INTERNAL="eDP-1"
sleep 0.2
hyprctl keyword monitor "$INTERNAL, preferred, 0x0, 1"
pgrep -x swayosd-server >/dev/null || swayosd-server &
pgrep -x hyprpaper >/dev/null || hyprpaper &