zur Übersicht nächste Seite

Programmfenster unter Debian 10 Buster

Auf dieser Seite geht es um die Beziehung zwischen Terminal und Bildschirmfenster. 
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.


Im folgenden werden einige Dateien verwendet, die schnell erzeugt werden sollen und in dem Ordner ~/Bla abgelegt werden. Man kann eine txt-Datei erstellen mit einer Auflistung der Dateien/Ordner aus dem Verzeichnis   /   durch
ls / > ~/Bla/Info.txt
Außerdem werden folgende Bild-Dateien erzeugt durch
convert -size 48x48 xc:red \( -size 40x40 xc:yellow \( -size 30x30 -background green -gravity center -fill black -font FreeSerif -pointsize 36 label:A \) -gravity center -composite \) -gravity center -composite ~/Bla/C8.png

convert -size 48x48 xc:red \( -size 40x40 xc:yellow \( -size 30x30 -background green -gravity center -fill black -font FreeSerif -pointsize 36 label:B \) -gravity center -composite \) -gravity center -composite ~/Bla/C7.png

convert -size 48x48 xc:red \( -size 40x40 xc:yellow \( -size 30x30 -background green -gravity center -fill black -font FreeSerif -pointsize 36 label:S \) -gravity center -composite \) -gravity center -composite ~/Bla/C6.png

convert -size 200x200 xc:white -stroke tomato -fill yellow -strokewidth 2 -draw 'circle 94,106 28,106' +stroke -fill black -draw 'circle 69,105 60,105' -draw 'circle 119,105 128,105' -draw 'fill none stroke-linecap round stroke-width 3 stroke black ellipse 94,20 60,60 60,120' -rotate 180 -stroke black -strokewidth 6 -draw 'line 96,93 58,62' -draw 'line 96,93 63,57' -draw 'line 115,93 155,62' -draw 'line 115,93 151,57' ~/Bla/emo.png
Mit dem Programm xmessage kann man auf dem Bildschirm Fenster erzeugen
xmessage "Hoffentlich gibt es am Wochenende keinen Regen!"
Das Fenster schließt man durch Klicken auf "okay" oder "X", erst dann wird das Terminal wieder frei für Neues. Das Besondere ist dabei die Möglichkeit von Buttons auf die man klicken kann
xmessage -buttons "Gerne,Vielleicht,Bin verhindert" "Kommst DU am Wochenende mit zum Picnic?"
Nun kann man auf die Schaltflächen klicken aber es passiert noch nichts, außer daß sich das Fenster schließt. Natürlich muß man festlegen was denn beim Klicken passieren soll. Es werden den Schaltflächen intern Zahlen zugeordnet (sogenannte Rückgabewerte). Die erste Schaltfläche von links erhält die Zahl 101 die folgende Schaltfläche erhält die Zahl 102 und so weiter. Man kann diese Rückgabewerte abfragen durch: 
xmessage -buttons "Gerne,Vielleicht,Bin verhindert" "Kommst DU am Wochenende mit zum Picnic?"; echo $?
Nachdem einer der Buttons gedrückt wurde sieht man im Terminal den Rückgabewert. Das was passieren soll schreibt man in ein script, das hier in dem Ordner ~/Bla abgelegt werden soll:
nano ~/Bla/scA.sh
Eingabe in den Editor:
#!/bin/bash

xmessage -buttons "Gerne,Vielleicht,Bin verhindert" "Kommst DU am Wochenende mit zum Picnic?"
RESULT=$?

if [ $RESULT -eq 101 ]; then
xmessage "TOLL"

elif [ $RESULT -eq 102 ]; then
xmessage "BITTE KOMM DOCH"

else
xmessage "SCHADE"

fi
Im Script wird zunächst eine Variable RESULT erzeugt, die den Rückgabewert der Schaltfächen übernimmt. Dann geht es weiter in der Form 
Wenn [Rückgabewert=101] also 1. Schaltfläche von links gedrückt wurde, dann "TOLL" 
Wenn [Rückgabewert=102] also 2. Schaltfläche von links gedrückt wurde, dann "BITTE KOMM DOCH" 
Ansonsten (als Möglichkeit bleibt nur noch das Drücken der 3. Schaltfläche von links) "SCHADE"
Nun muß man diese Datei ausführbar machen:
chmod +x ~/Bla/scA.sh
Der Aufruf des Scriptes erfolgt mit:
~/Bla/scA.sh
Klickt man jetzt auf die Schaltfläche "Bin verhindert" so erscheint das Fenster

Dies kann man schon als ein klitzekleines Programm auffassen. Nun möchte man daß das Programm nicht über das Terminal gestartet wird sondern durch Klicken auf ein Symbol das z.B. auf dem Desktop abgelegt wurde. Dazu muß natürlich das Ablegen von Dateien auf dem Desktop möglich sein (siehe dazu die Seite: Debian Gnome Ordner Terminal). 

Zudem muß man ausführbare Textdateien klickbar machen. Natürlich sollte man unbedingt daran denken daß diese Einstellung bei unbekannten Dateien (besonders solchen aus dem Internet) Gefahren mit sich bringt. Dazu ruft man im Persönlicher Ordner die Einstellungen auf:



Dann macht man auf das Symbol der Datei scA.sh einen Rechtsklick und wählt Eigenschaften.

Man schreibt in das Namen-Feld den neuen Namen, hier Picnic. Das Icon jeder Datei kann man leicht ändern indem man bei dem Eigenschaften-Menü auf das Icon klickt und ein anderes Bild auswählt. Also klickt man auf das alte Icon und wählt die Datei C8.png aus dem Ordner Bla, dann schließt man das Eigenschaften-Menü.
Nun kann man mit einem Doppelklick auf    das Programm starten und die Schaltflächen erzeugen eine sichtbare Reaktion.
Durch Ablage der Datei im Ordner ~/Desktop erscheint diese auf dem Desktop.
Wenn man den Desktop nicht bepflastern will, kann man einen anderen Ordner erstellen in dem Programmstarter gesammelt werden, vielleicht mit dem Namen Cockpit oder Startrampe oder Favoriten oder... 

xmessage kann man durch zusätzliche Angaben optisch aufwerten und man kann natürlich auch andere Aktionen mit den Buttons auslösen. 

-title "eigener Text"    Änderung der Fenster-Überschrift 

-fn '-*-*-*-r-*--25-0-0-0-p-*-iso8859-1'    größere Schrift (Skalierungsfaktor ist hier 25, andere Werte sind möglich) 

-center    zentrierte Ausrichtung des Fensters 

-file    Anzeige des Inhaltes einer Text-Datei, die dann nachfolgend benannt werden muß 

Also neues Beispiel
nano ~/Bla/scB.sh
Eingabe in den Editor:
#!/bin/bash

xmessage -fn '-*-*-*-r-*--25-0-0-0-p-*-iso8859-1' -title "Datei-Anfrage" -center -buttons "JA sofort,Kenne ich nicht" "Kannst DU mir die Dateien aus dem /-Verzeichnis zeigen?"
RESULT=$?

if [ $RESULT -eq 101 ]; then
xmessage -title "/-Dateien" -file ~/Bla/Info.txt

else
display ~/Bla/emo.png

fi
Nun muß man diese Datei ausführbar machen:
chmod +x ~/Bla/scB.sh
Mit Rechtsklick auf die Datei wählt man wieder Eigenschaften. 
Dann vergibt man einen Namen, hier etwa 
Rechner
Für das Icon wählt man die Datei C7.png aus dem Ordner Bla, dann schließt man das Eigenschaften-Menü. 
Doppelklick auf      ergibt:

Es gibt ein anderes Programm mit Namen zenity das sehr professionelle Fenster erzeugt. So ist das entsprechende Fenster von 
xmessage -title "/-Dateien" -file ~/Bla/Info.txt
in dem Programm zenity 
zenity --text-info --title="Suchergebnisse" --filename="/home/abc/Bla/Info.txt"

                   

Das Fenster von zenity sieht super aus aber man muß den vollen Pfad angeben, ~/ funktioniert hier nicht (abc muß natürlich durch Ihren username ersetzt werden). Und es wird eine Fehlermeldung ausgegeben, die vielleicht bei Programmiersprachen eine Bedeutung hat.
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.

Hier kann man diese Meldung einfach ignorieren, schließlich funktioniert alles. Trotzdem nervt die Meldung und so ist es eine gute Lösung diese einfach in der Luft verpuffen zu lassen durch 
2> /dev/null
Also ruft man die zenity-Fenster mit diesem Zusatz auf (abc muß natürlich durch Ihren username ersetzt werden)

zenity --text-info --title="/-Dateien" --filename="/home/abc/Bla/Info.txt" 2> /dev/null

Eine andere Fenster-Version ist eine Text-Eingabebox, zenity --entry . Um den Rückgabewert zu sehen kann man verwenden
szEingabe=$(zenity --entry --text "Bitte einen Text eingeben" --entry-text "hier schreiben" 2> /dev/null); echo $szEingabe
Tipp man jetzt in dem Programmfenster an der Stelle von 
hier schreiben
den Text ein 
mal sehen 
so zeigt sich nach Klicken auf OK im Terminal dieser Text (mal sehen) als Rückgabewert.

Eine weitere Fenster-Version ist eine Ordner-Auswahlbox, 
zenity --file-selection --directory 
Um den Rückgabewert zu sehen kann man verwenden
szPath=$(zenity --file-selection --directory --title "Bitte Ordner auswählen" 2> /dev/null); echo $szPath
Markiert man jetzt in dem Programmfenster einen Ordner (man kann wie üblich Unterordner öffnen) so zeigt sich nach Klicken auf OK im Terminal der Pfad zum zuvor markierten Ordner als Rückgabewert. 

Wenn man sich jetzt an die Suchfunktionen auf den Seiten 
Debian Gnome Ordner Terminal
Debian Gnome Nano 
erinnert und die dort vorgestellten Scripte nachgebaut hat, so kann man diese Suchfunktion jetzt ganz professionell gestalten.  
Also neues Beispiel
nano ~/Bla/scS.sh
Eingabe in den Editor:
#!/bin/bash

szPath=$(zenity --file-selection --directory --title "In welchem Ordner soll gesucht werden" 2> /dev/null)

szSuch=$(zenity --entry --text "Suchwort eingeben" --entry-text "Suchwort" 2> /dev/null)

xmessage -fn '-*-*-*-r-*--20-0-0-0-p-*-iso8859-1' -title "Datei-Suche" -center -buttons "Excel txt,Libre Office,Word" "Welche Datei-Art soll durchsucht werden?"
RESULT=$?

if [ $RESULT -eq 101 ]; then
grep -rni -e "$szSuch" "$szPath" > ~/Bla/TMP.sh
zenity --text-info --filename="/home/abc/Bla/TMP.sh" --title="Suchergebnisse" 2> /dev/null
rm -v -f ~/Bla/TMP.sh

elif [ $RESULT -eq 102 ]; then
~/.searchodt "$szPath" "$szSuch" > ~/Bla/TMP.sh
zenity --text-info --filename="/home/abc/Bla/TMP.sh" --title="Suchergebnisse" 2> /dev/null
rm -v -f ~/Bla/TMP.sh

else
~/.searchdoc "$szPath" "$szSuch" > ~/Bla/TMP.sh
zenity --text-info --filename="/home/abc/Bla/TMP.sh" --title="Suchergebnisse" 2> /dev/null
rm -v -f ~/Bla/TMP.sh

fi
Nun muß man diese Datei ausführbar machen:
chmod +x ~/Bla/scS.sh
Mit Rechtsklick auf die Datei wählt man wieder Eigenschaften.
Dann vergibt man einen Namen, hier etwa 
Suche
Für das Icon wählt man die Datei C6.png aus dem Ordner Bla, dann schließt man das Eigenschaften-Menü. 
Nach Doppelklick auf      öffnet sich ein Fenster in dem man einen Ordner bestimmen kann in dem anschließend gesucht wird. Nach Klicken auf OK öffnet sich ein neues Fenster in dem man einen Suchbegriff eingeben kann. Dies können auch Satzteile sein die Leerzeichen enthalten. Bei 'Libre Office'-Dateien und bei Word-Dateien können die Worte auch Umlaute enthalten. 
Bei 'Excel txt'-Dateien sollten keine Umlaute enthalten sein

Nach Klicken auf OK öffnet sich ein Fenster in dem die Datei-Art bestimmt werden kann.

Nachdem ein Button gedrückt wurde beginnt die Suche und die Ergebnisse werden danach angezeigt.

zur Übersicht nächste Seite

Datenschutzerklärung
Impressum