Jeg besøker forumene i mitt land mye ... og ærlig talt er det sjelden å finne noe interessant. Imidlertid er det i et av disse forumene en bruker som har laget to interessante innlegg om Linux, og dette er det første (som jeg vil dele med deg):
Praktisk bruk av dialogboksen Zenity
Zenity er et sett med grafiske dialogbokser som brukes av gtk-biblioteker, med dette programmet kan vi legge inn data, velge en liste over oppgaver, vise oss informasjonen som følger av en gitt prosess, la oss gjøre et avbrudd før eller under en bestemt prosess, blant annet funksjoner.
Zenity består av rundt 13 grafiske dialogbokser, la oss se hva dette er og deres mulige kombinasjoner:
1- For å vise oss en kalender og velge ønsket dato (denne datoen vises i numerisk format når den er valgt):
zenity --calendar
2- Å skrive inn tekst (veldig nyttig når du ber om data eller navnet på en fil)
zenity --entry
Kombiner dem riktig slik at det ber oss om at dataene skal legges inn
zenity --entry --text "Escriba el nombre del archivo"
3- For å informere oss om at det har oppstått en feil
zenity --error --text "Imposible continuar"
4- For å velge en fil
zenity --file-selection $HOME
Ved å legge til dette alternativet kan vi velge flere filer:
--multiple
Med dette vil du bare velge mappene
--directory
Med dette i stedet for å velge vil vi aktivere lagringsalternativet
--save
Med dette vil vi forhindre at en eksisterende fil blir overskrevet:
--confirm-overwrite
5- Vis oss viss informasjon
zenity --info *text "Información a mostrar"
6- Vis oss en liste over alternativer og velg en eller en gruppe av disse:
zenity --list --column "nombre de columna" "opcion1" "opción2" "opción3" "opción4"
Hva skjer nå hvis vi vil ha en liste over handlinger for bestemte filer, men vi vil at navnet på handlingen skal utføres skal vises. For å oppnå dette må vi bruke disse to alternativene (–hide-column value and * print-column value) det vil se slik ut:
zenity --hide-column 2 --print-column 2 --list --column "nombre de columna" --column "columna oculta" "nombre1" "comando1" "nombre2" "comando2"
Hvis vi vil velge mer enn én handling om gangen, må vi legge til disse to alternativene
Tekst som skiller den valgte sekvensen fra den andre (i dette tilfellet legger vi til dette »» som betyr et mellomrom
--separator=" "
Og alternativet som lar oss velge mer enn én handling om gangen
--multiple
7- Vis oss et varsel i menylinjen
zenity *notification *text "Texto deseado"
8- Vis fremdriften i en gitt prosess:
zenity --progress --pulsate
9- Med dette vil det vise oss et spørsmål, og vi kan velge om vi vil fortsette med prosessen eller ikke:
zenity --question --text "Desea Continuar"
10- Med dette kan vi motta resultatet av en sekvens i konsollen, for eksempel listen over et søk etter filer, hjelpespørsmål, blant andre:
zenity --text-info zenity --help-all | zenity --text-info
11- Dette kan informere oss om at prosessen er avbrutt.
zenity --warning --text "El proceso ha fallado" ls /media/carpeta || zenity --warning --text "No existe el directorio"
12- Med dette kan vi velge et gitt tall ved hjelp av en glidebryter:
zenity --scale
Ved å legge til dette alternativet kan vi definere minimumsverdien:
--value 60 --min-value 60
(alternativet –verdi bør aldri være mindre enn * min verdi)
Med dette velger vi maksimumsverdien
--max-value 100
13- Med dette vil det vise oss en dialogboks som vi kan velge en ønsket farge med og ta fargen fra den andre siden med den såkalte fargevelgeren.
zenity --color-selection --show-palette
Etter å ha sett hvilke dialogbokser som er tilgjengelige i dette programmet, la oss se noen praktiske eksempler med disse:
- La oss se hvordan vi kan blande dialogboksen for tekstinntasting
ved hjelp av et 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"
- La oss se hvordan du kombinerer dialogboksen nummer 12 på numeriske skalaer:
(Dette er et enkelt skript for å senke kvaliteten på jpg-bilder og dermed redusere plassen det opptar på diskene våre)
#!/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%" "$@"
- La oss se et annet eksempel der vi vil bruke fargevalgdialogboksen der vi vil legge til en ramme av fargen som vi velger til et bilde:
#!/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 "$@"
- La oss se et eksempel med feilmeldingsdialogboksen:
#!/bin/bash
rm "$@" || zenity --error --text "Imposible de eliminar esto es una carpeta"
Som noen ser, hvis noen prøver å slette en mappe, returnerer prosessen en feil slik at kjeden fortsetter takket være disse || operatørene.
- La oss nå se hva vi kan gjøre med dialogboksen nummer 6, ved å velge handlingene vi vil utfø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 "$@"
Merk at det er et mellomrom i kommandofeltet siden det ikke tillater at teksten starter med bindestrek, og derfor må skilletegnet i dette tilfellet være null –separator = »».
- La oss se et annet eksempel med fremdriftsdialogboksen
#!/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
... Vel, dette er det.
Jeg håper jeg kan gi deg flere innlegg som er interessante.
Hilsen
Det eneste jeg brukte zenity til var fordi winetricks ber om at det skal fungere bra (i hvert fall i buen min) hehehe takk for tipset
Zenity brukes til noen andre triks, for eksempel Xfce-søkemotoren 😀
Takk, tusen takk, bra at du snakker om Gtk + Jeg har også brukt zenity Jeg forstår det fortsatt ikke så bra, men senere med den informasjonen du har gitt og med praksis kan jeg finne en praktisk bruk for det.
Hilsener.
Hei fra Camaguey (jeg har et fransk tastatur som ikke lar meg finne de to pinticos av u ... hehehe), kan du forklare meg godt hva er dette nyttig for? Og ja, alt dette gjøres med konsoll? Det ville være bra om du la ut noen bilder av opptak slik at eksemplene er illustrert og på den måten ser det bedre ut hva du mener
Egentlig var denne artikkelen ikke skrevet av meg, men av en bruker av et av forumene våre.
Ja, alt dette gjøres med konsoll, og ... hva er det til? Vel, det er veldig enkelt: "kunnskap."
Et eksempel på bruk som kan gis til storhet for noen med det franske tastaturet.
#! /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
Å det var synd. Kopiering og liming direkte fungerer ikke fordi når det blir en kommentar, "respekterer" linjen bryter etter hvert tilbakeslag "\".
For å få det til å fungere, må du endre tilbakeslagene, etterfulgt av en linjeskift for å få en enkel plass.
Jeg kopierer den ikke igjen for ikke å mette kommentarene, men for å være tydelig, fra tredje linje til åttende, begge inkluderende, bør den være i en enkelt linje slik at:
ACTION = `zenity –width = 0 –height = 260 –list –title« Setxkbmap selector »–text« Velg tastatur »–kolonne« Språk »« Spansk »« Fransk »« Engelsk »« Gringo »« tysk »`
Hvis du vil dele koden i kommentarene, kan du lagre den i Pasta og lim inn url i kommentaren din. 🙂
Excelente herramienta. No sabía que existía tal cosa en DesdeLinux.
Neste gang en kommentar krever kode, vil jeg bruke den.
Takk for infoen. XD
AH ... og hvis du ser at jeg bruker Linux, er det fordi jeg bruker begge deler, men jeg er interessert i å komme godt inn i Linux
Veldig bra artikkel !! Det er super nyttig zenity.
Jeg bruker den i et thunar-skript som endrer størrelsen på de valgte bildene, og med en liste tilbyr jeg størrelsene på standardbildene.
Hilsener !!
Jeg trenger at du forteller meg hvor jeg kan finne Zenity det fordi jeg allerede ser og det ikke er i repoen jeg har ... Hvor glad jeg bruker en repo som jeg ikke laster ned selv ... (Alert: Sarkastisk modus oppdaget i denne kommentaren)
La oss se hva synes du om dette?
#! / Bin / bash
sang = $ (zenity –width = 360 –height = 320 –tittel "Launcher" –filvalg – katalog $ HOME)
finn "$ sang" -navn * .mp3 | sorter – tilfeldig-sortering | hode -n 100 | xargs -d '\ n' mpg123
Jeg trenger fortsatt å forbedre det litt