74 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/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 "$(xdg-user-dir PICTURES)/$FILE"
 | 
						|
else
 | 
						|
	xfce4-screenshooter $@
 | 
						|
fi
 |