Le shell sous KDE

De Wiki de la communauté Mandriva.


Dans cet article, nous allons nous intéresser à la commande kdialog qui permet à partir d'un script shell de dialoguer avec l'utilisateur sous kde.

Généralement un script utilise les commandes echo et read pour afficher des messages à l'écran ou lire des données au clavier. Le script communique avec l'utilisateur en mode texte, dans la fenêtre d'exécution et n'utilise pas de boîte de dialogue ni de fenêtre pourtant disponibles dans les environnements de bureau.

Sous kde, c'est la commande kdialog qui rend possible l'utilisation de l'interface graphique pour dialoguer avec l'utilisateur à partir d'un script.

Sommaire

Premier exemple

Allez dans Menu K -> Outils -> Konsole pour ouvrir un interpréteur de commandes et tapez à l'invite:

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --msgbox 'bonjour!'

Vous voyez alors la boîte suivante s'afficher:

Image:bonjour.png

Affichage d'une boîte de dialogue

La commande kdialog permet d'afficher plusieurs types de boîtes de dialogues. Selon un paramètre fourni à la commande, on affiche une boîte de dialogue

  • d'affichage de texte (paramètre --textbox),
  • d'information (paramètre --msgbox),
  • de saisie de texte (paramètre --inputbox),
  • de saisie de texte (paramètre --textinputbox),
  • d'excuse (paramètre --sorry),
  • d'erreur (paramètre --error),
  • de notification n'interrompant pas le déroulement du programme (paramètre --passivepopup),
  • de demande de mot de passe (paramètre --password),
  • de confirmation (oui/non) (paramètre --yesno),
  • de confirmation (oui/non/abandon) (paramètre --yesnocancel),
  • d'avertissement et de confirmation (oui/non) (paramètre --warningyesno),
  • d'avertissement et de confirmation d'abandon (continuation/abandon) (paramètre --warningcontinuecancel),
  • d'avertissement et de confirmation (oui/non/abandon) (paramètre --warningyesnocancel),
  • présentant un menu (paramètre --menu),
  • de sélection de couleur (paramètre --getcolor),
  • en forme de liste déroulante (paramètre --combobox),
  • en forme de liste à choix multiples (paramètre --checklist),
  • en forme de liste à choix unique (paramètre --radiolist),
  • de sélection et d'ouverture d'un fichier existant (paramètre --getopenfilename),
  • d'enregistrement d'un fichier (paramètre --getsavefilename),
  • de sélection d'un dossier existant (paramètre --getexistingdirectory),
  • d'ouverture d'une URL existante (paramètre --getopenurl),
  • d'enregistrement d'une URL (paramètre --getsaveurl),
  • de choix d'icône (paramètre --geticon),
  • de barre de progression (paramètre --progressbar),
  • de calendrier (paramètre --calendar),
  • à glissière retournant la valeur sélectionnée (paramètre --slider).

D'autres paramètres permettent par exemple de changer le titre de la boîte –title suivi du nouveau titre.

Récupération de la réponse

Lorsque la commande kdialog renvoie une valeur, qui peut-être la réponse à une question, un mot de passe par exemple, elle la place sur la sortie standard. On peut vérifier si tout s'est bien passé en lisant le contenu de la variable spéciale $?.

Boîte de dialogue d'affichage de texte

Avec l'option textbox, la commande kdialog affiche le contenu d'un fichier texte donné.

Par exemple, créons le fichier texte fichier.txt, avec la commande

Image:Konsole.png
[utilisateur@ordi ~]$ echo "table de multiplication" > fichier.txt

et appelons kdialog

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --textbox fichier.txt

Le contenu du fichier s'affiche dans une boîte de dialogue, qui se ferme après avoir appuyé sur ok.

Boîte de dialogue d'information

L'option —msgbox affiche dans une boîte de dialogue le message placé entre guillemets et attend l'accord de l'utilisateur avant de poursuivre.

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --msgbox "Mot de passe correct. Le système transmet toutes vos données."

Boîte de dialogue de saisie de texte

La commande kdialog avec l'option —inputbox affiche une une boîte de saisie de texte, la chaîne de caractères que la commande attend après l'option correspond au titre de la boîte de dialogue.

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --inputbox "Votre remarque:"

Pour récupérer le texte saisi par l'utilisateur, on peut placer le résultat dans une variable de la manière suivante:

Image:Konsole.png
[utilisateur@ordi ~]$ a=$(kdialog --inputbox "Votre remarque:");echo "Jordi a écrit dans la boîte: " $a

Boîte de dialogue d'excuse

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --sorry "Le fichier n'a pu être enregistré. Disque dur endommagé."

Boîte de dialogue d'erreur

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --error "Erreur 9999. Le système va redémarrer."

Boîte de dialogue de notification n'interrompant pas le déroulement du programme

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --passivepopup "Cette fenêtre va disparaître dans 5 secondes." 5

Boîte de dialogue de demande de mot de passe

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --password "Entrez votre mot de passe"

Boîte de dialogue de confirmation (oui/non)

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --yesno "Le téléchargement n'est pas terminé. Voulez-vous vraiment arrêter?"

Boîte de dialogue de confirmation (oui/non/abandon)

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --yesnocancel "Voulez-vous rechercher le mot dans tous les dossiers?"

Boîte de dialogue d'avertissement et de confirmation (oui/non)

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --warningyesno "Le téléchargement n'est pas terminé. Voulez-vous vraiment arrêter?"

Boîte de dialogue d'avertissement et de confirmation d'abandon (continuation/abandon)

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --warningcontinuecancel "Vous allez détruire le secteur de démmarage. Voulez-vous continuer?"

Boîte de dialogue d'avertissement et de confirmation (oui/non/abandon)

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --warningyesnocancel "Le fichier sera détruit après cette opération. Voulez-vous le remplacer?"

Boîte de dialogue présentant un menu

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --menu "Que voulez-vous boire?" a "un thé" b "un café" c "une limonade"

Boîte de dialogue de sélection de couleur

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --getcolor

Boîte de dialogue en forme de liste déroulante

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --combobox "Choisissez une couleur" "rouge" "vert" "bleu" "jaune"

Boîte de dialogue en forme de liste à choix multiples

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --checklist "Choisissez une boisson:" 1 "Café sans sucre" off 2 "Café" on 3 "Thé" off

Boîte de dialogue en forme de liste à choix unique

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --radiolist "Choisissez une ville:" 1 "Paris" off 2 "Marseille" on 3 "Lyon" off

Boîte de dialogue de sélection et d'ouverture d'un fichier existant

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --getopenfilename .

Boîte de dialogue d'enregistrement d'un fichier

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --yesno "Le téléchargement n'est pas terminé. Voulez-vous vraiment arrêter?"

Boîte de dialogue de sélection d'un dossier existant

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --yesno "Le téléchargement n'est pas terminé. Voulez-vous vraiment arrêter?"

Boîte de dialogue d'ouverture d'une URL existante

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --yesno "Le téléchargement n'est pas terminé. Voulez-vous vraiment arrêter?"

Boîte de dialogue d'enregistrement d'une URL

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --getsaveurl .

Boîte de dialogue de choix d'icône

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --yesno "Le téléchargement n'est pas terminé. Voulez-vous vraiment arrêter?"

Boîte de dialogue de barre de progression

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --progressbar "Progression " ?

Boîte de dialogue de calendrier

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --calendar "Calendrier"

Boîte de dialogue à glissière retournant la valeur sélectionnée

Image:Konsole.png
[utilisateur@ordi ~]$ kdialog --slider "Carburant" 0 100 5

Liens externes