mirror of https://gitlab.com/dabruh/dotfiles.git
61 lines
1.1 KiB
Bash
Executable File
61 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# i3exit
|
|
#
|
|
# Provide simple arguments for various locking and power related tasks.
|
|
|
|
# with openrc use loginctl
|
|
[[ $(cat /proc/1/comm) == "systemd" ]] && logind=systemctl || logind=loginctl
|
|
|
|
LOCK_SCREEN_COLOR=${LOCK_SCREEN_COLOR:-000000}
|
|
I3LOCK_RE="i3lock -(c|i) "
|
|
|
|
lock() {
|
|
i3lock -c "$LOCK_SCREEN_COLOR"
|
|
|
|
# Add a small delay to prevent possible race conditions with suspend
|
|
sleep 1
|
|
}
|
|
|
|
is_locked() {
|
|
pgrep -u "$USER" -f "$I3LOCK_RE" >/dev/null
|
|
}
|
|
|
|
case "$1" in
|
|
lock)
|
|
is_locked || lock
|
|
;;
|
|
logout)
|
|
i3-msg exit
|
|
;;
|
|
switch_user)
|
|
dm-tool switch-to-greeter
|
|
;;
|
|
suspend)
|
|
lock && $logind suspend
|
|
;;
|
|
hibernate)
|
|
lock && $logind hibernate
|
|
;;
|
|
reboot)
|
|
$logind reboot
|
|
;;
|
|
shutdown)
|
|
$logind poweroff
|
|
;;
|
|
commands)
|
|
echo "lock,logout,switch_user,suspend,hibernate,reboot,shutdown"
|
|
;;
|
|
help)
|
|
cmds="$($0 commands)"
|
|
echo "Usage: $0 ${cmds//\,/\, }"
|
|
;;
|
|
*)
|
|
echo "== ! i3exit: missing or invalid argument ! =="
|
|
$0 help
|
|
exit 2
|
|
;;
|
|
esac
|
|
|
|
exit 0
|