xsmh e7c02d9726
Enhance locking mechanism (#1446)
This is a (subjectively) preferable behavior for locking the system.

- Pause all media players and mute audio when the system is locked. Unmute after unlocking.

Co-authored-by: Shahram <80352285+ShahramMohammed@users.noreply.github.com>
2025-02-28 15:05:56 +00:00

37 lines
1.0 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/sh
# A dmenu wrapper script for system functions.
export WM="dwm"
case "$(readlink -f /sbin/init)" in
*systemd*) ctl='systemctl' ;;
*) ctl='loginctl' ;;
esac
wmpid(){ # This function is needed if there are multiple instances of the window manager.
tree="$(pstree -ps $$)"
tree="${tree#*$WM(}"
echo "${tree%%)*}"
}
lock(){
mpc pause
pauseallmpv
wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
kill -44 $(pidof dwmblocks)
slock
wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
kill -44 $(pidof dwmblocks)
}
case "$(printf "🔒 lock\n🚪 leave $WM\n♻ renew $WM\n🐻 hibernate\n🔃 reboot\n🖥shutdown\n💤 sleep\n📺 display off" | dmenu -i -p 'Action: ')" in
'🔒 lock') lock ;;
"🚪 leave $WM") kill -TERM "$(wmpid)" ;;
"♻️ renew $WM") kill -HUP "$(wmpid)" ;;
'🐻 hibernate') slock $ctl hibernate -i ;;
'💤 sleep') slock $ctl suspend -i ;;
'🔃 reboot') $ctl reboot -i ;;
'🖥shutdown') $ctl poweroff -i ;;
'📺 display off') xset dpms force off ;;
*) exit 1 ;;
esac