Logo haplo-dialog

haplo-dialog

Apprendre par l'exemple

AccueilExemples

Apprendre par l'exemple

Six scripts shell autonomes, à lire, à lancer et à copier : du formulaire simple à l'outil d'administration complet. Rien à installer de plus que gtk3sermo.

La preuve : un seul XML, trois moteurs

Le paquet gtksermo installe la commande gtkdialog comme un lien vers gtk3sermo : les deux noms désignent le même binaire. La même fenêtre, décrite une seule fois en XML, s'ouvre à l'identique par les deux commandes — vos scripts gtkdialog fonctionnent tels quels. Et gtk4sermo lit exactement le même XML : les cinq scripts ci-dessous tournent sur les trois ports sans une ligne modifiée.

La même fenêtre gtk3sermo ouverte par la commande gtkdialog
$ ls -l /usr/bin/gtkdialog
lrwxrwxrwx 1 root root 10 /usr/bin/gtkdialog -> gtk3sermo

$ md5sum /usr/bin/gtk3sermo /usr/bin/gtkdialog
bc52d918…  /usr/bin/gtk3sermo
bc52d918…  /usr/bin/gtkdialog        # même empreinte = même fichier

$ gtkdialog --version
gtk3sermo (sermo) version 1.1.1

Cinq scripts à lire, à lancer, à copier

Le dépôt embarque un banc de repères visuels : cinq scripts shell autonomes, un par famille de widgets. Rien à installer, rien à configurer : on les lance, la fenêtre s'ouvre. Ce sont eux qui ont produit les captures de la page d'accueil.

ScriptCe qu'il montre
01-formulaire.shChamp de saisie, mot de passe masqué, compteur, case à cocher, liste déroulante, cadres imbriqués
02-conteneurs.shColonnes, zone extensible, bandeau pleine largeur, répartition de l'espace
03-onglets.shOnglets latéraux et contenu multiligne
04-indicateurs.shBarre de progression, glissières, jauge de niveau, compteur, indicateur d'activité
05-boutons-icones.shIcônes du thème par leur nom, boutons à icône, alignements

Ils sont dans le dépôt, sous examples/showcase/, et le paquet les installe dans /usr/share/doc/gtk3sermo/examples/showcase/. Ils sont dans le domaine public (CC0-1.0) : copiez-les, découpez-les, republiez-les sans condition.

Lire les cinq scripts sur GitLab

Et pour finir : un vrai outil

Les cinq scripts ci-dessus montrent les widgets un par un. Celui-ci montre ce qu'on obtient quand on les assemble : un outil d'administration à six onglets, qui relève de vraies données système et exécute de vraies actions. Un seul script shell, aucune ligne de C.

Outils Système : fenêtre gtk3sermo à six onglets, en-tête avec logo Debian, distribution, noyau, mémoire et disque. Outils Système : fenêtre gtk3sermo à six onglets, en-tête avec logo Debian, distribution, noyau, mémoire et disque.

Ce qu'il enseigne, et qu'aucun autre exemple ne montre : le motif --do. Une action gtk3sermo s'exécute dans un sous-shell, elle ne peut donc pas appeler une fonction du script. La solution est que le script se rappelle lui-même, et les valeurs des champs lui arrivent par l'environnement. C'est la façon propre d'écrire un programme gtk3sermo qui dépasse la boîte de dialogue.

Debian et dérivées uniquement. Il appelle apt, dpkg et journalctl : il vérifie le système au lancement et refuse proprement ailleurs, plutôt que d'afficher des onglets vides. Le bureau, lui, n'a pas d'importance : terminal et éditeur sont détectés parmi ceux installés.

Côté sécurité, ce qui est réellement fait : toute élévation passe par pkexec, jamais sudo dans une interface graphique ; l'aide en ligne n'accepte qu'une commande d'une liste blanche comparée à l'identique ; l'onglet Fichiers ne travaille que sur une liste fermée de chemins, revérifiée avant chaque ouverture, y compris en root.

Lire le script et son mode d'emploi sur GitLab