You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
1.1 KiB

#!/usr/bin/env sh
NOTIFDIR="$XDG_DATA_HOME"/sxmo/notifications
DIR=$(dirname "$0")
# shellcheck source=./sxmo_icons.sh
. "$DIR/sxmo_icons.sh"
notificationmenu() {
CHOICES="$icon_cls Close Menu\n$icon_del Clear Notifications"
# shellcheck disable=SC2045
for NOTIFFILE in $(ls -tr "$NOTIFDIR"); do
NOTIFMSG="$(tail -n+3 "$NOTIFDIR/$NOTIFFILE" | tr "\n^" " ")"
NOTIFHRANDMIN="$(stat --printf %y "$NOTIFDIR/$NOTIFFILE" | grep -oE '[0-9]{2}:[0-9]{2}')"
CHOICES="
$CHOICES
$NOTIFHRANDMIN - $NOTIFMSG ^ $NOTIFDIR/$NOTIFFILE
"
done
PICKEDCONTENT="$(
printf "%b" "$CHOICES" |
xargs -0 echo |
sed '/^[[:space:]]*$/d' |
awk '{$1=$1};1' |
cut -d^ -f1 |
dmenu -c -i -p "Notifs" -l 20
)"
echo "$PICKEDCONTENT" | grep -q "Close Menu" && exit 1
echo "$PICKEDCONTENT" | grep -q "Clear Notifications" && rm "$NOTIFDIR"/* && exit 1
PICKEDNOTIFFILE="$(echo "$CHOICES" | tr -s ' ' | grep -F "$PICKEDCONTENT" | cut -d^ -f2 | tr -d ' ')"
NOTIFACTION="$(head -n1 "$PICKEDNOTIFFILE")"
setsid -f sh -c "$NOTIFACTION" &
rm "$PICKEDNOTIFFILE"
}
notificationmenu