Je fréquente beaucoup les forums de mon pays… et honnêtement, il est rare de trouver quelque chose d'intéressant. Cependant, dans l'un de ces forums, il y a un utilisateur qui a publié deux articles intéressants sur Linux, et c'est le premier (que je souhaite partager avec vous):
Utilisations pratiques de la boîte de dialogue Zenity
Zenity est un ensemble de boîtes de dialogue graphiques utilisées par les bibliothèques gtk, avec ce programme nous pouvons entrer des données, sélectionner une liste de tâches, nous montrer les informations résultant d'un processus donné, nous permettre de faire une interruption avant ou pendant un certain processus, entre autres les fonctions.
Zenity se compose d'environ 13 boîtes de dialogue graphiques, voyons ce qu'elles sont et leurs combinaisons possibles:
1- Pour nous montrer un calendrier et sélectionner une date souhaitée (cette date sera affichée au format numérique une fois sélectionnée):
zenity --calendar
2- Pour saisir du texte (très utile lors de la demande de données ou du nom d'un fichier)
zenity --entry
Combinez-les correctement pour qu'il nous demande les données à saisir
zenity --entry --text "Escriba el nombre del archivo"
3- Pour nous informer qu'une erreur s'est produite
zenity --error --text "Imposible continuar"
4- Pour sélectionner un fichier
zenity --file-selection $HOME
L'ajout de cette option nous permet de sélectionner plusieurs fichiers:
--multiple
Avec cela, vous ne sélectionnerez que les dossiers
--directory
Avec cela au lieu de sélectionner, nous activerons l'option de sauvegarde
--save
Avec cela, nous empêcherons un fichier existant d'être écrasé:
--confirm-overwrite
5- Montrez-nous certaines informations
zenity --info *text "Información a mostrar"
6- Montrez-nous une liste d'options et sélectionnez-en une ou un groupe:
zenity --list --column "nombre de columna" "opcion1" "opción2" "opción3" "opción4"
Que faire maintenant si nous voulons avoir une liste d'actions pour certains fichiers, mais que nous voulons que le nom de l'action à effectuer soit affiché. Pour ce faire, nous devons utiliser ces deux options (–hide-column value et * print-column value) cela ressemblerait à ceci:
zenity --hide-column 2 --print-column 2 --list --column "nombre de columna" --column "columna oculta" "nombre1" "comando1" "nombre2" "comando2"
Si nous voulons sélectionner plus d'une action à la fois, nous devons ajouter ces deux options
Texte qui séparera la séquence choisie de l'autre (dans ce cas on ajoute ceci »» qui signifie un espace
--separator=" "
Et l'option qui nous permettra de sélectionner plus d'une action à la fois
--multiple
7- Montrez-nous une notification dans la barre de menu
zenity *notification *text "Texto deseado"
8- Montrez-nous la progression d'un processus donné:
zenity --progress --pulsate
9- Avec cela, cela nous montrera une question et nous pouvons choisir si nous voulons ou non continuer le processus:
zenity --question --text "Desea Continuar"
Séries 10- Avec cela, nous pouvons recevoir le résultat d'une séquence dans la console telle que la liste d'une recherche de fichiers, des requêtes d'aide, entre autres:
zenity --text-info zenity --help-all | zenity --text-info
Séries 11- Cela peut nous informer que le processus a été interrompu.
zenity --warning --text "El proceso ha fallado" ls /media/carpeta || zenity --warning --text "No existe el directorio"
Séries 12- Avec cela, nous pouvons sélectionner un nombre donné au moyen d'une barre de défilement:
zenity --scale
En ajoutant cette option, nous pouvons définir la valeur minimale:
--value 60 --min-value 60
(l'option –value ne doit jamais être inférieure à * min-value)
Avec cela, nous sélectionnons la valeur maximale
--max-value 100
Séries 13- Avec cela, il nous montrera une boîte de dialogue avec laquelle nous pouvons sélectionner une couleur désirée et prendre la couleur de l'autre côté avec le soi-disant compte-gouttes de sélecteur de couleur.
zenity --color-selection --show-palette
Après avoir vu quelles boîtes de dialogue sont disponibles dans ce programme, voyons quelques exemples pratiques avec ceux-ci:
- Voyons comment nous pouvons mélanger la boîte de dialogue de saisie de texte
à l'aide d'un script:
#!/bin/bash
#Darle a una palabra una secuencia de comandos.
archivo="`zenity --entry --text "Escriba el nombre del archivo"`"
#comando para renombrar
mv "$@" "`dirname "$@"`"/"$archivo"
- Voyons comment combiner la boîte de dialogue numéro 12 d'échelles numériques:
(Il s'agit d'un simple script pour baisser la qualité des images jpg et ainsi réduire l'espace qu'elles occupent sur nos disques)
#!/bin/bash
#Darle a una palabra una secuencia de comandos.
foto="`zenity --scale --value 80 --min-value 60 --max-value 100`"
#comando para comprimir la imagen
mogrify -compress jpeg -quality "$foto%" "$@"
- Voyons un autre exemple où nous utiliserons la boîte de dialogue du sélecteur de couleur où nous ajouterons un cadre de la couleur que nous sélectionnons à une photo:
#!/bin/bash
#Darle a una palabra una secuencia de comandos.
foto="`zenity --color-selection --show-palette`" marco="`zenity --entry --text "Seleccione el rango deseado 6x6"`"
#comando para agregarle el marco
mogrify -border $marco -bordercolor $foto "$@"
- Voyons un exemple avec la boîte de dialogue des messages d'erreur:
#!/bin/bash
rm "$@" || zenity --error --text "Imposible de eliminar esto es una carpeta"
Comme vous pouvez le voir, si quelqu'un essaie de supprimer un dossier, le processus renvoie une erreur et la chaîne continue grâce à ces opérateurs ||.
- Voyons maintenant ce que nous pouvons faire avec la boîte de dialogue numéro 6, en sélectionnant les actions que nous allons effectuer sur un certain fichier:
#!/bin/bash
actions="`zenity --multiple --separator="" --hide-column 2 --print-column 2 --list --column "nombre de columna" --column "columna oculta" "comprimir un 80%" " -compress jpeg -quality 80%" "Cambiar tamaño a 800x600" " -resize 800x600"`"
#Comando
mogrify$actions "$@"
Notez que dans la boîte de commande il y a un espace car il ne permet pas au texte de commencer par un trait d'union, donc le délimiteur dans ce cas doit être nul –separator = »».
- Voyons un autre exemple avec la boîte de dialogue de progression
#!/bin/bash
#Script para eliminar
zenity --question --text "Desea borrara las imágenes dentro de esta carpeta `basename "$@"`" && find "$@" -name *.jpg -delete | zenity --list --progress * pulsate
... Eh bien, c'est ça.
J'espère que je pourrai vous apporter plus de messages intéressants.
salutations
La seule chose pour laquelle j'ai utilisé le zénité, c'est parce que winetricks demande que cela fonctionne bien (au moins dans mon arc) hehehe merci pour le conseil
Zenity est utilisé pour d'autres astuces, comme le moteur de recherche Xfce 😀
Merci, merci beaucoup, bien que vous parliez de Gtk + J'ai aussi utilisé zenity je ne le comprends toujours pas très bien mais plus tard avec les informations que vous avez données et avec de la pratique je peux trouver une utilisation pratique.
Salutations.
Hé de Camaguey (j'ai un clavier français qui ne me laisse pas trouver les deux pinticos du u… hehehe), peux-tu bien m'expliquer ce que c'est pour moi? Et si tout cela se faisait par console? Ce serait bien si vous publiiez des images de captures afin que les exemples soient illustrés et que de cette façon, ce que vous entendez paraisse mieux
En fait, cet article n'a pas été écrit par moi, mais par un utilisateur de l'un de nos forums.
Oui, tout cela se fait par console, et… à quoi ça sert? Eh bien, c'est très simple: «connaissance».
Un exemple d'utilisation qui peut être donné à la zénité pour quelqu'un avec le clavier français.
#! /bin/bash
# Un cambiador de teclado
ACTION=`zenity --width=0 --height=260 --list\
--title "Selector de setxkbmap" --text "Elige tu teclado"\
--column "Idioma"\
"Español"\
"Francés"\
"Inglés"\
"Gringo"\
"Alemán"`
if [ -n "${ACTION}" ]; then
case $ACTION in
Español)
setxkbmap es && zenity --info --text "Teclado configurado correctamente a español" || zenity --info --text "Por alguna razón no fue posible cambiar el mapa de teclado."
;;
Francés)
setxkbmap fr && zenity --info --text "Dicho sea en francés: Teclado configurado correctamente a francés" || zenity --info --text "Por alguna razón no fue posible cambiar el mapa de teclado."
;;
Inglés)
setxkbmap gb && zenity --info --text "Dicho sea en inglés: Teclado configurado correctamente a inglés" || zenity --info --text "Por alguna razón no fue posible cambiar el mapa de teclado."
;;
Gringo)
setxkbmap us && zenity --info --text "Dicho sea en Gringo: Teclado configurado correctamente a Gringo" || zenity --info --text "Por alguna razón no fue posible cambiar el mapa de teclado."
;;
Alemán)
setxkbmap de && zenity --info --text "Dicho sea en alemán: Teclado configurado correctamente a alemán" || zenity --info --text "Por alguna razón no fue posible cambiar el mapa de teclado."
;;
esac
fi
Oh quelle honte. Le copier-coller directement ne fonctionne pas car lorsqu'il devient un commentaire, il "ne respecte pas" la ligne saute après chaque barre oblique inverse "\".
Pour que cela fonctionne, vous devez changer les barres obliques inverses suivies d'un saut de ligne pour un espace simple.
Je ne le recopie pas pour ne pas saturer les commentaires, mais pour être clair, de la troisième à la huitième ligne, toutes deux incluses, il devrait être en une seule ligne de telle sorte que:
ACTION = `zenity –width = 0 –height = 260 –list –title« Setxkbmap selector »–text« Choisissez votre clavier »–colonne« Langue »« Espagnol »« Français »« Anglais »« Gringo »« Allemand »`
Si vous souhaitez partager du code dans les commentaires, vous pouvez l'enregistrer dans le pâtes et collez l'url dans votre commentaire. 🙂
Excellent outil. Je ne savais pas qu'il existait une telle chose DesdeLinux.
La prochaine fois qu'un commentaire nécessite du code, je l'utiliserai.
Merci pour l'info. XD
AH ... et si vous voyez que j'utilise Linux c'est parce que j'utilise les deux, mais je suis intéressé à bien me familiariser avec Linux
Très bon article !! C'est une zénité super utile.
Je l'utilise dans un script thunar qui redimensionne les images sélectionnées, et avec une liste j'offre les tailles des images standard.
Salutations !!
J'ai besoin que tu me dises où trouver la Zenity parce que j'ai déjà cherché et qu'elle n'est pas dans le repo que j'ai…. Comme je suis heureux d'utiliser un repo que je ne télécharge pas moi-même ... (Alerte: mode sarcastique détecté dans ce commentaire)
Voyons ce que tu en penses?
#! / Bin / bash
chanson = $ (zenity –width = 360 –height = 320 –title "Launcher" –file-selection –directory $ HOME)
trouver "$ song" -name * .mp3 | tri - tri aléatoire | tête -n 100 | xargs -d '\ n' mpg123
J'ai encore besoin de l'améliorer un peu