dwt1--dotfiles/.local/bin/notify-log

42 lines
838 B
Plaintext
Raw Normal View History

2023-01-01 18:47:12 +00:00
#!/usr/bin/env bash
logfile=$1
2023-01-03 00:34:35 +00:00
declare -a MSGBUF
STATE=off
MSGTIME=
printbuf() {
JOINED=$( echo "${MSGBUF[@]}" | sed 's/,$//' )
printf "%s\n%s\n" "--- ${MSGTIME} ---" "${JOINED}"
}
procmsg() {
if [[ "${1}" =~ member=Notify$ ]]; then
STATE=on
MSGTIME=$(date '+%Y-%m-%d %H:%M:%S')
MSGBUF=()
elif [[ "${1}" =~ member=NotificationClosed$ ]]; then
STATE=off
printbuf
else
if [[ "${STATE}" == "on" ]]; then
if [[ "${1}" =~ ^string ]]; then
case "${1}" in
"string \"\"") ;;
"string \"urgency\"") ;;
"string \"sender-pid\"") ;;
*)
MSGBUF+=$( echo -n "${1}," )
;;
esac
fi
fi
fi
}
dbus-monitor "interface='org.freedesktop.Notifications'" | \
while read -r line; do
procmsg "$line" >> "$logfile"
done