J'écris quelques petits scripts bash sous Ubuntu Linux. Je veux pouvoir les exécuter à partir de l'interface graphique sans avoir besoin d'une fenêtre de terminal pour entrer une entrée ou afficher une sortie.
Jusqu'à présent, la seule entrée requise est un mot de passe pour sudo - et gksudo gère cela très bien. Mais je n'ai pas encore trouvé de moyen simple d'afficher une boîte de message. Existe-t-il une sorte de commande «gkmessage» disponible? Je préférerais quelque chose de présent dans une installation par défaut d'Ubuntu, mais cela ne me dérange pas d'installer un nouveau package si nécessaire.
Réponses:
Je crois que Zenity fera ce que vous voulez. Il est spécialement conçu pour afficher les boîtes de dialogue GTK à partir de la ligne de commande et il est disponible sous forme de package Ubuntu .
la source
zenity --help
n'est pas si utile. Pour rendre cela utile, vous devez vous assurer que vous êtes prêt--text=My text here
à le faire afficher quelque chose ...zenity --info --text="Calculation complete"
zenity --help-all
..xinitrc
lors du démarrage de monxorg
serveur. Sinon, les erreurs seraient transparentes. Je préfère également celazenity
à cekdialog
que KDE n'a pas encore démarré et que les bibliothèques GTK sont plus légères.Si vous utilisez
Ubuntu denombreuses distributions, lanotify-send
commande lancera l'une de ces belles notifications périssables dans le coin supérieur droit. Ainsi:notify-send "My name is bash and I rock da house"
Belle!
la source
libnotify-bin
paquet contient lenotify-send
binaire. Gnome3 ne semble pas nécessiter,notify-osd
mais je suppose que d'autres environnements de bureau peuvent en avoir besoin en plus delibnotify-bin
Tout le monde évoque la zénité, il y en a beaucoup d'autres. Une liste mélangée mais intéressante est à http://alternativeto.net/software/zenity/
Tout d'abord, un exemple de zenity avec balisage de mise en forme de texte, titre de fenêtre, étiquette de bouton.
gxmessage
xmessage
xmessage
est très ancien donc il est stable et probablement disponible dans toutes les distributions qui utilisent X (puisqu'il est distribué avec X). Il est personnalisable via les ressources X, pour ceux qui utilisent Linux ou Unix depuis assez longtemps pour savoir ce que cela signifie (.Xdefaults
, n'importe qui?).kdialog
(pas testé)
Dans un PPA
YAD: Zenity sur les stéroïdes [Afficher les boîtes de dialogue graphiques à partir de scripts Shell] ~ Web Upd8: blog Ubuntu / Linux . Ne semble pas dimensionner automatiquement les boîtes de dialogue.
Un plus grand exemple
D'autres ne sont pas dans les référentiels standard Ubuntu
Hors sujet (pour terminal)
N'hésitez pas à modifier.
la source
--infobox
a un bogue d'affichage de longue date avec xterm (gnome-terminal)whiptail --infobox
(qui ne fonctionne pas correctement sur les terminaux prenant en charge l'écran alternatif) revient sans attendre l'entrée de l'utilisateur, tandis quewhiptail --msgbox
(ce qui fonctionne) attend la confirmation de l'utilisateur avant de quitter.L' application zenity semble être ce que vous recherchez.
Pour prendre des entrées de zenity , vous pouvez spécifier une variable et y enregistrer la sortie de zenity --entry . Cela ressemble à quelque chose comme ceci:
Si vous regardez la valeur dans my_variable maintenant, ce sera ce qui a été tapé dans la boîte de dialogue de saisie de zenity.
Si vous voulez donner une sorte d'invite sur ce que l'utilisateur (ou vous) doit entrer dans la boîte de dialogue, ajoutez le commutateur --text avec l'étiquette que vous voulez. Cela ressemble à quelque chose comme ceci:
Zenity propose de nombreuses autres options intéressantes pour des tâches spécifiques, vous voudrez peut-être les vérifier également avec zenity --help . Un exemple est l' option --calendar qui vous permet de sélectionner une date dans un calendrier graphique.
Ce qui donne une date joliment formatée en fonction de ce sur quoi l'utilisateur a cliqué:
donne:
Il existe également des options pour les sélecteurs de curseurs, les erreurs, les listes, etc.
J'espère que cela t'aides.
la source
zentity
ça a l'air cool. Cependant, cela ne fait pas partie d'Ubuntu 12.04, alors j'y suis allé à lagxmessage
place.J'ai trouvé la commande xmessage , qui est assez bonne.
la source
Voici un petit script Tcl qui fera ce que vous voulez. L'interpréteur Wish doit être installé par défaut sur Ubuntu.
Appelez ça comme ça:
la source
alert
etnotify-send
semblent être la même chose. J'utilisenotify-send
pour les messages sans entrée car cela ne vole pas le focus et je ne peux pas trouver un moyen d'empêcher zenity etc. de faire cela.par exemple
la source
Il existe également
dialog
et la version KDEkdialog
.dialog
est utilisé par slackware, il peut donc ne pas être immédiatement disponible sur d'autres distributions.la source
si rien d'autre n'est présent. vous pouvez lancer un xterm et y faire écho, comme ceci:
la source
Que diriez-vous de l' alerte d'Ubuntu . Il peut être utilisé après n'importe quelle opération pour alerter qu'elle est terminée et même afficher une icône de croix rouge si l'opération s'est terminée avec des erreurs
la source
Zenity est vraiment l'outil exact que je pense que vous recherchez.
ou
la source
Kdialog et dialogue sont tous les deux bons, mais je recommanderais Zenity. Rapide, facile et bien meilleur pour le xmessage ou le dialogue.
la source
Exemple de script bash pour l'utilisation des contrôles Gambas GTK / QT (objets GUI): l'EDI Gambas peut être utilisé pour concevoir même de grandes interfaces graphiques et agir comme un serveur GUI. Des exemples d'explications peuvent être téléchargés à partir de l'App Store Gambas.
https://gambas.one/gambasfarm/?id=823&action=search
la source