Thematisch zusammengefasst sind hier einige Artikel zu KDE-Applikationen, Dolphin's Servicemenüs und programmieren mit KDE Dialogboxen in Shellscripten.
Unter einem Servivemenü versteht man im KDE Dateimanger Dolphin, abhängig vom ausgewählten Dateityp, ein Kontextmenü das über die rechte Maustaste erreichbar ist. Die Einträge im Servicemenü kann man mit eigenen Aktionen recht einfach erweitern.
Eine Aktion für einen Servicemenüeintrag wird mit einer einfachen Textdatei mit der Endung .desktop angelegt (z.B. misc.desktop). In dieser .desktop Datei wird nun die Aktion hinterlegt, die im Kontextmenü für einen bestimmen Dateityp (z.B. JPG) angezeigt werden soll. Dies kann der Aufruf eines KDE Programms oder eines Shellscriptes sein das eine bestimmte Aktion mit der ausgewählten Datei abarbeitet. Mann kann auch mehrere Aktionen in einer .desktop zusammenfassen. Details bitte dazu unter nachfolgenden Kapitel mit den angegebenen Links nachlesen.
Ab KF5 gelten folgende Ablageorte. Lokal nur für den jeweiligen User $HOME/.local/share/kservices5/ServiceMenus und global für alle Benutzer unter /usr/share/kservices5/ServiceMenus.
Wer eigene Shellscripte programmiert hat mit KDialog die Möglichkeit grafische KDE Dialogboxen innerhalb von Shellscripten einzusetzen und somit optisch aufzuwerten. Einen ersten Einblick geben die beiden ersten Links, die restlichen Links detailreiche Informationen zur Programmierung mit KDialog.
Shell Scripting with KDE Dialogs (de)
KDialog - Dialogboxen für Shellscripte
Little Girl's Mostly Linux Blog - KDialog
Scott Ferguson - Using KDialog
How do i make the kdialog a certain width
Die Dialogboxen gibt es in verschiedenen Ausprägungen als
…und weitere.
Damit lassen sich einfache oder auch umfrangreiche Shellscripte optisch ansprechend zu gestalten.
Eine Kurzhilfe zu kdialog lässt sich über die Option –help anzeigen.
$ kdialog --help Aufruf: kdialog [Optionen] [arg] KDialog kann für die Anzeige hübscher Dialoge aus Shell-Skripten heraus benutzt werden. Optionen: -h, --help Zeigt Hilfe zu den Kommandozeilenoptionen an. --help-all Zeigt Hilfe einschließlich Qt-spezifischer Optionen an. -v, --version Zeigt Versionsinformation an. --author Autor-Informationen anzeigen. --license Lizenz-Informationen anzeigen. --desktopfile <Dateiname> Der Basis-Dateiname des Desktop-Eintrags dieser Anwendung. --yesno <text> Rückfrage mit Knöpfen für Ja/Nein --yesnocancel <text> Rückfrage mit Knöpfen für Ja/Nein/Abbrechen --warningyesno <text> Warnung mit Knöpfen für Ja/Nein --warningcontinuecancel <text> Warnung mit Knöpfen für Fortfahren/Abbrechen --warningyesnocancel <text> Warnung mit Knöpfen für Ja/Nein/Abbrechen --ok-label <text> Text als Beschriftung des „OK“-Knopfes verwenden --yes-label <text> Text als Beschriftung des „Ja“-Knopfes verwenden --no-label <text> Text als Beschriftung des „Nein“-Knopfes verwenden --cancel-label <text> Text als Beschriftung des „Abbrechen“-Knopfes verwenden --continue-label <text> Text als Beschriftung des „Weiter“-Knopfes verwenden --sorry <text> „Bedaure“-Nachricht --detailedsorry <text> <details> „Bedaure“-Nachricht mit erweiterbaren Detailfeld --error <text> Fehlermeldung --detailederror <text> <details> Fehlermeldung mit erweiterbaren Detailfeld --msgbox <text> Benachrichtigung --inputbox <text> <init> Eingabefeld --imgbox <file> Bildfeld-Dialog --imginputbox <file> <text> Bildfeld-Eingabedialog --password <text> Passwort-Dialog --newpassword <text> Neuer Passwort-Dialog --textbox <file> Textfeld-Dialog --textinputbox <text> <init> Textfeld-Eingabedialog --combobox <text> Kombinationsfeld-Dialog --menu <text> Menü-Dialog --checklist <text> Ankreuzliste --radiolist <text> Auswahldialog --passivepopup <text> <timeout> Passives Aufklappfenster (Popup) --icon <icon> Symbol für Aufklappfenster (Popup) --getopenfilename Dialog zum Öffnen einer bestehenden Datei (Argumente [Start-Ordner] [Filter]) --getsavefilename Dialog zum Speichern einer Datei (Argumente [Start-Ordner] [Filter]) --getexistingdirectory Dialog zur Auswahl eines bestehenden Ordners (Argumente [Start-Ordner]) --getopenurl Dialog zum Öffnen einer bestehenden Adresse (Argumente [Start-Ordner] [Filter]) --getsaveurl Dialog zum Speichern einer Adresse (Argumente [Start-Ordner] [Filter]) --geticon Dialog für die Symbolauswahl (Argumente [Gruppe] [Kontext]) --progressbar <text> Dialog für Fortschrittsanzeige. Gibt für die Kommunikation eine D-Bus-Referenz aus. --getcolor Dialog zur Auswahl einer Farbe --format <text> Mit --getcolor kann das Ausgabeformat angegeben werden --title <text> Dialog-Titel --default <text> 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 --dontagain <file:entry> Einrichtungsdatei und Optionsname zum Speichern des Status „nicht noch einmal anzeigen/fragen“ --slider <text> Schieberegler-Dialog, gibt den ausgewählten Wert zurück --calendar <text> Kalender-Dialog, gibt ein Datum zurück --attach <winid> Macht den Dialog transient für X-Programme, die von winId vorgegeben werden --embed <winid> Ein Synonym für --attach --geometry <geometry> Dialog-Geometrie: [=][<width>{xX}<height>][{+-}<xoffset>{+-}<y offset>] Argumente: [arg] Argumente – abhängig von der Grundeinstellung
$ kdialog --title "yesnocancel Textausgabebox" --yesnocancel "Textausgabe mit einem Ja-, Nein- und Abrechen-Button"
$ kdialog --title "yesno Warnungausgabebox" --warningyesno "Warnungausgabe mit einem Ja- und Nein-Button"
kdialog --title "yesno Warnungsausgabebox" --warningcontinuecancel "Warnungsausgabe mit einem Fortsetzen- und Abbrechen-Button"
$ kdialog --title "Warnungsausgabebox" --warningyesnocancel "Warnungsausgabe mit einem Ja-, Nein- und Abbrechen-Button"
$ kdialog --title "Warnungsausgabebox" --detailedsorry "Ein kurzer Warnungstext steht hier in der Box" "Details sind hier als zusätzlicher aufklappbarer Ausgabetext nachzulesen"
$ kdialog --title "Fehlerausgabebox" --detailederror "Ein kurzer Fehlerstext steht hier in der Box" "Details sind hier als zusätzlicher aufklappbarer Ausgabetext nachzulesen"
$ kdialog --title "Neues Passwort setzen" --newpassword "Bitte das neu zu vergebende Passwort zweimal eingeben"
$ kdialog --title "Textbox zur Eingabe" --textinputbox "Bitte den Text eingeben:" "Für eine größere Menge Text steht hier viel Platz zur Verfügung"
$ kdialog --title "Combobox zur Auswahl" --combobox "Bitte einen Option auswählen:" "Erste Option" "Zweite Option"
kdialog --title "Menübox zur Auswahl" --menu Menüauswahl "1" "Menüpunkt 1" "2" "Menüpunkt 2" "3" "Menüpunkt 3"
$ kdialog --title "Checkliste mit Vorbelegung" --checklist "Bitte auswählen oder Standardauswahl bestätigen" 1 "1. Auswahlpunkt" off 2 "2. Auswahlpunkt" on 3 "3. Auswahlpunkt" off
$ kdialog --title "Checkliste mit Einfachauswahl" --radiolist "Bitte auswählen oder Standardauswahl bestätigen" 1 "1. Auswahlpunkt" off 2 "2. Auswahlpunkt" on 3 "3. Auswahlpunkt" off
$ kdialog --passivepopup "Hier ist eine Popup-Benachrichtigung mit Timer die sich selbstständig schließt" 15
progress=$(kdialog --title "Fortschrittsanzeige" --progressbar "Fortschrittsanzeige von 1-5 Werten" 5) qdbus $progress showCancelButton true sleep 3 qdbus $progress Set "" value 1 > /dev/null qdbus $progress setLabelText "Wert entspricht 1: Ausgabetext " > /dev/null sleep 1 qdbus $progress Set "" value 2 > /dev/null qdbus $progress setLabelText "Wert entspricht 2: Ausgabetext " > /dev/null sleep 1 qdbus $progress Set "" value 3 > /dev/null qdbus $progress setLabelText "Wert entspricht 3: Ausgabetext " > /dev/null sleep 1 qdbus $progress Set "" value 4 > /dev/null qdbus $progress setLabelText "Wert entspricht 4: Ausgabetext " > /dev/null sleep 1 qdbus $progress Set "" value 5 > /dev/null qdbus $progress setLabelText "Wert entspricht 5: Ausgabetext " > /dev/null sleep 1 qdbus $progress close > /dev/null
kdialog --title "Diverse Ausgabemöglichkeiten mit HTML-Elementen innerhalb einer MsgBox" --msgbox " Eine Grafik lässt in sich gut darstellen mit einem HTML-Befehl<hr> <br> <img src='laptop_30.png'></img><br><br> weitere Textformatierungen, hier eine Liste..... <ul> <li><b>fett</b></li> <li><i>kursiv</i></li> <li><u>unterstrichen</u></li> </ul> oder auch Überschriften..... <h2>Große Überschrift in h2</h2> <pre>für Codelistung unformartierter Text</pre> "