Skripte mit grafischer Oberfläche (GUI) unter KDE

KDialog stellt Bash-Entwicklern eine Vielzahl von Dialogen zur Verfügung, die im Qt/Kde-Stil dargestellt werden.

Beispiel: Letztes Login

Das folgende Skript gibt nach der Anmeldung Auskunft darüber, wann die letzte Anmeldungen erfolgten. Auf diese Weise kann ein Passwortmissbrauch leichter aufgedeckt werden.

echo -e "Willkommen $USERNAME. Die folgende Übersicht zeigt dir, wann du dich zumletzten Mal angemeldet hast: \n`last |grep $USER |tac |tail`" >/tmp/$USER.last && kdialog --textbox /tmp/$USER.last 500 300

Beispiel: Sorter

# sorter.sh
# Dieses Bashscript verwendet kdialog (KDE). Der Nutzer wählt eine Datei, die sortiert wird.
# Anschließend kann das Ergebnis in eine neue Datei gespeichert werden.
#
src=$(kdialog --title 'Bitte wählen Sie eine Datei aus, deren Zeilen sortiert werden sollen...' --getopenfilename ~)
if [[ -e "$src" ]]
     then 
        sort "$src" >"$src.sorted.tmp"
        kdialog --textbox "$src.sorted.tmp" 760 580
        dest=$(kdialog --title 'Speichern der sortierten Ausgabe unter...' --getsavefilename $src)
        if [[ -e "$dest" ]]
           then
                kdialog --error "Die Datei existiert"
                rm "$src.sorted.tmp" 
           else
                mv "$src.sorted.tmp" "$dest"
        fi
     else
        kdialog --error "Die Datei existiert nicht"
fi

Nachrichten versenden

Jeder andere Nutzer kann deine Skripte ausführen, wenn du dies erlaubst. Dazu müssen die Dateirechte geändert werden:

chmod a+x skriptdateiname 

Damit du der Empfängerin aber direkt Dialoge auf den Bildschirm zaubern kannst, muss sie erst 'fremde' Grafik erlauben. Mit xhost spricht sie dafür Einladungen aus bzw. widerruft diese:

Um dir eine Nachricht zu senden, benötigt man außerdem die 'Adresse' deines Bildschirms, die sogenannte Displaynummer. Die erfährst du, wenn du z.B. in der Konsole echo $DISPLAY eingibst. Wenn deine Displaynummer z.B. ltsp013:0.0 lautet, kann dir nun dein Nachbar einen Taschenrechner schicken mit xcalc -display ltsp013:0.0.

Der folgende Befehl schickt dem 5. Terminal große rote Augen:

Um der Nachbarin einen KDialog auf den Schirm zu zaubern, braucht es nur wenig mehr:

In einem Shell-Skript reicht es aus, am Anfang DISPLAY auf den gewünschten Wert zu setzen; im weiteren Skript kann dann kdialog wie gewohnt verwendet werden:

Mit Hilfe von Menüs und Variablen kannst du dem Skript sogar beibringen, bei jedem Start zu fragen, an welchen Rechner die Nachrichten geschickt werden sollen...

Lösung bei gesperrtem TCP/IP-Zugang

Die meisten X-Server erlauben keine TCP/IP-Verbindung von außen, so dass die beschriebene Kommunikation nur innerhalb des Terminalservers (Thin Clients) funktioniert.

Bei Workstations ist es möglich, sich zunächst per ssh auf dem Empfängerrechner anzumelden und dann die Nachricht auf das richtige Display zu schicken:

{{{ ssh -X static07 # oder: ssh -X 10.0.2.57 DISPLAY=:0.0 kdialog --msgbox 'Hallo' }}}

Tutorien und Anleitungen

# ToDo: Continue

RalfGesellensetter/Entwicklung/Kdialog (zuletzt geändert am 2013-11-03 12:10:39 durch anonym)

Alle Inhalte in diesem Wiki stehen unter der GPL.