Praktiska användningar av dialogrutan Zenity

Jag besöker forumen i mitt land mycket ... och ärligt talat är det sällsynt att hitta något intressant. Men i ett av dessa forum finns det en användare som har gjort två intressanta inlägg om Linux, och det här är det första (som jag vill dela med dig):

Praktiska användningar av dialogrutan Zenity

Zenity är en uppsättning grafiska dialogrutor som gtk-bibliotek använder, med detta program kan vi mata in data, välja en lista med uppgifter, visa oss informationen som följer av en viss process, låta oss göra ett avbrott före eller under en viss process, bland annat funktioner.

Zenity består av cirka 13 grafiska dialogrutor, låt oss se vad dessa är och deras möjliga kombinationer:

1- För att visa oss en kalender och välja önskat datum (detta datum kommer att visas i numeriskt format när det väljs):

zenity --calendar

2- Att skriva in text (mycket användbart när du begär data eller filnamn)

zenity --entry

Kombinera dem korrekt så att den ber oss om att uppgifterna ska matas in

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

3- För att informera oss om att ett fel har inträffat

zenity --error --text "Imposible continuar"

4- Att välja en fil

zenity --file-selection $HOME

Genom att lägga till detta alternativ kan vi välja flera filer:
--multiple

Med detta väljer du bara mapparna
--directory

Med detta istället för att välja kommer vi att aktivera spara alternativet
--save

Med detta kommer vi att förhindra att en befintlig fil skrivs över:
--confirm-overwrite

5- Visa oss viss information

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

6- Visa oss en lista med alternativ och välj en eller en grupp av dessa:
zenity --list --column "nombre de columna" "opcion1" "opción2" "opción3" "opción4"

Tänk nu om vi vill ha en lista med åtgärder för vissa filer, men vi vill att namnet på åtgärden som ska utföras ska visas. För att uppnå detta måste vi använda dessa två alternativ (–hide-column value och * print-column value) det skulle se ut så här:

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

Om vi ​​vill välja mer än en åtgärd åt gången måste vi lägga till dessa två alternativ
Text som skiljer den valda sekvensen från den andra (i det här fallet lägger vi till detta »» vilket betyder ett mellanslag
--separator=" "

Och alternativet som gör att vi kan välja mer än en åtgärd åt gången
--multiple

7- Visa oss ett meddelande i menyraden

zenity *notification *text "Texto deseado"

8- Visa oss framstegen för en viss process:
zenity --progress --pulsate

9- Med detta kommer det att visa oss en fråga och vi kan välja om vi vill fortsätta med processen eller inte:

zenity --question --text "Desea Continuar"

10- Med detta kan vi få resultatet av en sekvens i konsolen som listan med en sökning efter filer, hjälpfrågor, bland andra:

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

11- Detta kan informera oss om att processen har avbrutits.

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

12- Med detta kan vi välja ett visst nummer med hjälp av en skjutregel:

zenity --scale

Genom att lägga till detta alternativ kan vi definiera minimivärdet:
--value 60 --min-value 60
(alternativet –value får aldrig vara mindre än * min-värde)

Med detta väljer vi det maximala värdet
--max-value 100

13- Med detta kommer det att visa oss en dialogruta med vilken vi kan välja önskad färg och ta färgen från andra sidan med den så kallade färgväljaren.
zenity --color-selection --show-palette

Efter att ha sett vilka dialogrutor som är tillgängliga i detta program, låt oss se några praktiska exempel med dessa:

- Låt oss se hur vi kan blanda textinmatningsdialogrutan
med hjälp av ett skript:

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

- Låt oss se hur man kombinerar dialogrutan nummer 12 med numeriska skalor:
(Detta är ett enkelt manus för att sänka kvaliteten på jpg-bilder och därmed minska det utrymme som det upptar på våra diskar)

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

- Låt oss se ett annat exempel där vi kommer att använda dialogrutan för färgväljare där vi lägger till en ram av färgen som vi väljer till ett 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 "$@"

- Låt oss se ett exempel med dialogrutan felmeddelanden:

#!/bin/bash

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

Som du kan se, om någon försöker ta bort en mapp, returnerar processen ett fel så att kedjan fortsätter tack vare dessa || -operatörer.

- Låt oss nu se vad vi kan göra med dialogrutan nummer 6 och välja de åtgärder som vi kommer att utföra på en viss 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 "$@"

Observera att det finns ett mellanslag i kommandorutan eftersom det inte tillåter att texten börjar med ett bindestreck, därför måste avgränsaren i det här fallet vara noll –separator = »».

- Låt oss se ett annat exempel med dialogrutan för framsteg

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

... Och det här är det.

Jag hoppas att jag kan ge dig fler inlägg som är intressanta.

hälsningar


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   Rötter87 sade

    Det enda jag använde zenityen för var att winetricks ber om att det ska fungera bra (åtminstone i min båge) hehehe tack för tipset

  2.   elav <° Linux sade

    Zenity används för några andra knep, till exempel Xfce-sökmotorn 😀

  3.   Aaron Mendo sade

    Tack, tack så mycket, bra att du talar om Gtk + Jag har också använt zenity Jag förstår fortfarande inte så bra men senare med den information du har gett och med övning kan jag hitta en praktisk användning för den.

    Hälsningar.

  4.   Neo61 sade

    Hej från Camaguey (jag har ett franskt tangentbord som inte låter mig hitta de två pinticos av u ... hehehe), kan du förklara bra vad det här är för? Och om allt detta görs med konsol? Det skulle vara bra om du publicerade några bilder av fångster för att illustrera exemplen och på det sättet ser det bättre ut vad du menar

    1.    KZKG ^ Gaara sade

      Egentligen skrevs den här artikeln inte av mig utan av en användare av ett av våra forum.
      Ja, allt detta görs med konsol, och ... vad är det för? Det är väldigt enkelt: "kunskap".

    2.    manolox sade

      Ett exempel på hur man använder zenity för någon med ett franskt tangentbord.


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

        Åh vilken skam. Kopiering och klistra in direkt fungerar inte, för när det blir en kommentar respekterar det radbrytningarna efter varje snedstreck "\".

        För att få det att fungera måste du ändra snedstreck följt av en radbrytning för ett enkelt utrymme.
        Jag kopierar inte den igen för att inte mätta kommentarerna, men för att vara tydlig, från den tredje raden till den åttonde, båda inklusive, bör den vara i en enda rad så att:

        ACTION = `zenity –width = 0 –height = 260 –list –title« Setxkbmap selector »–text« Välj ditt tangentbord »–kolumn« Språk »« Spanska »« Franska »« Engelska »« Gringo »« tyska »`

        1.    Källans manual sade

          Om du vill dela kod i kommentarerna kan du spara den i Klistra in och klistra in webbadressen i din kommentar. 🙂

          1.    manolox sade

            Utmärkt verktyg. Jag visste inte att det fanns något sådant i DesdeLinux.
            Nästa gång en kommentar kräver kod ska jag använda den.
            Tack för informationen. XD

  5.   Neo61 sade

    AH ... och om du ser att jag använder Linux beror det på att jag använder båda, men jag är intresserad av att komma in i Linux

  6.   Santiago sade

    Mycket bra artikel !! Det är super användbart zenity.

    Jag använder den i ett thunar-skript som ändrar storlek på de valda bilderna och med en lista erbjuder jag storlekarna på standardbilderna.

    Hälsningar!

  7.   Hyuuga_neji sade

    Jag behöver att du berättar var jag hittar Zenity, eftersom jag redan sökte och det inte finns i repo jag har ... Hur glad jag använder en repo som jag inte laddar ner själv ... (Varning: Sarkastiskt läge upptäcks i den här kommentaren)

  8.   Jose Sales sade

    Låt oss se vad tycker du om det här?
    #! / Bin / bash
    sång = $ (zenity –width = 360 –höjd = 320 –titel "Launcher" –filval –katalog $ HOME)
    hitta "$ song" -namn * .mp3 | sortera – slumpmässig sortering | huvud -n 100 | xargs -d '\ n' mpg123
    Jag måste fortfarande förbättra det lite