Update toggle notifs & idle scripts + add to walker

This commit is contained in:
ItsDrike 2025-10-25 18:16:42 +02:00
parent ae439adcc4
commit 426e59bcd3
Signed by: ItsDrike
GPG key ID: FA2745890B7048C0
4 changed files with 143 additions and 9 deletions

View file

@ -1,12 +1,59 @@
#!/usr/bin/env bash
set -euo pipefail
usage() {
echo "Usage: $0 [on|off|toggle|check]" >&2
}
serv="hypridle.service"
if systemctl --user is-active --quiet "$serv"; then
# Returns 0 if the service is active (idle timeouts enabled), 1 otherwise
idle_enabled() {
systemctl --user is-active --quiet "$serv"
}
mode="toggle"
if [ "$#" -ge 1 ]; then
if [ "$#" -gt 1 ]; then
echo "Invalid usage" >&2
usage
exit 2
fi
case "$1" in
--help)
usage
exit 0
;;
on | off | toggle)
mode="$1"
;;
check)
if idle_enabled; then
exit 0
else
exit 1
fi
;;
*)
echo "Invalid argument" >&2
usage
exit 2
;;
esac
fi
# Determine new mode if toggling
if [ "$mode" = "toggle" ]; then
mode="$(idle_enabled && echo 'off' || echo 'on')"
fi
# Apply the mode
if [ "$mode" = "off" ]; then
systemctl --user stop "$serv"
notify-send "Idle-Toggle" "Idle timeouts disabled"
notify-send "Idle-Toggle" "Idle timeouts disabled" -h string:x-canonical-private-synchronous:idle-toggle
else
systemctl --user start "$serv"
notify-send "Idle-Toggle" "Idle timeouts enabled"
notify-send "Idle-Toggle" "Idle timeouts enabled" -h string:x-canonical-private-synchronous:idle-toggle
fi

View file

@ -1,10 +1,56 @@
#!/bin/sh
#!/usr/bin/env bash
set -euo pipefail
if [ "$(dunstctl is-paused)" = "false" ]; then
usage() {
echo "$0 [on/off/toggle/check]" >&2
}
# Returns 0 if notifications are enabled, 1 if DND is active
notifs_enabled() {
[ "$(swaync-client --get-dnd)" = "false" ]
}
mode="toggle"
if [ "$#" -ge 1 ]; then
if [ "$#" -gt 1 ]; then
echo "Invalid usage" >&2
usage
exit 2
fi
case "$1" in
--help)
usage
exit 0
;;
on | off | toggle)
mode="$1"
;;
check)
if notifs_enabled; then
exit 0
else
exit 1
fi
;;
*)
echo "Invalid argument" >&2
usage
exit 2
;;
esac
fi
if [ "$mode" = "toggle" ]; then
mode="$(notifs_enabled && echo 'off' || echo 'on')"
fi
if [ "$mode" = "off" ]; then
notify-send "Notifications" "Pausing notifications..." -h string:x-canonical-private-synchronous:notif-pause
sleep 2
dunstctl set-paused true
swaync-client --dnd-on >/dev/null
else
dunstctl set-paused false
swaync-client --dnd-off >/dev/null
notify-send "Notifications" "Notifications enabled" -h string:x-canonical-private-synchronous:notif-pause
fi