Я часто відвідую форуми своєї країни ... і чесно кажучи, рідко можна знайти щось цікаве. Однак на одному з цих форумів є користувач, який зробив дві цікаві публікації про Linux, і це перша (якою я хочу поділитися з вами):
Практичне використання діалогового вікна Zenity
Zenity - це набір графічних діалогових вікон, які використовують бібліотеки gtk, за допомогою цієї програми ми можемо вводити дані, вибирати список завдань, показувати нам інформацію, що випливає з даного процесу, дозволяти нам робити перерви до або під час певного процесу, серед інших функцій.
Zenity складається приблизно з 13 графічних діалогових вікон, давайте подивимося, що це таке та їх можливі комбінації:
1- Щоб показати нам календар і вибрати бажану дату (ця дата відображатиметься у цифровому форматі після вибору):
zenity --calendar
2- Введення тексту (дуже корисно при запиті даних або імені файлу)
zenity --entry
Поєднуйте їх правильно, щоб запитувати нас про введення даних
zenity --entry --text "Escriba el nombre del archivo"
3- Повідомте нас, що сталася помилка
zenity --error --text "Imposible continuar"
4- Щоб вибрати файл
zenity --file-selection $HOME
Додавання цієї опції дозволяє нам вибрати кілька файлів:
--multiple
За допомогою цього ви виберете лише папки
--directory
Завдяки цьому замість вибору ми активуємо опцію збереження
--save
Це допоможе запобігти перезапису існуючого файлу:
--confirm-overwrite
5- Покажіть нам певну інформацію
zenity --info *text "Información a mostrar"
6- Покажіть нам список варіантів і виберіть один із них:
zenity --list --column "nombre de columna" "opcion1" "opción2" "opción3" "opción4"
А що, якщо ми хочемо мати список дій для певних файлів, але ми хочемо, щоб відображалося ім’я виконуваної дії. Щоб досягти цього, ми повинні використовувати ці два варіанти (–hide-column value і * print-column value) це буде виглядати так:
zenity --hide-column 2 --print-column 2 --list --column "nombre de columna" --column "columna oculta" "nombre1" "comando1" "nombre2" "comando2"
Якщо ми хочемо вибрати кілька дій одночасно, ми повинні додати ці два варіанти
Текст, який буде відокремлювати обрану послідовність від іншої (у цьому випадку ми додаємо це »», що означає пробіл
--separator=" "
І варіант, який дозволить нам вибрати більше, ніж одну дію одночасно
--multiple
7- Покажіть нам повідомлення в рядку меню
zenity *notification *text "Texto deseado"
8- Покажіть нам хід даного процесу:
zenity --progress --pulsate
9- Завдяки цьому воно покаже нам запитання, і ми зможемо вибрати, чи хочемо ми продовжувати процес:
zenity --question --text "Desea Continuar"
10- За допомогою цього ми можемо отримати результат послідовності в консолі, наприклад, список пошуку файлів, довідкові запити, серед іншого:
zenity --text-info zenity --help-all | zenity --text-info
11- Це може повідомити нам, що процес перервано.
zenity --warning --text "El proceso ha fallado" ls /media/carpeta || zenity --warning --text "No existe el directorio"
12- За допомогою цього ми можемо вибрати задане число за допомогою повзунка:
zenity --scale
Додавши цю опцію, ми можемо визначити мінімальне значення:
--value 60 --min-value 60
(параметр –value ніколи не повинен бути менше * min-value)
Цим ми вибираємо максимальне значення
--max-value 100
13- За допомогою цього він покаже нам діалогове вікно, за допомогою якого ми можемо вибрати бажаний колір і взяти колір з іншого боку за допомогою так званої крапельниці для вибору кольору.
zenity --color-selection --show-palette
Перевіривши, які діалогові вікна доступні в цій програмі, давайте подивимось декілька практичних прикладів із ними:
- Давайте подивимося, як ми можемо змішати діалогове вікно введення тексту
за допомогою скрипта:
#!/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"
- Давайте подивимося, як поєднати діалогове вікно № 12 числових шкал:
(Це простий сценарій для зниження якості jpg-зображень і, таким чином, зменшення місця, яке він займає на наших дисках)
#!/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%" "$@"
- Давайте подивимось ще один приклад, коли ми будемо використовувати діалогове вікно вибору кольору, де ми додамо рамку вибраного нами кольору до фотографії:
#!/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 "$@"
- Давайте подивимось приклад з діалоговим вікном повідомлень про помилки:
#!/bin/bash
rm "$@" || zenity --error --text "Imposible de eliminar esto es una carpeta"
Як бачите, якщо хтось намагається видалити папку, процес повертає помилку, тому ланцюжок продовжується завдяки цим || операторам.
- Подивимось тепер, що ми можемо зробити з діалоговим вікном № 6, вибравши дії, які ми будемо виконувати над певним файлом:
#!/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 "$@"
Зверніть увагу, що в командному полі є пробіл, оскільки він не дозволяє тексту починатися з дефіса, тому роздільник у цьому випадку має бути нульовим –сепаратором = »».
- Подивимось ще один приклад з діалоговим вікном прогресу
#!/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
... Ну це все.
Сподіваюся, я зможу принести вам ще цікаві публікації.
привіт
Єдине, для чого я використав зенітність, це те, що winetricks просить, щоб він добре працював (принаймні в моїй арці) ха-ха дякую за підказку
Zenity використовується для деяких інших хитрощів, таких як пошукова система Xfce 😀
Дякую, дуже дякую, добре, що ви говорите про Gtk +. Я також використав зенітність, я все ще не дуже добре це розумію, але пізніше з наданою вами інформацією і на практиці я можу знайти для неї практичне використання.
Привіт.
Привіт із Камагуєя (у мене є французька клавіатура, яка не дозволяє мені знайти два пінтіко у ... хе-хе-хе), не могли б ви мені пояснити, для чого це корисно? А якщо все це робиться за допомогою консолі? Було б добре, якщо б ви опублікували декілька зображень захоплень, щоб приклади були проілюстровані і таким чином виглядало б краще, що ви маєте на увазі
Насправді цю статтю написав не я, а користувач одного з наших форумів.
Так, все це робиться за допомогою консолі, і ... для чого це потрібно? Ну, це дуже просто: "знання".
Приклад використання, яке можна надати духовності для когось із французькою клавіатурою.
#! /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
О, яка ганьба. Копіювання та вставка безпосередньо не працює, тому що коли він стає коментарем, він "не поважає" рядок, що розривається після кожної косої риски "\".
Щоб це працювало, вам потрібно змінити зворотні скісні риски, а потім розрив рядка для простого пробілу.
Я не копіюю його знову, щоб не наситити коментарі, але, щоб було зрозуміло, з третього до восьмого рядка, включно з обома, він повинен бути в одному рядку таким чином, щоб:
ACTION = `zenity –width = 0 –height = 260 –list –title« Setxkbmapa selector »–text« Select your keyboard »–colum« Language »« Spanish »« French »« English »« Gringo »« German »`
Якщо ви хочете поділитися кодом у коментарях, ви можете зберегти його в Паста та вставте URL-адресу у свій коментар. 🙂
Відмінний засіб. Я не знав, що таке є DesdeLinux.
Наступного разу, коли коментар потребує коду, я буду його використовувати.
Дякую за інформацію. XD
АГ ... і якщо ви бачите, що я використовую Linux, це тому, що я використовую обидва, але я зацікавлений у тому, щоб добре вступити в Linux
Дуже хороша стаття !! Це надзвичайно корисна зенітність.
Я використовую його в скрипті thunar, який змінює розмір вибраних зображень, і зі списком пропоную розміри стандартних зображень.
Привіт!
Мені потрібно, щоб ви сказали мені, де знайти Zenity, тому що я вже шукав, і його немає в репо, яке я маю…. Як я щасливий, що використовую репо, що я сам не завантажую… (Оповіщення: у цьому коментарі виявлено саркастичний режим)
Давайте подивимось, що ви про це думаєте?
#! / бін / баш
пісня = $ (zenity –width = 360 –height = 320 –заголовок "Launcher" –файл-вибір –довідник $ HOME)
знайти "$ song" -name * .mp3 | сортувати –випадково-сортувати | голова -н 100 | xargs -d '\ n' mpg123
Мені ще потрібно трохи його вдосконалити