Home / LinuxUser / 2008 / 06 / Klacker, Klacker, Klick, Klick

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(179 Punkte bei 5 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)
Mageia 2 ist fertig
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Klacker, Klacker, Klick, Klick

GUI-Komfort für Bash, Shell und Co.

01.06.2008 Häufig erledigen Skripte ihre Aufgaben unsichtbar im Hintergrund. Mancher User wünscht sich aber ein visuelles Feedback. Dank Zenity und KDialog fügen sich Ihre Skripte nativ in die KDE- oder Gnome-Umgebung ein.

Linux-Anfänger jubeln selten begeistert auf, wenn sie auf die Kommandozeile müssen: Der Schritt weicht vom gewohnten Umgang mit Computern ab. Aber auch fortgeschrittene Anwender wüssten mitunter gern, was das selbstgebaute Skript gerade so treibt. Wer gern viel mit der Maus erledigt, dem erleichtern Gnomes Zenity und KDEs KDialog das Leben.

Die Software landet bei der Installation von OpenSuse, Ubuntu und Kubuntu automatisch auf Ihrem Rechner – abhängig davon, ob Sie Gnome oder KDE installieren. Auch KDE 4 hat bereits KDialog im Gepäck, wie die Screenshots beweisen. Andernfalls installieren Sie die Pakete kde4-dialog respektive zenity nach. Wollen Sie Ihr Skript weitergeben, sollten Sie eine kleine Abfrage einbauen, die prüft, ob Zenity und KDialog auf dem fremden Rechner laufen. Anschließend statten Sie Ihre Bash- und Shell-Skripte mit Gnomes GTK-Dialogen und KDEs Qt-Fenstern aus.

Starten Sie dann ein Skript, poppen Dialogfenster auf, die Fragen stellen, Informationen liefern oder Sie über den Fortgang eines Prozesses informieren. Dieses grafische Feedback fehlt in Skripten gewöhnlich. Auch Fehlermeldungen und allgemeine Statusinformationen liefern Zenity und KDialog in Form von visuellen Rückmeldungen. Pfade tippen Sie nicht mehr mühevoll per Hand ein, sondern wählen sie über einen grafischen Dateimanager aus. Schön auch: Zenity und KDialog lassen sich sehr einfach einbinden. Wir zeigen Ihnen, welche Arten von Dialogfenstern es gibt und wie Sie diese einsetzen.

Zenity in Aktion

Sie beginnen am besten mit dem einfachen Shell-Skript aus Listing 1. Speichern Sie es unter dem Namen zenity, machen Sie es über chmod u+x zenity ausführbar und rufen Sie es dann über ./zenity auf. Sie sehen nun einen Schieberegler wie in Abbildung 1. Da das Dialogfenster keinen Namen trägt und der Text für den Schieberegler noch fehlt, greift Zenity auf Standardbeschriftungen zurück.

Listing 1
#!/bin/sh
zenity --scale

Die Tabelle "Zenity" zeigt, welche Typen von Dialogfenstern es gibt. Links sehen Sie den Parameter, mit dem Sie Zenity aufrufen. Daneben sehen Sie jeweils ein Bild des Dialogfeldes.

Wie man dort sehen kann, gibt es auch Felder, in die Sie Werte eingeben. Die liest die Bash nach einem Klick auf OK ein, etwa beim Eingabefeld (--entry). Nutzen Sie den Schieberegler (--scale), um der Bash einen bestimmten Zahlenwert zu übergeben. Gefundene Informationen listen Sie mit Hilfe von --list auf – sie lassen sich nach einem Klick auf den Feldnamen auch sortieren. Einen Fortschrittsbalken setzen Sie nur dort ein, wo es auch Fortschritt gibt: So lässt sich etwa eine Suchaktion grafisch begleiten. Zunächst aber ein paar Basics.

Aufbauspiel

Um Fenstern einen eigenen Namen zu geben, setzen Sie generell --title ein (Listing 2, Zeile 1). Das sieht dann aus wie in Abbildung 1, aber nun fehlt noch etwas Funktionalität. Die Zeile 2 von Listing 2 zeigt, wie Sie Benutzer Werte zwischen Eins (--min-value=1) und Zehn (--max-value=10) auswählen und mit einem Standardwert von Fünf (--value=5) beginnen lassen.

Abbildung 1: Über einen Schieberegler generieren Anwender mit Hilfe eines grafischen Tools Zahlen.

Listing 2
zenity --scale --title "Schieberegler" --text "Schieben Sie ruhig ein bisschen…"
zenity --scale --title "Schieberegler" --text "Schieben Sie ruhig ein bisschen…" --min-value=1 --max-value=10 --value=5

Natürlich gibt es nicht unendlich viele Parameter, mit denen Sie den Schieberegler füttern dürfen: man zenity zeigt in einem eigenen Abschnitt mit der Überschrift Scale Options, welche Optionen zusammen mit --scale funktionieren. Für ein Warnfeld (--warning) können Sie beispielsweise nur den Text festlegen und Umbrüche markieren.

Einige Typen entfalten ihre Wirkung auch nur in Verbindung mit anderen Befehlen. Das folgende Kommando zeigt die Dateien eines Verzeichnisses in einer Liste an und sortiert sie alphabetisch, sobald Sie auf Verzeichnisinhalt klicken (Abbildung 2):

ls | zenity --list --column "Vererzeichnisinhalt"

Abbildung 2: Zenity listet den Inhalt eines Verzeichnisses auf und sortiert ihn beim Klick auf Verzeichnisinhalt alphabetisch.

Zwar bastelt Zenity Ihnen schöne grafische Menüs, das Entwickeln der Programmlogik nimmt es Ihnen allerdings nicht ab. Um zu entscheiden, was ein Skript tut, wenn Sie auf OK oder Abbrechen drücken, schreiben Sie eine kleine If-Abfrage (Listing 3).

Listing 3
kdialog --yesno "Wollen Sie die Datei wirklich löschen?"
  if [ $? = 0 ]; then
    echo "OK gewählt"
    Hier fügen Sie beliebigen Code zum Ausführen ein.
  else
    echo "Abbrechen gewählt"
  fi

Generell gibt es bei Zenity und KDialog zwei interne Rückgabewerte für die eingesetzten Dialogfelder: Ein positives Ergebnis (OK) gibt "0", ein negatives "1" (Abbrechen) und ein drittes Ergebnis – beispielsweise Cancel von KDialog – "2" zurück. Abfragen können Sie diese Rückgabewerte, indem Sie die Variable $? auswerten.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare
zenity und kdialog
someone (unangemeldet), Sonntag, 08. Februar 2009 11:03:26
Ein/Ausklappen

Wäre gut, wenn beide programme die selben parameter hätten,
oder einen Kompatibilitäts-schalter. Warum können gnome u. kde Entwickler nicht ein bisschen zusammenarbeiten, anstatt immer Extrawürste zu braten ?

Will nicht rummeckern, aber das wäre sicher leicht machbar und vor allem SINNVOLL, ausserdem nicht mit viel mehr Arbeit verbunden gewesen.


Bewertung: 198 Punkte bei 20 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

2442 Hits
Wertung: 165 Punkte (13 Stimmen)

Schlecht Gut

Infos zum Autor

Kristian Kißling

Kristian Kißling

Wenn Kristian Kißling nicht gerade für die LinuxCommunity schreibt, arbeitet er als Redakteur bei der Zeitschrift EasyLinux und als Chefredakteur für den Ubuntu User. Am liebsten beschäftigt er sich mit Multimedia- und Unterhaltungssoftware im weiteren Sinne und mit neuer Open-Source-Software, die überraschende Fähigkeiten zeigt.

Zum Blog von Kristian Kißling →


Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...