ubuntuusers.de

ubuntuusers.deWikiBaustelleyad

yad

Artikel in Arbeit

Dieser Artikel wird momentan von cornix und Julian92 erstellt. Als Fertigstellungsdatum wurde der 01.07.2012 angegeben.


Achtung: Insbesondere heißt das, dass dieser Artikel noch nicht fertig ist und dass wichtige Teile fehlen oder sogar falsch sein können. Bitte diesen Artikel nicht als Anleitung für Problemlösungen benutzen!

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

./yad_logo.png yad (yet another dialog) ermöglicht das Erzeugen grafischer Dialoge aus Shell-Skripten heraus oder auf der Kommandozeile. YAD ist eine Abspaltung (Fork) von Zenity, und bringt einige Verbesserungen mit sich. So kennt yad nicht nur mehr, sondern auch komplexere Dialoge. Die Syntax von YAD ähnelt der von Zenity sehr.

Dieser Artikel ist keine vollständige Dokumentation der Möglichkeiten von YAD. Er gibt einen Einstieg in den Umgang mit dem Programm. Für weitere Hilfe sei auf die Manpage und die Hilfeoptionen des Programmes verwiesen.

Installation

Das Programm ist noch nicht in den offiziellen Paketquellen enthalten, kann aber über das PPA [1] des Y PPA Managers {en} bezogen werden:

Adresszeile zum Hinzufügen des PPAs:

  • ppa:webupd8team/y-ppa-manager

Hinweis!

Zusätzliche Fremdquellen können das System gefährden.


Weitere Informationen bietet die Wiki/Vorlagen/PPA/ppa.png PPA-Beschreibung vom Benutzer/Team webupd8team.

Damit Pakete aus dem PPA genutzt werden können, müssen die Paketquellen neu eingelesen werden.

Nach dem Auffrischen der Paketquellen kann folgendes Paket installiert [2] werden:

  • yad (ppa)

Wiki/Vorlagen/Installbutton/button.png

Bedienung

yad wird von der Kommandozeile oder aus Skripten heraus aufgerufen. Die Rückgabe erfolgt auf der Standardausgabe oder wird in Skripten in Variablen oder Arrays gesichert.

yad --text 'Hallo Welt!' 

Dieses einfache Beispiel kann man mit weiteren Argumenten verfeinern:

yad --title 'Beispiel Fenster' \
--window-icon=gtk-about \
--geometry=400x100 \
--button=gtk-close \
--text 'Hallo Welt!' 

Dies ein Einzeiler, der der besseren Lesbarkeit halber auf mehrere Zeilen verteilt wurde, weshalb die Zeilenumbrüche mit dem Backslash \ maskiert werden.

Separatoren

Die Ausgabe und bei einigen Aktionen auch die Eingabe nutzt Separatoren zum Trennen einzelner Einträge. Voreingestellt sind das Zeichen | zum trennen der Einträge und das Zeichen ! zum Trennen der einzelnen Wertzuweisungen in einem Eintrag. Fragt man also zwei Werte, eine Zahl und ein Wort, mittels yad ab, so wird die Ausgabe beispielsweise

1|eins

lauten. Übergibt man yad, beispielsweise bei einem Formular, Argumente, so sieht die Eingabe etwa so aus:

Wert1!Wert2

Etwas komplexer wird dies bei der Anzeige im Benachrichtigungsfeld, wenn mehrere Einträge im Kontextmenü gewünscht sind (Symbole (Icons) für Menüeinträge im Benachrichtigungsfeld sind erst ab svn-Revision 471 verfügbar):

menu:EINTRAG1!AKTION1!ICON1|EINTRAG2!AKTION2!ICON2

Hier wird der Unterschied zwischen den Haupt-Separatoren | (--separator) und den Separatoren für einzelne Einträge ! (--item-separator) deutlich. Die Separatoren können über die entsprechenden Optionen festgelegt werden.

Formulare

Ein Formular (--form) besteht aus Feldern (--field). Felder beinhalten Einträge, die durch Separatoren getrennt sind und in denen mehrere Werte übergeben werden können, welche durch weitere Separatoren getrennt sind.

Feldtypen

Folgende Tabelle zeigt die verschiedenen Typen der Felder.

Feldtypen in Formularen
Typ Beschreibung
RO read only - nur lesbares Feld
NUM numeric - Dezimalzahl
CHK Checkbox
CBE combobox - editierbare Combobox
FL Schaltfläche für Dateiauswahl
SFL Feld zum Erstellen einer Datei
DIR Schaltfläche für Verzeichniswahl
CDIR Feld zum Erstellen eines Verzeichnisses
FN Schaltfläche für Schriftauswahl
MFL Multiple Dateiauswahl
DT Datumsfeld
CLR Farbauswahl
BTN Schaltfläche
LBL Textfeld (leer == horizontaler Trenner)

Wie die Felder in der Praxis aussehen und wie die Optionen verwendet werden, kann man an folgendem kleinen Beispiel sehen.

./field.png

Zugehöriger Befehl:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
yad \
--title="Field Optionen" \
--form \
--item-separator=, \
--separator=" " \
--field="Nur lesbares Feld:RO" Text \
--field="Auswahl einer Zahl:NUM" \
--field="Ich bin eine Checkbox:CHK" \
--field="Editierbares Feld:CBE" Text \
--field="Dateiauswahl:FL" \
--field="Hier kannst du eine Datei erstellen:SFL" \
--field="Verzeichnisauswahl:DIR" \
--field="Hier kannst du ein Verzeichnis erstellen:CDIR" \
--field="Schriftartauswahl:FN" \
--field="Hier kannst du mehrere Dateien wählen:MFL" \
--field="Wähle ein Datum:DT" \
--field="Wähle eine Farbe:CLR" \
--field="Ich bin ein klickbarer Button:BTN" \
--field="Ich bin ein Textfeld:LBL" \
--field="Texteingabe:TEXT" \
--button="Ich bin Button 1" \
--button="Ich bin Button 2" \
--button="Ich bin Button 3" \
--button="Ich bin Button 4"

Auch dies ein Einzeiler, der der besseren Lesbarkeit halber auf mehrere Zeilen verteilt wurde. Zeilenumbrüche wurden mit einem Backslash \ maskiert.

Anwendungsbeispiele

Passwortabfrage

./example1.png

1
2
3
4
#! /bin/bash
eingabe="$(yad --entry --hide-text --button="Auswerten" --title="Passwort" --text="Gebe ein Passwort ein:")"

yad --info --text="Die Eingabe war $eingabe"

Es wird nach einer Eingabe (--entry) gefragt. Die Eingabe soll durch Sternchen verschleiert werden (--hide-text). Mit (--text) sagen wir dem Benutzer, was er zu tun hat. Was im Fenstertitel steht, definieren wir mit der Option (--title). Abschließend gibt es noch einen Button, der den Dialog beendet (--button).

Die Eingabe des Benutzers wird im vorliegenden Beispiel in einer Variable ($eingabe) gespeichert.

Mit dem zweiten YAD-Befehl lassen wir uns den Inhalt dieser Variable in einem Textdialog ausgeben.

Zahlenabfrage

./example2.png

1
2
3
4
5
6
7
8
#! /bin/bash
array=($(yad \
--item-separator="," \
--separator="\\n" \
--form \
--field="Wähle einen Wert":NUM 5,1..10,1))

yad --info --text="Der Wert ist ${array[0]}"

In diesem Formular (--form) fragen wir in einem Zahlenfeld (--field) nach einem Wert. Dieser Wert wird in einem Array gespeichert.

Mit dem zweiten YAD-Befehl wird die Eingabe des Benutzers in einem Textdialog ausgegeben.

..

Entscheidungsabfrage

Diese Revision wurde am 23. Mai 2012 18:50 von Hexe25 erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Shell, Programmieren

Passwort vergessen?