From d947956270b092df10637bb3531441caca698b86 Mon Sep 17 00:00:00 2001 From: Suleyman Farajli Date: Tue, 25 Nov 2025 18:47:27 +0400 Subject: feat: new api for scripts --- scripts/daemons/bat-checkd | 16 ++++++++++++++++ scripts/daemons/mail-syncd | 6 ++++++ scripts/daemons/notifd | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100755 scripts/daemons/bat-checkd create mode 100755 scripts/daemons/mail-syncd create mode 100755 scripts/daemons/notifd (limited to 'scripts/daemons') diff --git a/scripts/daemons/bat-checkd b/scripts/daemons/bat-checkd new file mode 100755 index 0000000..2c272b8 --- /dev/null +++ b/scripts/daemons/bat-checkd @@ -0,0 +1,16 @@ +#!/bin/sh + +# FIXME: hardcoded battery +BAT="/sys/class/power_supply/BAT0" + +while true; do + percent=$(cat "${BAT}/capacity") + status=$(cat "${BAT}/status") + + # Only notify if battery is low AND not charging + if [ "${status}" = "Discharging" ] && [ "${percent}" -lt 7 ]; then + nsend -s "Battery" "Critically low: ${percent}%" + fi + + sleep 120 +done diff --git a/scripts/daemons/mail-syncd b/scripts/daemons/mail-syncd new file mode 100755 index 0000000..e317ace --- /dev/null +++ b/scripts/daemons/mail-syncd @@ -0,0 +1,6 @@ +#!/bin/sh + +while true; do + mbsync -a + sleep 300 +done diff --git a/scripts/daemons/notifd b/scripts/daemons/notifd new file mode 100755 index 0000000..9ad5697 --- /dev/null +++ b/scripts/daemons/notifd @@ -0,0 +1,35 @@ +#!/bin/sh + +. "lib_handle.sh" + +FIFO=/tmp/noti.fifo +FILE=/tmp/noti.txt + +[ -p "${FIFO}" ] || mkfifo "${FIFO}" + +exec 3<"${FIFO}" +exec 4>"${FIFO}" + +tpid="" + +cancel() { + [ -n "${tpid}" ] && kill "${tpid}" 2>/dev/null + tpid="" +} + +while read n <&3; do + [ "${n}" = "-1" ] && { cancel; continue; } + + case "${n}" in ''|*[!0-9]*) continue ;; esac + + cancel + + [ "${n}" -gt 0 ] || { :>"${FILE}"; notify_handle reload; continue; } + + ( + sleep "${n}" + :>"${FILE}" + notify_handle reload + ) & + tpid=$! +done -- cgit v1.2.3