zur Übersicht

nächste Seite


Programmfenster

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 (siehe für Copy und Paste die Seite: Debian Gnome Teil2 Terminal). 
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 aktiviert worden sein (siehe dazu die Seite: Debian Gnome Teil2 Terminal). Zudem braucht man einen sogenannten Programmstarter. Dazu wird in dem Ordner Vorlagen eine Programmstarter-Vorlage erzeugt die man dann immer wieder verwenden kann

nano ~/Vorlagen/Neuer_Starter.desktop

Eingabe in den Editor: 

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=Neuer_Starter
GenericName=
Comment=
Exec=
Icon=/usr/lib/libreoffice/share/gallery/symbols/Pin.svg
Terminal=false
Type=Application
StartupNotify=false
Name[de]=Neuer_Starter
GenericName[de]=
Comment[de]="

Nun muß man diese Datei ausführbar machen: 

chmod +x ~/Vorlagen/Neuer_Starter.desktop

Diese Vorlage kann man nun immer wieder verwenden indem man einen Rechtsklick auf dem Desktop oder in einem Ordner macht und auswählt
Neues Dokument
Neuer_Starter
Es entsteht eine neue Datei mit Pin-Symbol. Zunächst gibt man dieser Datei einen Namen, hier etwa
Picnic
. Auf das Pin-Symbol macht man anschließend einen Rechtsklick und wählt Eigenschaften.  

Man füllt die Felder entsprechend aus (abc muß natürlich durch Ihre Kennung ersetzt werden). 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 Pin-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. 
Wenn man den Desktop nicht bepflastern will, kann man einen 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

Anschließend erstellt man wieder einen Programmstarter indem man einen Rechtsklick auf dem Desktop oder in einem Ordner macht und auswählt 
Neues Dokument 
Neuer_Starter 
Dann vergibt man einen Namen, hier etwa 
Rechner
Auf das Pin-Symbol macht man anschließend einen Rechtsklick und wählt Eigenschaften. Man füllt die Felder entsprechend aus, wie vorher aber jetzt mit  scB.sh
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 mit Ihrer Kennung 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 mit Ihrer Kennung 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 Teil2 Terminal
Debian Gnome Teil3 Nano 
erinnert und die dort vorgestellten Scripte nachgebaut hat, so kann man diese Suchfunktion jetzt ganz professionell gestalten. 
Hat man diese Scripte nicht sofort zur Verfügung so funktioniert auf jeden Fall die Such-Auswahl bei Excel-Dateien (bzw. txt-Dateien). 
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
egrep -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

Anschließend erstellt man wieder einen Programmstarter indem man einen Rechtsklick auf dem Desktop oder in einem Ordner macht und auswählt 
Neues Dokument 
Neuer_Starter 
Dann vergibt man einen Namen, hier etwa 
Suche
Auf das Pin-Symbol macht man anschließend einen Rechtsklick und wählt Eigenschaften. Man füllt die Felder entsprechend aus, wie vorher aber jetzt mit  scS.sh
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 im 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