Ubuntu Screenshots automatisch in jpg konvertieren
(mit Hilfe von perplexity, aber da kam auch viel Mist)
- sreenshots werden in jpg konvertiert
- umbenannt
- in die recently-used-Liste eingetragen
- screenshots älter als 30d werden gelöscht
- Benutzt das python-Skript $HOME/bin/gtk_recent (https://github.com/rbtylee/gtk_recent)
Bash-Skript $HOME/bin/screenshot2jpg.sh
#!/usr/bin/env bash
set -euo pipefail
ORDNER="$HOME/Bilder/Bildschirmfotos"
QUALITAET=85
SERVICE_TAG="screenshot-convert"
log() {
logger -t "$SERVICE_TAG" "$1"
}
add_to_recent() {
local file="$1"
$HOME/bin/gtk_recent $0 $file
}
cleanup_old() {
find "$ORDNER" -maxdepth 1 -type f \
\( -iname '*.png' -o -iname '*.jpg' -o -iname '*.jpeg' \) \
-mtime +30 -delete
log "Screenshots älter als 30 Tage gelöscht"
}
trap cleanup_old EXIT
log "Service gestartet"
inotifywait -m -e close_write,moved_to,create --format '%w%f' "$ORDNER" |
while IFS= read -r datei; do
[[ -f "$datei" ]] || continue
case "${datei,,}" in
*.png)
zeitstempel="$(date +%Y%m%d_%H%M%S)"
ziel="$ORDNER/screenshot_${zeitstempel}.jpg"
if command -v magick >/dev/null 2>&1; then
magick "$datei" -quality "$QUALITAET" "$ziel"
else
convert "$datei" -quality "$QUALITAET" "$ziel"
fi
add_to_recent "$ziel"
rm -f -- "$datei"
log "Konvertiert, in Zuletzt benutzt eingetragen und gelöscht: $datei -> $ziel"
;;
esac
done
Service-Datei $HOME/.config/systemd/user/screenshot2jpg.service
[Unit]
Description=PNG nach JPEG im Screenshot-Ordner konvertieren
[Service]
ExecStart=%h/bin/screenshot2jpg.sh
Restart=always
RestartSec=2
[Install]
WantedBy=default.target