Praktiske anvendelser af Zenity-dialogboksen

Jeg besøger fora i mit land meget ... og ærligt talt er det sjældent at finde noget interessant. Men i et af disse fora er der en bruger, der har lavet to interessante indlæg om Linux, og dette er det første (som jeg vil dele med dig):

Praktiske anvendelser af Zenity-dialogboksen

Zenity er et sæt grafiske dialogbokse, som gtk-biblioteker bruger, med dette program kan vi indtaste data, vælge en liste over opgaver, vise os de oplysninger, der er resultatet af en given proces, tillade os at foretage en afbrydelse før eller under en bestemt proces, blandt andre funktioner.

Zenity består af omkring 13 grafiske dialogbokse, lad os se hvad disse er og deres mulige kombinationer:

1- For at vise os en kalender og vælge en ønsket dato (denne dato vises i numerisk format, når den er valgt):

zenity --calendar

2- At indtaste tekst (meget nyttigt ved anmodning om data eller navnet på en fil)

zenity --entry

Kombiner dem korrekt, så det beder os om, at dataene skal indtastes

zenity --entry --text "Escriba el nombre del archivo"

3- For at informere os om, at der er opstået en fejl

zenity --error --text "Imposible continuar"

4- For at vælge en fil

zenity --file-selection $HOME

Tilføjelse af denne mulighed giver os mulighed for at vælge flere filer:
--multiple

Med dette vælger du kun mapperne
--directory

Med dette i stedet for at vælge vil vi aktivere gemmuligheden
--save

Med dette forhindrer vi, at en eksisterende fil overskrives:
--confirm-overwrite

5- Vis os visse oplysninger

zenity --info *text "Información a mostrar"

6- Vis os en liste med muligheder, og vælg en eller en gruppe af disse:
zenity --list --column "nombre de columna" "opcion1" "opción2" "opción3" "opción4"

Hvad sker der nu, hvis vi vil have en liste over handlinger for bestemte filer, men vi ønsker, at navnet på den handling, der skal udføres, skal vises. For at opnå dette skal vi bruge disse to muligheder (–hide-column value and * print-column value) det ser sådan ud:

zenity --hide-column 2 --print-column 2 --list --column "nombre de columna" --column "columna oculta" "nombre1" "comando1" "nombre2" "comando2"

Hvis vi vil vælge mere end én handling ad gangen, skal vi tilføje disse to muligheder
Tekst, der adskiller den valgte sekvens fra den anden (i dette tilfælde tilføjer vi dette »», hvilket betyder et mellemrum
--separator=" "

Og den mulighed, der giver os mulighed for at vælge mere end én handling ad gangen
--multiple

7- Vis os en underretning i menulinjen

zenity *notification *text "Texto deseado"

8- Vis os fremskridtene i en given proces:
zenity --progress --pulsate

9- Med dette vil det vise os et spørgsmål, og vi kan vælge, om vi vil fortsætte med processen eller ej:

zenity --question --text "Desea Continuar"

10- Med dette kan vi modtage resultatet af en sekvens i konsollen såsom listen over en søgning efter filer, hjælpeforespørgsler, blandt andre:

zenity --text-info zenity --help-all | zenity --text-info

11- Dette kan informere os om, at processen er afbrudt.

zenity --warning --text "El proceso ha fallado" ls /media/carpeta || zenity --warning --text "No existe el directorio"

12- Med dette kan vi vælge et givet tal ved hjælp af en skyderen:

zenity --scale

Ved at tilføje denne mulighed kan vi definere minimumsværdien:
--value 60 --min-value 60
(indstillingen –værdi bør aldrig være mindre end * min-værdi)

Med dette vælger vi den maksimale værdi
--max-value 100

13- Med dette viser det os en dialogboks, hvormed vi kan vælge en ønsket farve og tage farven fra den anden side med den såkaldte farvevælgerdropper.
zenity --color-selection --show-palette

Efter at have set hvilke dialogbokse, der er tilgængelige i dette program, skal vi se nogle praktiske eksempler med disse:

- Lad os se, hvordan vi kan blande tekstindtastningsdialogboksen
ved hjælp af et 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"

- Lad os se, hvordan man kombinerer dialogboksen nummer 12 med numeriske skalaer:
(Dette er et simpelt script til at sænke kvaliteten af ​​jpg-billederne og dermed reducere den plads, den optager på vores diske)

#!/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%" "$@"

- Lad os se et andet eksempel, hvor vi bruger farvevælgerdialogboksen, hvor vi vil tilføje en ramme af den farve, som vi vælger til et foto:

#!/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 "$@"

- Lad os se et eksempel med dialogboksen fejlmeddelelser:

#!/bin/bash

rm "$@" || zenity --error --text "Imposible de eliminar esto es una carpeta"

Som du kan se, hvis nogen forsøger at slette en mappe, returnerer processen en fejl, så kæden fortsætter takket være disse || -operatørerne.

- Lad os nu se, hvad vi kan gøre med dialogboksen nummer 6, ved at vælge de handlinger, som vi vil udføre på en bestemt fil:

#!/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 "$@"

Bemærk, at der er et mellemrum i kommandofeltet, da det ikke tillader teksten at starte med en bindestreg, og derfor skal afgrænseren i dette tilfælde være null –separator = »».

- Lad os se et andet eksempel med statusdialogboksen

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

... Nå, det er det.

Jeg håber, jeg kan give dig flere indlæg, der er interessante.

hilsen


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   rådner87 sagde han

    Det eneste, jeg brugte zenity til, var fordi winetricks beder om, at det fungerer godt (i det mindste i min bue) hehehe tak for tipet

  2.   elav <° Linux sagde han

    Zenity bruges til nogle andre tricks, såsom Xfce-søgemaskinen engine

  3.   Aaron Mendo sagde han

    Tak, mange tak, godt, at du taler om Gtk + Jeg har også brugt zenity. Jeg forstår det stadig ikke så godt, men senere med de oplysninger, du har givet, og med praksis kan jeg finde en praktisk brug af det.

    Greetings.

  4.   Neo61 sagde han

    Hej fra Camaguey (jeg har et fransk tastatur, der ikke giver mig mulighed for at finde de to pinticos fra u ... hehehe), kunne du godt forklare, hvad det er for mig? Og hvis alt dette sker med konsol? Det ville være godt, hvis du sendte nogle billeder af optagelser, så eksemplerne illustreres, og på den måde ser det bedre ud, hvad du mener

    1.    KZKG ^ Gaara sagde han

      Faktisk blev denne artikel ikke skrevet af mig, men af ​​en bruger af et af vores fora.
      Ja, alt dette sker med konsol, og ... hvad er det til? Nå, det er meget simpelt: "viden."

    2.    manolox sagde han

      Et eksempel på brug, der kan gives til zenity for nogen med det franske tastatur.


      #! /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 sagde han

        Åh, hvad en skam. Kopiering og indsættelse direkte virker ikke, fordi når det bliver en kommentar, "respekterer" linjen bryder efter hver tilbageslag "\".

        For at det skal fungere, skal du ændre tilbageslag efterfulgt af et linjeskift for et simpelt mellemrum.
        Jeg kopierer den ikke igen for ikke at mætte kommentarerne, men for at være klar fra den tredje linje til den ottende, begge inklusive, skal den være i en enkelt linje, således at:

        ACTION = `zenity –width = 0 –højde = 260 –liste –titel“ Setxkbmap-vælger »–tekst« Vælg dit tastatur »–kolonne« Sprog »« Spansk »« Fransk »« Engelsk »« Gringo »« tysk »

        1.    Kildens manual sagde han

          Hvis du vil dele kode i kommentarerne, kan du gemme den i pasta og indsæt url'en i din kommentar. 🙂

          1.    manolox sagde han

            Excelente herramienta. No sabía que existía tal cosa en DesdeLinux.
            Næste gang en kommentar kræver kode, bruger jeg den.
            Tak for info. XD

  5.   Neo61 sagde han

    AH ... og hvis du ser, at jeg bruger Linux, er det fordi jeg bruger begge dele, men jeg er interesseret i at komme godt ind i Linux

  6.   Santiago sagde han

    Meget god artikel !! Det er super nyttigt zenity.

    Jeg bruger det i et thunar-script, der ændrer størrelsen på de valgte billeder, og med en liste tilbyder jeg størrelserne på standardbillederne.

    Greetings!

  7.   Hyuuga_Neji sagde han

    Jeg har brug for, at du fortæller mig, hvor jeg kan finde Zenity, fordi jeg allerede har søgt, og det ikke er i repoen, jeg har ... Hvor glad bruger jeg en repo, som jeg ikke selv downloader ... (Alert: Sarkastisk tilstand registreret i denne kommentar)

  8.   Jose Salg sagde han

    Lad os se, hvad synes du om dette?
    #! / Bin / bash
    sang = $ (zenity –width = 360 –højde = 320 –titel "Launcher" –filvalg – katalog $ HOME)
    find "$ sang" -navn * .mp3 | sorter – tilfældig slags | hoved -n 100 | xargs -d '\ n' mpg123
    Jeg har stadig brug for at forbedre det lidt