Usos práticos da caixa de diálogo Zenity

Frequento muito os fóruns do meu país… e sinceramente, é raro encontrar algo interessante. No entanto, em um desses fóruns, há um usuário que fez duas postagens interessantes sobre Linux, e esta é a primeira (que quero compartilhar com vocês):

Usos práticos da caixa de diálogo Zenity

Zenity é um conjunto de caixas de diálogo gráficas utilizadas pelas bibliotecas gtk, com este programa podemos inserir dados, selecionar uma lista de tarefas, mostrar-nos as informações resultantes de um determinado processo, permitir-nos fazer uma interrupção antes ou durante um determinado processo, entre outras funções.

O Zenity consiste em cerca de 13 caixas de diálogo gráficas, vamos ver o que são e suas combinações possíveis:

1- Para nos mostrar um calendário e selecionar uma data desejada (esta data será mostrada em formato numérico uma vez selecionada):

zenity --calendar

2- Para inserir texto (muito útil ao solicitar dados ou o nome de um arquivo)

zenity --entry

Combine-os corretamente para que nos solicite os dados a inserir

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

3- Para nos informar que ocorreu um erro

zenity --error --text "Imposible continuar"

4- Para selecionar um arquivo

zenity --file-selection $HOME

Adicionar esta opção nos permite selecionar vários arquivos:
--multiple

Com isso você selecionará apenas as pastas
--directory

Com isso, em vez de selecionar, estaremos ativando a opção de salvar
--save

Com isso, evitaremos que um arquivo existente seja sobrescrito:
--confirm-overwrite

5- Mostre-nos certas informações

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

6- Mostre-nos uma lista de opções e selecione uma ou um grupo destas:
zenity --list --column "nombre de columna" "opcion1" "opción2" "opción3" "opción4"

Agora, e se quisermos ter uma lista de ações para determinados arquivos, mas quisermos que o nome da ação a ser realizada seja exibido. Para conseguir isso, temos que usar essas duas opções (valor da coluna -hide e * valor da coluna de impressão) ficaria assim:

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

Se quisermos selecionar mais de uma ação por vez, devemos adicionar essas duas opções
Texto que irá separar a sequência escolhida da outra (neste caso adicionamos este »» que significa um espaço
--separator=" "

E a opção que nos permitirá selecionar mais de uma ação por vez
--multiple

7- Mostre-nos uma notificação na barra de menu

zenity *notification *text "Texto deseado"

8- Mostre-nos o andamento de um determinado processo:
zenity --progress --pulsate

9- Com isso vai nos mostrar uma dúvida e podemos escolher se queremos ou não continuar com o processo:

zenity --question --text "Desea Continuar"

10- Com isso podemos receber o resultado de uma sequência no console como a lista de uma busca por arquivos, consultas de ajuda, entre outros:

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

11- Isso pode nos informar que o processo foi interrompido.

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

12- Com isso, podemos selecionar um determinado número por meio de uma barra deslizante:

zenity --scale

Ao adicionar esta opção, podemos definir o valor mínimo:
--value 60 --min-value 60
(a opção –value nunca deve ser menor que * valor mínimo)

Com isso, selecionamos o valor máximo
--max-value 100

13- Com isso nos mostrará uma caixa de diálogo com a qual podemos selecionar uma cor desejada e tirar a cor do outro lado com o chamado conta-gotas seletor de cores.
zenity --color-selection --show-palette

Depois de ver quais caixas de diálogo estão disponíveis neste programa, vamos ver alguns exemplos práticos com estes:

- Vamos ver como podemos misturar a caixa de diálogo de entrada de texto
usando um 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"

- Vamos ver como combinar a caixa de diálogo número 12 de escalas numéricas:
(Este é um script simples para diminuir a qualidade das imagens jpg e, assim, reduzir o espaço que ocupa em nossos discos)

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

- Vamos ver outro exemplo em que usaremos a caixa de diálogo do seletor de cores, onde adicionaremos uma moldura da cor que selecionarmos a uma 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 "$@"

- Vamos ver um exemplo com a caixa de diálogo de mensagens de erro:

#!/bin/bash

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

Como você pode ver, se alguém tentar deletar uma pasta, o processo retorna um erro, então a cadeia continua graças a estes operadores ||.

- Vamos ver agora o que podemos fazer com a caixa de diálogo número 6, selecionando as ações que iremos realizar em um determinado arquivo:

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

Observe que há um espaço na caixa de comando, uma vez que não permite que o texto comece com um hífen, portanto, o delimitador neste caso deve ser nulo –separador = »».

- Vamos ver outro exemplo com a caixa de diálogo de progresso

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

… E bem, é isso.

Espero poder trazer a vocês mais posts que sejam interessantes.

lembranças


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   apodrece87 dito

    Só usei o zenity porque o winetricks pede para funcionar bem (pelo menos no meu arco) hehehe obrigado pela dica

  2.   elav <° Linux dito

    O Zenity é usado para alguns outros truques, como o motor de busca Xfce 😀

  3.   Aaron Mendo dito

    Muito obrigado, muito obrigado, que bom que fale de Gtk + Eu também usei o zenity ainda não entendi muito bem, mas depois com as informações que você deu e com a prática posso encontrar um uso prático para ele.

    Saudações.

  4.   Neo61 dito

    Ei de Camaguey (eu tenho um teclado francês que não me deixa achar os dois pinticos do u ... hehehe), você poderia explicar bem o que isso é pra mim? E se tudo isso for feito por console? Seria bom se você postasse algumas imagens de capturas para ilustrar os exemplos e assim ficaria melhor o que você quis dizer

    1.    KZKG ^ Gaara dito

      Na verdade, este artigo não foi escrito por mim, mas por um usuário do nosso fórum.
      Sim, tudo isso é feito por console e ... para que serve? Bem, é muito simples: "conhecimento".

    2.    manolox dito

      Um exemplo de uso que pode ser dado ao zenity por alguém com teclado francês.


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

        Oh que vergonha. Copiar e colar diretamente não funciona porque quando se torna um comentário, "desrespeita" as quebras de linha após cada barra invertida "\".

        Para que funcione, você deve alterar as barras invertidas seguidas de uma quebra de linha para um espaço simples.
        Não copio de novo para não saturar os comentários, mas para ficar claro, da terceira à oitava linha, ambas inclusivas, deve ser em uma única linha tal que:

        AÇÃO = `zenity –width = 0 –height = 260 –list –title« Setxkbmap selector »–text« Escolha o seu teclado »–column« Language »« Espanhol »« Francês »« Inglês »« Gringo »« Alemão »`

        1.    Manuel da Fonte dito

          Se você quiser compartilhar o código nos comentários, você pode salvá-lo no macarrão e cole o url no seu comentário. 🙂

          1.    manolox dito

            Excelente ferramenta. Eu não sabia que existia tal coisa em DesdeLinux.
            Na próxima vez que um comentário exigir código, eu o usarei.
            Obrigado pela informação. XD

  5.   Neo61 dito

    AH ... e se você vê que estou usando Linux é porque eu uso os dois, mas estou interessado em me aprofundar no Linux

  6.   Santiago dito

    Artigo muito bom !! É zenity super útil.

    Eu o uso em um script thunar que redimensiona as imagens selecionadas e, com uma lista, ofereço os tamanhos das imagens padrão.

    Saudações !!

  7.   Hyuuga_Neji dito

    Preciso que você me diga onde encontrar o Zenity que porque já procuro e não está no repo que tenho…. Estou muito feliz de usar um repo que não faço download sozinho ... (Alerta: modo sarcástico detectado neste comentário)

  8.   Jose Sales dito

    Vamos ver o que você acha disso?
    #! / Bin / bash
    song = $ (zenity –width = 360 –height = 320 –title "Launcher" –file-selection –directory $ HOME)
    encontre "$ song" -name * .mp3 | sort –random-sort | head -n 100 | xargs -d '\ n' mpg123
    Ainda preciso melhorar um pouco