dotfiles/eww/scripts/notifications

56 lines
1.5 KiB
Bash
Executable file

#!/usr/bin/env bash
tmp=/tmp/dunst-history.json
notif() {
export ids=($(dunstctl history | jq '.data[] | .[].id.data'))
printf "\n (box \
:orientation \"v\" \
:space-evenly \"false\" \
:spacing \"20\" \
:halign \"start\" "
for id in "${ids[@]}"; do
mapfile -t notif < <(jq -r ".data[] | .[] | select(.id.data == $id) | .appname.data, .icon_path.data, .summary.data, .body.data" "$tmp" | sed -r '/^\s*$/d' | sed -e 's/\%/ percent/g')
printf "(eventbox :onclick \"dunstctl history-pop $id && dunstctl action 0 && dunstctl close\" \
(box \
:class \"notification\" \
:orientation \"h\" \
:width 350 \
:space-evenly \"false\" \
(image \
:class \"notification-icon\" \
:path \"${notif[1]}\" \
:image-height 50 \
:image-width 100) \
(box \
:orientation \"v\" \
:space-evenly \"false\" \
:valign \"left\" \
:width 350 \
:spacing 10 \
(label \
:xalign 0 \
:wrap "true" \
:class \"notification-appname\" \
:text \"${notif[0]}\") \
(label \
:xalign 0 \
:wrap "true" \
:class \"notification-summary\" \
:text \"${notif[2]}\") \
(label \
:xalign 0 \
:wrap "true" \
:class \"notification-body\" \
:text \"${notif[3]}\"))))"
done
printf ") \n"
}
notif
tail --follow $tmp 2> /dev/null | grep --line-buffered "aa{sv}" | while read -r; do
notif
done