zur Übersicht

nächste Seite


Programmfenster Sonderzeichen

Die Ausführungen der vorherigen Seiten über Programmfenster werden hier weitergeführt.
Generell gilt bei den weißen Textstellen auf dieser Seite: Man fügt die Zeichenfolge aus dem weißen Feld bei dem blinkenden Cursor des Terminals ein - dann drückt man die Eingabetaste. 
Oder man fügt die Zeichenfolge aus dem weißen Feld bei dem blinkenden Cursor des Editors ein.  
Dann drückt man zum Abspeichern gleichzeitig Strg und O 
dann drückt man die Eingabetaste um den Dateinamen zu bestätigen 
dann drückt man zum Verlassen des Editors gleichzeitig Strg und X.


LibreOffice hat eine Funktion zum Einfügen von Sonderzeichen. Diese ist sehr umfangreich und das Suchen nach einem Zeichen kann recht lange dauern. Meist braucht man aber nur wenige dieser Sonderzeichen und es ist eine gute Idee diese schnell zugänglich zu machen. Dazu wird ein zenity-Fenster erzeugt ähnlich dem der Zwischenablage das aber ständig verfügbar ist und extra beendet werden muß. Da das zenity-Fenster immer mittig erscheint und es wohl keine Möglichkeit gibt diesem eine bestimmte Position zuzuweisen wird eine sehr große Ausdehnung gewählt. Bei mir hat der Bildschirm 1280x720pixel und daher habe ich für das zenity-Fenster 1200x600pixel gewählt. Sie müssen es entsprechend in der Größe anpassen. Damit lassen sich die Fenster wie folgt anordnen:

Schreibt man nun in LibreOffice oder auch einem anderen Programm und braucht man eines der hinterlegten Sonderzeichen, so kann man durch Doppelklick auf das Zeichen dieses in die Zwischenablage schreiben. Das zenity-Sonderzeichen-Fenster verschwindet nicht, es rückt dann zwar in den Vordergrund aber man kann leicht das andere Fenster mit der Maus auswählen und dort das Zeichen einfügen. Das zenity-Sonderzeichen-Fenster steht weiterhin zur Verfügung und wie beim Zwischenablage-Fenster kann man auch lange Textpassagen hinterlegen (im obigen Beispiel unter 04:). Beenden kann man das Fenster durch Doppelklick auf den ersten Zeileneintrag BEENDEN oder durch Drücken der linken Schaltfläche

Dann erscheint allerdings ein weiteres Auswahl-Fenster und man muß hier die Schaltfläche BEENDEN zum endgültigen Schließen des Sonderzeichen-Fenster drücken. Der Grund für diesen kleinen Umweg liegt darin daß zenity-list nur zwei Schaltflächen anbietet. 

In diesem Fenster kann man neue Plätze belegen, indem man aus der Zwischenablage etwas auf einen Speicherplatz verschiebt. Man markiert (kopiert) das Gewünschte (Sonderzeichen oder Textpassage) und wählt dann einen Speicherplatz (Doppelklick oder markieren und Schaltfläche SPEICHERN drücken). Damit wird der Inhalt der Zwischenablage (primary) an dem gewählten Speicherplatz hinterlegt - der alte Inhalt des Speicherplatzes geht dabei natürlich verloren. Nun braucht man noch die Sonderzeichen

gucharmap

Damit öffnet sich eine Zeichentabelle

Macht man einen Doppelklick auf das gewünschte Sonderzeichen so erscheint es in der Zeile Zu kopierender Text: Dort wählt man Kopieren und anschließend den Speicherplatz. Es gibt einen weiteren Reiter der für ein markiertes Sonderzeichen zusätzliche Informationen zu diesem Zeichen ausgibt. Die Zeichentabelle kann auch über die installierten Programme oder die Suchfunktion auf der Aktivitäten-Übersicht aufgerufen werden.

Also wird jetzt das zenity-Sonderzeichen-script geschrieben.

Zuerst wird ein Ordner erstellt 

mkdir ~/.meine_sonderzeichen

Dann werden 30 Speicherplätze hinterlegt

for i in {01..30}; do echo $i > ~/.meine_sonderzeichen/zS$i.txt; done

Dieses script soll hauptsächlich für Sonderzeichen verwendet werden, daher wird die Anzeige auf eine Zeile und 10 Zeichen beschränkt, aber es ist durchaus möglich auch große Textblöcke mit vielen Zeilen zu hinterlegen.

nano ~/.meine_sonderzeichen/scSONDER.sh

In den Editor eingeben

#!/bin/bash

rT=3

while [ $rT -eq 3 ]

do

zS01=$(cat ~/.meine_sonderzeichen/zS01.txt | cut -c 1-10 | head -n 1)
zS02=$(cat ~/.meine_sonderzeichen/zS02.txt | cut -c 1-10 | head -n 1)
zS03=$(cat ~/.meine_sonderzeichen/zS03.txt | cut -c 1-10 | head -n 1)
zS04=$(cat ~/.meine_sonderzeichen/zS04.txt | cut -c 1-10 | head -n 1)
zS05=$(cat ~/.meine_sonderzeichen/zS05.txt | cut -c 1-10 | head -n 1)
zS06=$(cat ~/.meine_sonderzeichen/zS06.txt | cut -c 1-10 | head -n 1)
zS07=$(cat ~/.meine_sonderzeichen/zS07.txt | cut -c 1-10 | head -n 1)
zS08=$(cat ~/.meine_sonderzeichen/zS08.txt | cut -c 1-10 | head -n 1)
zS09=$(cat ~/.meine_sonderzeichen/zS09.txt | cut -c 1-10 | head -n 1)
zS10=$(cat ~/.meine_sonderzeichen/zS10.txt | cut -c 1-10 | head -n 1)
zS11=$(cat ~/.meine_sonderzeichen/zS11.txt | cut -c 1-10 | head -n 1)
zS12=$(cat ~/.meine_sonderzeichen/zS12.txt | cut -c 1-10 | head -n 1)
zS13=$(cat ~/.meine_sonderzeichen/zS13.txt | cut -c 1-10 | head -n 1)
zS14=$(cat ~/.meine_sonderzeichen/zS14.txt | cut -c 1-10 | head -n 1)
zS15=$(cat ~/.meine_sonderzeichen/zS15.txt | cut -c 1-10 | head -n 1)
zS16=$(cat ~/.meine_sonderzeichen/zS16.txt | cut -c 1-10 | head -n 1)
zS17=$(cat ~/.meine_sonderzeichen/zS17.txt | cut -c 1-10 | head -n 1)
zS18=$(cat ~/.meine_sonderzeichen/zS18.txt | cut -c 1-10 | head -n 1)
zS19=$(cat ~/.meine_sonderzeichen/zS19.txt | cut -c 1-10 | head -n 1)
zS20=$(cat ~/.meine_sonderzeichen/zS20.txt | cut -c 1-10 | head -n 1)
zS21=$(cat ~/.meine_sonderzeichen/zS21.txt | cut -c 1-10 | head -n 1)
zS22=$(cat ~/.meine_sonderzeichen/zS22.txt | cut -c 1-10 | head -n 1)
zS23=$(cat ~/.meine_sonderzeichen/zS23.txt | cut -c 1-10 | head -n 1)
zS24=$(cat ~/.meine_sonderzeichen/zS24.txt | cut -c 1-10 | head -n 1)
zS25=$(cat ~/.meine_sonderzeichen/zS25.txt | cut -c 1-10 | head -n 1)
zS26=$(cat ~/.meine_sonderzeichen/zS26.txt | cut -c 1-10 | head -n 1)
zS27=$(cat ~/.meine_sonderzeichen/zS27.txt | cut -c 1-10 | head -n 1)
zS28=$(cat ~/.meine_sonderzeichen/zS28.txt | cut -c 1-10 | head -n 1)
zS29=$(cat ~/.meine_sonderzeichen/zS29.txt | cut -c 1-10 | head -n 1)
zS30=$(cat ~/.meine_sonderzeichen/zS30.txt | cut -c 1-10 | head -n 1)

szZW=$(zenity --list --ok-label "KOPIEREN" --cancel-label "BEENDEN oder NEUES ZEICHEN HINZUFÜGEN" --title "Zeichen kopieren" --text "Auswahl" --hide-header --column "" "BEENDEN" "01: $zS01" "02: $zS02" "03: $zS03" "04: $zS04" "05: $zS05" "06: $zS06" "07: $zS07" "08: $zS08" "09: $zS09" "10: $zS10" "11: $zS11" "12: $zS12" "13: $zS13" "14: $zS14" "15: $zS15" "16: $zS16" "17: $zS17" "18: $zS18" "19: $zS19" "20: $zS20" "21: $zS21" "22: $zS22" "23: $zS23" "24: $zS24" "25: $zS25" "26: $zS26" "27: $zS27" "28: $zS28" "29: $zS29" "30: $zS30" --width=1200 --height=600 2> /dev/null)

if [ $? -eq 0 ]; then

if [ $szZW = "BEENDEN" ]; then

exit

else

szSP=$(echo zS${szZW:0:2}.txt)
cat ~/.meine_sonderzeichen/$szSP | xclip -i -selection primary
cat ~/.meine_sonderzeichen/$szSP | xclip -i -selection clipboard
rT=3

fi

else

szZSP=$(zenity --list --ok-label "SPEICHERN" --cancel-label "BEENDEN" --title "Neues Sonderzeichen aus der Zwischenablage speichern" --text "Speicherplatz für das neue Sonderzeichen wählen" --hide-header --column "" "PLATZ01: $zS01" "PLATZ02: $zS02" "PLATZ03: $zS03" "PLATZ04: $zS04" "PLATZ05: $zS05" "PLATZ06: $zS06" "PLATZ07: $zS07" "PLATZ08: $zS08" "PLATZ09: $zS09" "PLATZ10: $zS10" "PLATZ11: $zS11" "PLATZ12: $zS12" "PLATZ13: $zS13" "PLATZ14: $zS14" "PLATZ15: $zS15" "PLATZ16: $zS16" "PLATZ17: $zS17" "PLATZ18: $zS18" "PLATZ19: $zS19" "PLATZ20: $zS20" "PLATZ21: $zS21" "PLATZ22: $zS22" "PLATZ23: $zS23" "PLATZ24: $zS24" "PLATZ25: $zS25" "PLATZ26: $zS26" "PLATZ27: $zS27" "PLATZ28: $zS28" "PLATZ29: $zS29" "PLATZ30: $zS30" --width=680 --height=560 2> /dev/null)

if [ $? -eq 0 ]; then

szSP=$(echo z${szZSP:0:7}.txt | sed 's|PLATZ|S|g')
xclip -o > ~/.meine_sonderzeichen/$szSP
rT=3

else

exit

fi

fi

done

Nun muß man die Datei ausführbar machen

chmod +x ~/.meine_sonderzeichen/scSONDER.sh

Der Aufruf des scriptes erfolgt mit

~/.meine_sonderzeichen/scSONDER.sh

Um damit gut arbeiten zu können verwendet man zum Starten dieses scriptes am besten eine Tastenkombination, vielleicht
Alt+S
Das Vorgehen der Zuordnung einer Tastenkombination ist beschrieben auf

Debian Gnome (Teil2) Terminal

Verbesserung des Sonderzeichen-script

Es ist doch möglich dem zenity-Fenster eine Position zuzuweisen und es auf eine schmale Spalte auf der linken Seite zu verschieben. Damit ist das rechte Fenster schnell wieder zugänglich und man muß es nicht extra mit der Maus anklicken um es in den Vordergrund zu holen. 
Dazu installiert man das Programm   xwit   (z.B. über Synaptic), was es unter anderem ermöglicht die Position von Fenstern zu verändern.
Dann nutzt man aus daß durch die & Verkettung
Befehl1 & Befehl2
zwei Befehle gleichzeitig ausgeführt werden. Der erste Befehl wird im Hintergrund ausgeführt, alle anderen Befehle werden im Vordergrund ausgeführt. Die Verschiebung des zenity-Fensters kann natürlich erst dann erfolgen wenn dieses Fenster erzeugt wurde. Daher wird die Verschiebung durch xwit um 1.5 Sekunden verzögert was bei mir reicht um das zenity-Fenster zu erzeugen. Möglicherweise ist diese Zeit bei Ihnen anders einzustellen. Wenn es vorkommt daß die Verschiebung einmal funktioniert und ein anderes mal nicht so liegt es daran daß das zenity-Fenster nicht rechtzeitig aufgebaut wurde und daher nicht verschoben werden kann. Z.B. kann der Prozessor stärker belastet sein und es gibt Verzögerungen beim Aufbau des Fensters. Dann muß man die sleep-Zeit doch vergrößern. 
Bei mir hat der Bildschirm 1280x720pixel und daher habe ich für das zenity-Fenster (nach einer Reduzierung der Schaltflächen-Texte) 180x640pixel gewählt. Sie müssen es entsprechend in der Größe anpassen. 

Also neues zenity-Sonderzeichen-script:

#!/bin/bash

rT=3

while [ $rT -eq 3 ]

do

zS01=$(cat ~/.meine_sonderzeichen/zS01.txt | cut -c 1-10 | head -n 1)
zS02=$(cat ~/.meine_sonderzeichen/zS02.txt | cut -c 1-10 | head -n 1)
zS03=$(cat ~/.meine_sonderzeichen/zS03.txt | cut -c 1-10 | head -n 1)
zS04=$(cat ~/.meine_sonderzeichen/zS04.txt | cut -c 1-10 | head -n 1)
zS05=$(cat ~/.meine_sonderzeichen/zS05.txt | cut -c 1-10 | head -n 1)
zS06=$(cat ~/.meine_sonderzeichen/zS06.txt | cut -c 1-10 | head -n 1)
zS07=$(cat ~/.meine_sonderzeichen/zS07.txt | cut -c 1-10 | head -n 1)
zS08=$(cat ~/.meine_sonderzeichen/zS08.txt | cut -c 1-10 | head -n 1)
zS09=$(cat ~/.meine_sonderzeichen/zS09.txt | cut -c 1-10 | head -n 1)
zS10=$(cat ~/.meine_sonderzeichen/zS10.txt | cut -c 1-10 | head -n 1)
zS11=$(cat ~/.meine_sonderzeichen/zS11.txt | cut -c 1-10 | head -n 1)
zS12=$(cat ~/.meine_sonderzeichen/zS12.txt | cut -c 1-10 | head -n 1)
zS13=$(cat ~/.meine_sonderzeichen/zS13.txt | cut -c 1-10 | head -n 1)
zS14=$(cat ~/.meine_sonderzeichen/zS14.txt | cut -c 1-10 | head -n 1)
zS15=$(cat ~/.meine_sonderzeichen/zS15.txt | cut -c 1-10 | head -n 1)
zS16=$(cat ~/.meine_sonderzeichen/zS16.txt | cut -c 1-10 | head -n 1)
zS17=$(cat ~/.meine_sonderzeichen/zS17.txt | cut -c 1-10 | head -n 1)
zS18=$(cat ~/.meine_sonderzeichen/zS18.txt | cut -c 1-10 | head -n 1)
zS19=$(cat ~/.meine_sonderzeichen/zS19.txt | cut -c 1-10 | head -n 1)
zS20=$(cat ~/.meine_sonderzeichen/zS20.txt | cut -c 1-10 | head -n 1)
zS21=$(cat ~/.meine_sonderzeichen/zS21.txt | cut -c 1-10 | head -n 1)
zS22=$(cat ~/.meine_sonderzeichen/zS22.txt | cut -c 1-10 | head -n 1)
zS23=$(cat ~/.meine_sonderzeichen/zS23.txt | cut -c 1-10 | head -n 1)
zS24=$(cat ~/.meine_sonderzeichen/zS24.txt | cut -c 1-10 | head -n 1)
zS25=$(cat ~/.meine_sonderzeichen/zS25.txt | cut -c 1-10 | head -n 1)
zS26=$(cat ~/.meine_sonderzeichen/zS26.txt | cut -c 1-10 | head -n 1)
zS27=$(cat ~/.meine_sonderzeichen/zS27.txt | cut -c 1-10 | head -n 1)
zS28=$(cat ~/.meine_sonderzeichen/zS28.txt | cut -c 1-10 | head -n 1)
zS29=$(cat ~/.meine_sonderzeichen/zS29.txt | cut -c 1-10 | head -n 1)
zS30=$(cat ~/.meine_sonderzeichen/zS30.txt | cut -c 1-10 | head -n 1)

(sleep 1.5s ; xwit -move 50 -10 -names "Zeichen kopieren") &
szZW=$(zenity --list --ok-label "COPY" --cancel-label "NEU" --title "Zeichen kopieren" --text "Auswahl" --hide-header --column "" "BEENDEN" "01: $zS01" "02: $zS02" "03: $zS03" "04: $zS04" "05: $zS05" "06: $zS06" "07: $zS07" "08: $zS08" "09: $zS09" "10: $zS10" "11: $zS11" "12: $zS12" "13: $zS13" "14: $zS14" "15: $zS15" "16: $zS16" "17: $zS17" "18: $zS18" "19: $zS19" "20: $zS20" "21: $zS21" "22: $zS22" "23: $zS23" "24: $zS24" "25: $zS25" "26: $zS26" "27: $zS27" "28: $zS28" "29: $zS29" "30: $zS30" --width=180 --height=640 2> /dev/null)

if [ $? -eq 0 ]; then

if [ $szZW = "BEENDEN" ]; then

exit

else

szSP=$(echo zS${szZW:0:2}.txt)
cat ~/.meine_sonderzeichen/$szSP | xclip -i -selection primary
cat ~/.meine_sonderzeichen/$szSP | xclip -i -selection clipboard
rT=3

fi

else

szZSP=$(zenity --list --ok-label "SPEICHERN" --cancel-label "BEENDEN" --title "Neues Sonderzeichen aus der Zwischenablage speichern" --text "Speicherplatz für das neue Sonderzeichen wählen" --hide-header --column "" "PLATZ01: $zS01" "PLATZ02: $zS02" "PLATZ03: $zS03" "PLATZ04: $zS04" "PLATZ05: $zS05" "PLATZ06: $zS06" "PLATZ07: $zS07" "PLATZ08: $zS08" "PLATZ09: $zS09" "PLATZ10: $zS10" "PLATZ11: $zS11" "PLATZ12: $zS12" "PLATZ13: $zS13" "PLATZ14: $zS14" "PLATZ15: $zS15" "PLATZ16: $zS16" "PLATZ17: $zS17" "PLATZ18: $zS18" "PLATZ19: $zS19" "PLATZ20: $zS20" "PLATZ21: $zS21" "PLATZ22: $zS22" "PLATZ23: $zS23" "PLATZ24: $zS24" "PLATZ25: $zS25" "PLATZ26: $zS26" "PLATZ27: $zS27" "PLATZ28: $zS28" "PLATZ29: $zS29" "PLATZ30: $zS30" --width=680 --height=560 2> /dev/null)

if [ $? -eq 0 ]; then

szSP=$(echo z${szZSP:0:7}.txt | sed 's|PLATZ|S|g')
xclip -o > ~/.meine_sonderzeichen/$szSP
rT=3

else

exit

fi

fi

done

Man kann aus einem Tabellen-Dokument die Zellen einer Versand-Adresse mit Vorname, Nachname, Straße, PLZ, Ort  kopieren. Diese kann man mit 
xclip -o
im Terminal aufrufen, bearbeiten und entsprechenden Speicherplätzen des zenity-Sonderzeichen-Fensters zuordnen. Diesen Vorgang kann man mit einem Eintrag im zenity-Zwischenablage-Fenster festschreiben. Wenige Klicks befördern sodann die Versand-Adresse in das Sonderzeichenfenster und man kann schnell einen Paketschein durch copy und paste ausfüllen. 

zur Übersicht

nächste Seite


Datenschutzerklärung Impressum