Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /bin/bash
- # Ersetze den übergebenen Text aus der Zwischenablage mit
- # einem neuen Text.
- # Bsp.: Mache aus "SgDuH" "Sehr geehrte Damen und Herren"
- # Datei mit den Kurz- und Langtexten
- replace_db="$HOME/var/klipper-replace-text.txt"
- # Das Script wird von Klipper aufgerufen, wenn irgendein Prefix
- # in die Zwischenablage kopiert wurde. Dieser Prefix ist abzuschneiden.
- prefix=",,,"
- # Holen:
- # qdbus org.kde.klipper /klipper org.kde.klipper.klipper.getClipboardContents
- # Setzen:
- # qdbus org.kde.klipper /klipper org.kde.klipper.klipper.setClipboardContents Klipper-Replace-Text
- # Wurde Text auf der Kommandozeile uebergeben?
- if [[ "$#" -eq 0 ]]; then
- # Hole Text aus der Zwischenablage
- clip=$( qdbus org.kde.klipper /klipper org.kde.klipper.klipper.getClipboardContents )
- else
- # Text von der Kommandozeile nehmen
- clip="$@"
- fi
- # Entferne prefix vom clip
- clip_clean=${clip#$prefix}
- # Mache den Text "safe"
- clip_quoted=$( printf "%q" "$clip_clean" )
- # Suche in der "DatenbanK"
- replace=$( awk -F'°' "/^${clip_quoted}/ "'{print $2}' "$replace_db" 2> /dev/null )
- # Was gefunden?
- [[ -z "$replace" ]] && exit 1
- # Expandiere evtl. vorhandene Backslash Sequenzen (\n -> Zeilenumbruch)
- replace_bs=$( printf "%b" "$replace" )
- # Speichere in Zwischenablage
- qdbus org.kde.klipper /klipper org.kde.klipper.klipper.setClipboardContents "$replace_bs" > /dev/null 2>&1
- printf "%s\n" "$replace_bs"
- exit $?
- # EOF #
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement