Improve notification after screenshot in Xfce

This commit is contained in:
Daniel Ruiz de Alegría 2020-11-04 16:53:07 +01:00
parent 0a4d853907
commit 8e56b399fd

View File

@ -1,12 +1,73 @@
#!/bin/sh
case $LANG in
de*)
SUMMARY="Screenshot gemacht"
BUTTON_TEXT="Bild ansehen"
;;
es*)
SUMMARY="Captura de pantalla tomada"
BUTTON_TEXT="Ver imagen"
;;
fr*)
SUMMARY="Capture d'écran prise"
BUTTON_TEXT="Voir l'image"
;;
hr*)
SUMMARY="Snimka zaslona snimljena"
BUTTON_TEXT="Pogledati sliku"
;;
it*)
SUMMARY="Screenshot acquisito"
BUTTON_TEXT="Guarda l'immagine"
;;
zh*)
SUMMARY="截图"
BUTTON_TEXT="看图片"
;;
*)
SUMMARY="Screenshot taken"
BUTTON_TEXT="View image"
;;
esac
notify() {
IMAGE="$1"
ACTION_COMMAND="exo-open $IMAGE"
NOTIFICATION_ID=$(gdbus call \
--session \
--dest org.freedesktop.Notifications \
--object-path /org/freedesktop/Notifications \
--method org.freedesktop.Notifications.Notify \
'' 0 "$IMAGE" "$SUMMARY" '' \
"[\"Open\", \"$BUTTON_TEXT\"]" '{}' 'int32 -1' \
| sed 's/(uint32 \([0-9]\+\),)/\1/g')
GDBUS_MONITOR_PID=/tmp/notify-action-dbus-monitor.$$.pid
(
gdbus monitor --session --dest org.freedesktop.Notifications --object-path /org/freedesktop/Notifications &
echo $! >&3
) 3>"$GDBUS_MONITOR_PID" | while read -r line; do
if echo "$line" | grep "NotificationClosed (uint32 $NOTIFICATION_ID" > /dev/null; then
break
elif echo "$line" | grep "ActionInvoked (uint32 $NOTIFICATION_ID" > /dev/null; then
$ACTION_COMMAND
break
fi
done
kill $(cat "$GDBUS_MONITOR_PID")
rm "$GDBUS_MONITOR_PID"
}
paplay /usr/share/sounds/freedesktop/stereo/screen-capture.oga
if [ $# -eq 0 ]
then
FILE="Screenshot_$(date +%F_%H_%M_%S).png"
xfce4-screenshooter -fs "$(xdg-user-dir PICTURES)/$FILE"
notify-send -u normal "$FILE" -i "$(xdg-user-dir PICTURES)/$FILE"
notify "$(xdg-user-dir PICTURES)/$FILE"
else
xfce4-screenshooter $@
fi