dialog / kdialog

Mit dem dialog-Befehl (bzw. kdialog-Befehl) könne in Scripten Abfragedialoge verwendet werden.

Mögliche Arten von Dialogen:

 --yesno Rückfrage mit Knöpfen für Ja/Nein
 --yesnocancel Rückfrage mit Knöpfen für Ja/Nein/Abbrechen
 --warningyesno Warnung mit Knöpfen für Ja/Nein
 --warningcontinuecancel Warnung mit Knöpfen für Fortfahren/Abbrechen
 --warningyesnocancel Warnung mit Knöpfen für Ja/Nein/Abbrechen
 --sorry „Bedaure“-Nachricht
 --error Fehlermeldung
 --msgbox Benachrichtigung
 --inputbox Eingabefeld
 --password Passwort-Dialog
 --textbox Textfeld-Dialog
 --textinputbox Eingabefeld-Dialog
 --combobox Kombinationsfeld-Dialog
 --menu Menü-Dialog
 --checklist Ankreuzliste
 --radiolist Auswahldialog
 --passivepopup Passives Aufklappfenster (Popup)
 --getopenfilename Dialog zum Öffnen einer Datei
 --getsavefilename Dialog zum Speichern einer Datei
 --getexistingdirectory Dialog zur Auswahl eines Ordners
 --getopenurl Dialog zum Öffnen einer Adresse (URL)
 --getsaveurl Dialog zum Speichern einer Adresse (URL)
 --geticon Dialog für die Symbolauswahl
 --progressbar Dialog für Fortschrittsanzeige. Gibt für die Kommunikation eine D-Bus-Referenz aus.
 --getcolor Dialog zur Auswahl einer Farbe
 --dontagain Einrichtungsdatei und Optionsname zum Speichern des Status „nicht noch einmal anzeigen/fragen“
 --slider Schieberegler-Dialog, gibt den ausgewählten Wert zurück
 --calendar Kalender-Dialog, gibt ein Datum zurück

Optionen zur Konfiguration:

 --yes-label Text als Beschriftung des „Ja“-Knopfes verwenden
 --no-label Text als Beschriftung des „Nein“-Knopfes verwenden
 --cancel-label Text als Beschriftung des „Abbrechen“-Knopfes verwenden
 --continue-label Text als Beschriftung des „Weiter“-Knopfes verwenden
 --title Dialog-Titel
 --default Voreingestellter Eintrag für Kombinationsfeld, Menü und Farbe
 --multiple Ermöglicht die Rückgabe mehrere Dateien bei Anwendung der Parameter --getopenurl und --getopenfilename
 --separate-output Listenelemente in separaten Zeilen ausgeben (für die Optionen checklist und Dateien öffnen mit --multiple)
 --print-winid Gibt die winId (Fenster-Kennung) für jeden Dialog aus
--attach Macht den Dialog transient für X-Programme, die von winId vorgegeben werden

Beispiele:

path=/home/user/folder/
ans=`kdialog --caption "Ordner wählen" --getexistingdirectory $path` 2> /dev/null > /dev/null
[ $? = 0 ] && path=$ans
path=/home/user/folder/
outfile=`kdialog --caption "Titel" --getopenfilename $path *.txt`
[ $? = 0 ] && file=$outfile
kdialog --caption "Titel" --yesno "Text"
[ $? = 0 ] && echo "Ja wurde gewählt"
anzahl=`kdialog --caption "Titel" --inputbox "Anzahl eingeben?" 2`
[ $? = 1 ] && anzahl=1
kdialog --caption "Titel" --msgbox "Infotext"
SRC=/home/user/.crypt
DST=/home/user/crypt
kdialog --title "encFS: Enter passphase..." --password "Enter passphrase for [$DST]" | encfs $SRC $DST
#!/bin/bash
ans=`kdialog --caption "Titel" --geometry 250x250 --menu "Text" \
 a "Auswahl 1" \
 b "Auswahl 2" \
 c "Auswahl 3" \
 d "Auswahl 4"`
if [ $? = 0 ]; then
 case $ans in
 a) echo "Auswahl 1";;
 b) echo "Auswahl 2";;
 c) echo "Auswahl 3";;
 d) echo "Auswahl 4";;
 esac
fi
#!/bin/bash
qdbusRef=$(kdialog --progressbar 'Text')
qdbus $qdbusRef Set "" maximum 100 > /dev/null
qdbus $qdbusRef Set "" autoClose true > /dev/null
qdbus $qdbusRef showCancelButton true > /dev/null
qdbus $qdbusRef setLabelText "Text für Dialog" > /dev/null
sleep 2

for ((i=1; i<=100; i++)); do
 cancelled=$(qdbus $qdbusRef org.kde.kdialog.ProgressDialog.wasCancelled)
 if [ "$cancelled" == "true" ]; then
 echo "cancelled"
 qdbus $qdbusRef org.kde.kdialog.ProgressDialog.close > /dev/null
 exit 1
 fi
 sleep 0.01
 qdbus $qdbusRef Set "" value $i > /dev/null
 qdbus $qdbusRef setLabelText "Schritt $i" > /dev/null
done