Utilisations pratiques de la boîte de dialogue Zenity

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


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   Pourritures87 dit

    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

  2.   elav <° Linux dit

    Zenity est utilisé pour d'autres astuces, comme le moteur de recherche Xfce 😀

  3.   Aaron Mendo dit

    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.

  4.   Neo61 dit

    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

    1.    KZKG ^ Gaara dit

      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».

    2.    manolox dit

      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

      1.    manolox dit

        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 »`

        1.    Manuel de la source dit

          Si vous souhaitez partager du code dans les commentaires, vous pouvez l'enregistrer dans le pâtes et collez l'url dans votre commentaire. 🙂

          1.    manolox dit

            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

  5.   Neo61 dit

    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

  6.   Santiago dit

    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 !!

  7.   Hyuga_Neji dit

    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)

  8.   José Ventes dit

    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