3.8.2.2 Yad — утилита для создания диалоговых окон с использованием терминала или сценариев
Скачать документ Установка yad
Синтаксис и опции
Примеры использования
Диалоговое окно формы ввода
Диалоговое окно выбора цвета
Диалоговое окно с календарем
Ссылка в диалоговом окне
Список в диалоговом окне
Диалоговое окно для ввода текста
Добавление yad в bash-сценарии
Пример 1. Диалоговое окно записной книжки
Пример 2. Диалоговое окно с сообщением
Окружение
- Версия РЕД ОС: 8
- Конфигурация: Рабочая станция
- Версия ПО: yad-13.0
Yad (Yet Another Dialog) — программа для построения графических диалоговых окон (GTK3) из сценариев оболочки или командной строки, что позволяет предоставлять и запрашивать информацию у пользователя.
С ее помощью можно создавать диалоговые окна с различными элементами управления, включая кнопки, флажки, текстовые поля и т.д.
Yad может использоваться для создания пользовательских интерфейсов для скриптов командной строки и других приложений.
Установка yad
По умолчанию в РЕД ОС утилита yad уже установлена (расположена в каталоге /usr/bin/yad). Проверьте, установлена ли утилита yad в вашей системе и доступна ли она для использования, выполнив следующую команду:
which yad
Если по какой-либо причине утилита yad не установлена, для ее установки выполните следующую команду (потребуются права администратора):
sudo dnf install yad
Синтаксис и опции
Утилита доступна для запуска через терминал при помощи команды следующего вида:
yad [опции]
Основные опции:- -h, --help — вывести справку по работе с утилитой;
- --version — вывести версию утилиты;
- --about — просмотреть информацию о программе;
- --help-general — показать общие параметры.
Опции утилиты, отвечающие за вид диалогового окна:
- --app — диалоговое окно выбора приложения;
- --calendar — диалоговое окно выбора даты;
- --color — диалоговое окно выбора цвета;
- --dnd — диалоговое окно для перетаскивания объектов;
- --entry — диалоговое окно с полем ввода текста;
- --icons — диалоговое окно со значками ярлыков;
- --file — диалоговое окно выбора файлов;
- --font — диалоговое окно выбора шрифта;
- --form — диалоговое окно формы;
- --html — диалоговое окно HTML;
- --list — диалоговое окно со списком;
- --multi-progress — диалоговое окно с несколькими индикаторами выполнения;
- --notebook — диалоговое окно блокнота;
- --notification —диалоговое окно уведомления;
- --print — диалоговое окно печати;
- --progress — диалоговое окно выполнения процесса;
- --text-info — диалоговое окно с текстовой информацией;
- --scale — диалоговое окно шкалы.
Опции общего назначения:
- --title="ЗАГОЛОВОК" —установить заголовок диалога;
- --window-icon=<ICON> — установить значок окна;
- --width=<ШИРИНА> — установить ширину;
- --height=<ВЫСОТА> — установить высоту;
- --timeout=<ЗАДЕРЖКА> — установить задержку диалога в секундах;
- --ok-label="ТЕКСТ"— установить метку для кнопки «ОК»;
- --cancel-label="ТЕКСТ" — установить метку для кнопки «Отменить»;
- --extra-button="ТЕКСТ" — добавить дополнительную кнопку;
- --modal — установить модальное свойство;
- --posx=<ЧИСЛО> — установить горизонтальное положение диалогового окна;
- --posy=<ЧИСЛО> — установить вертикальное положение диалогового окна;
- --geometry=<ШИРИНА>x<ВЫСОТА>+<X>+<Y> — установить размеры диалогового окна;
- --timeout-indicator=<ПОЗИЦИЯ> — показывать индикатор задержки в позиции (top, bottom, left или right);
- --no-buttons — не показывать кнопки;
- --no-focus — не фокусировать диалоговое окно;
- --fullscreen — запустить диалог в полноэкранном режиме;
- --text="ТЕКСТ" — текст сообщения;
- --text-width=<ЧИСЛО> — установить максимальную ширину текста диалога в символах;
- --text-align=<ТИП> — задать тип выравнивания текста диалога (left, right, center или fill);
- --icon-theme=<ТЕМА> — использовать указанную тему значков GTK вместо стандартной;
- --sticky — сделать окно видимым на всех рабочих столах;
- --fixed — сделать окно фиксированной ширины и высоты;
- --center — разместить окно в центре экрана;
- --mouse — разместить окно под позицию мыши;
- --on-top — разместить окно поверх других окон;
- --undecorated — удалить заголовок и рамки окна;
- --enable-spell — включить проверку орфографии.
Пользовательские параметры диалогового окна:
- --pname="ТЕКСТ" — установить имя программы;
- --image=<ИЗОБРАЖЕНИЕ> — установить имя значка программы;
- --pversion="ТЕКСТ" — установить строку версии программы;
- --copyright="ТЕКСТ" — установить строку авторского права программы;
- --comments="ТЕКСТ" — подробное описание программы;
- --license="ТЕКСТ" — установить лицензию программы, где значением может быть одна из предопределенных лицензий (GPL2, GPL3, LGPL2, LGPL3, BSD, MIT или ARTISTIC), имя файла с текстом лицензии или произвольная строка;
- --authors="ТЕКСТ" — установить список авторов программы через запятую;
- --website=<URI> — установить ссылку на сайт программы;
- --website-label=<МЕТКА> — установить метку для ссылки на сайт программы.
Опции выбора приложения:
- --enable-fallback— показать резервные приложения;
- --enable-other — показать другие приложения;
- --enable-all— показать все доступные приложения;
- --extened — показать расширенную информацию о выбранном приложении, где полями вывода являются имя, отображаемое имя, описание, значок и исполняемый файл.
Примеры использования
В зависимости от ситуации, требующей незамедлительного вмешательства пользователя или запуска окна в определенное время, можно использовать соответствующие команды в скрипте или непосредственно из командной строки. В диалоговой форме можно получать данные от пользователя, а затем передавать их в скрипт.
Диалоговое окно формы ввода
Для вывода диалогового окна для получения данных от пользователя введите команду:
yad --form --title="Введите свои данные" --columns=2 --field="Фамилия" --field="Имя" --field="Должность" --field="Возраст"
Параметры диалога формы ввода:
- --form — отобразить диалог формы с полями ввода;
- --field=<МЕТКА>[:ТИП] — добавить поле к форме (список типов указан на странице руководства yad);
- --align=<ТИП> — задать выравнивание меток полей (left, center или right);
- --columns=<ЧИСЛО> — задать количество колонок в форме;
- --homogeneous — сделать высоту и ширину полей формы одинакового размера;
- --output-by-row — упорядочить вывод по строкам;
- --focus-field=<ЧИСЛО> — задать поле, получающее фокус;
- --changed-action=<КОМАНДА> — задать действие при изменении поля.
Для создания формы с указанными полями, введите следующую команду в терминале:
yad --form --field="Дата::DT" --field="Масштаб::SCL" --field="Выключатель::SW"
Типы полей формы:
--field=МЕТКА[:ТИП] — тип может быть H, RO, NUM, CHK, CB, CBE, CE, FL, SFL, DIR, CDIR, FN, MFL, MDIR, DT, SCL, SW, APP, ICON, CLR, BTN, FBTN, LINK, LBL или ТХТ.
- H — тип скрытого поля, все символы отображаются как невидимые символы;
- RO — поле только для чтения;
- NUM — числовое поле
ЗНАЧЕНИЕ[!ДИАПАЗОН[!ШАГ![PREC]]]
задает формат начального значения, диапазона, шага, PREC — это точность десятичных дробей; - CHK — поле-флажок, где начальное значение представляет собой логическую константу, нечувствительную к регистру (ИСТИНА или ЛОЖЬ);
- CB — поле со списком, где начальное значение представляет собой список
ЗНАЧ1!ЗНАЧ2!...
; - CBE — редактируемое поле со списком;
- CE — запись с завершением;
- FL — кнопка выбора файла;
- SFL — поле для создания файла;
- DIR — кнопка выбора директории;
- CDIR — поле для создания папки;
- FN — кнопка выбора шрифта;
- MFL — выбрать несколько файлов;
- MDIR — выбор нескольких папок;
- DT — поле выбора даты;
- SCL — поле масштаба, принимающее значения в диапазоне 0..100;
- SW — поле выключателя, где начальное значение представляет собой логическую константу, нечувствительную к регистру (ИСТИНА или ЛОЖЬ);
- APP — кнопка выбора приложения, где входное значение для этого поля имеет тип mime, выходное значение — исполняемый файл для выбранного приложения;
- ICON — поле значка имеет две иконки: слева отображается текущий значок, а справа можно щелкнуть и вызвать yad-con-браузер для выбора значка;
- CLR — кнопка выбора цвета;
- BTN — поле кнопки (метка может быть в виде текста в формате
LABEL[!ICON[!TOOLTIP]]
, где «!» является разделителем элементов, LABEL — это текст надписи на кнопке или идентификатор, ICON — значок кнопки (идентификатор или имя файла), TOOLTIP — это необязательный текст для всплывающей строки справки); - FBTN — поле кнопки с полным рельефом;
- LINK — поле кнопки ссылки;
- LBL — текстовая метка (если имя поля пустое, будет показана горизонтальная разделительная линия);
- TXT — многострочный ввод текста, занимающий всю ширину формы.
При использовании наименования поля без типа будет выведена простая текстовая запись.
Диалоговое окно выбора цвета
Для вывода диалогового окна выбора цвета введите в терминал следующую команду:
yad --title="Выберите цвет" --color --init-color=RED --picker
Параметры диалога выбора цвета:
- --color — отобразить диалог для выбора цвета;
- --init-color=<ЦВЕТ> — задать начальное значение цвета;
- --gtk-palette — показать системную палитру;
- --palette="ИМЯ_ФАЙЛА" — указать путь к файлу палитры;
- --expand-palette — раскрыть пользовательскую палитру;
- --picker — показать кнопку выбора цвета;
- --mode=<РЕЖИМ> — установить режим вывода на экран, где значения — hex (по умолчанию) или rgb;
- --alpha — добавить прозрачность к значению цвета.
Диалоговое окно с календарем
Для вывода диалогового окна с календарем введите следующую команду:
yad --calendar --day=30 --show-weeks
Параметры, используемые для вывода диалогового окна, в котором будет отображен календарь:
- --calendar — показать диалог выбора даты;
- --day=<ДЕНЬ> — установить день в календаре (число от 1 до 31);
- --month=<МЕСЯЦ> — установить месяц в календаре (число от 1 до 12);
- --year =<ГОД> — установить год в календаре;
- --details="ИМЯ_ФАЙЛА" — задать имя файла с описанием дат;
- --show-weeks — показать нумерацию недель слева.
Ссылка в диалоговом окне
1. Выберите директорию и создайте файл, например:
nano /home/user/text.txt
2. Запишите в него требуемую информацию:
«Российская операционная система.
РЕД ОС собирается из исходных кодов Open Source проектов и собственных разработок. Сборка пакетов выполняется по собственным спецификациям или спецификациям Open Source проектов. Все используемые спецификации адаптируются для обеспечения совместимости с пакетной базой РЕД ОС.
https://redos.red-soft.ru/.
3. Сохраните файл и выполните следующую команду в терминале:
yad --text-info --back=red </home/user/text.txt --show-uri --text="РЕД ОС" --title="Сообщение" --wrap --editable --tail --show-cursor
Параметры:
- --text-info — создает окно для отображения текстовой информации;
- --back=ЦВЕТ — использует указанный цвет для фона;
- --wrap — включить перенос текста;
- --editable — разрешить изменения в тексте;
- --tail — автопрокрутка до конца текста;
- --show-cursor — показывать курсор в режиме только для чтения;
- --text="ТЕКСТ" — текст сообщения;
- --show-uri — сделать URI кликабельным.
Список в диалоговом окне
Диалоговое окно для списка можно получить, введя команду:
yad --list --column="Имя" --column="Псевдоним" --column=Возраст Мария Raily 30 Валерий Freddy 35 --height=150 --width=400
Для добавления в список элементов --checklist или --radiolist можно воспользоваться следующими примерами:
yad --list --checklist --width=300 --height=130 --column="Флаг" --column="Имя" --column= "Псевдоним" --column="Возраст" false Мария Raily 30 false Валерий Freddy 35
yad --list --radiolist --width=302 --height=123 --column="Флаг" --column="Имя" --column="Псевдоним" --column="Возраст" false Aлексей Вool 20 false Даниил Tim 30
Отобразить список в режиме дерева можно следующим образом:
yad --list --tree --column "Наименование" f "Контакты" 1:f "Телефон" 2:f "Адрес" v "Ресурсы" 3:v "Telegram" 4:v "Вконтакте"
Диалоговое окно для ввода текста
Диалоговое окно для ввода текста с заголовком «Введите имя:» шириной 450 и высотой 100 можно получить, выполнив команду:
yad --entry --title="Введите имя:" --height=100 --width=450
Добавление yad в bash-сценарии
Пример 1. Диалоговое окно записной книжки
Блокнот представляет собой сложный диалог, который поглощает другие диалоги на своих вкладках. Диалоги идентифицируются уникальным ключом (целым числом) и должны запускаться в специальном режиме плагина (опция --plug). В следующем примере запускается диалоговое окно записной книжки с двумя вкладками: первая содержит простой текст, а вторая — диалоговое окно ввода.
1. Выберите нужную директорию и создайте файл в формате sh:
nano /home/user/Документы/script.sh
2. Впишите в файл следующие строки и сохраните:
#! /bin/sh
yad --plug=123 --tabnum=1 --text="Первая таблица" &> res1 &
yad --plug=123 --tabnum=2 --text="Вторая таблица" --entry &> res2 &
yad --notebook --key=123 --tab="Таблица 1" --tab="Таблица 2"
3. Для выполнения bash-скрипта назначьте пользователю права на выполнение с помощью следующей команды:
chmod u+x script.sh
4. Запустите скрипт с помощью команды:
sh script.sh
Пример 2. Диалоговое окно с сообщением
Для создания диалогового окна с сообщением при первом входе пользователя в систему выполните следующий алгоритм действий.
В РЕД ОС 7.3:
1. Откройте файл /etc/gdm/PreSession/Default, введя команду в терминале (потребуются права администратора):
nano /etc/gdm/PreSession/Default
2. Впишите в файл следующие строки и сохраните:
export LANG=ru_RU.UTF-8 /usr/bin/yad --center --geometry=250x250 --text="РЕД ОС — российская операционная система общего назначения для серверов и рабочих станций"
где:
- export LANG=ru_RU.UTF-8 — параметр, необходимый для работы с русским языком (является обязательным, иначе авторизация не будет проходить успешно);
- --geometry= 250x250 — задать размеры окна;
- --center — выровнять диалоговое окно по центру;
- --text="ТЕКСТ" — текст сообщения.
3. Перезагрузите ПК. После авторизации пользователя появится окно с уведомлением.
В РЕД ОС 8.0:
1. Создайте скрипт /home/user1/yadwel.sh (замените user1 на актуальное имя пользователя):
nano /home/user1/yadwel.sh
2. Добавьте в него следующие строки:
#!/bin/bash
export LANG=ru_RU.UTF-8
/usr/bin/yad --center --geometry=250x250 --text="РЕД ОС — российская операционная система общего назначения для серверов и рабочих станций"
3. Выдайте права на исполнение файла:
chmod +x /home/user1/yadwel.sh
4. Создайте файл в каталоге /etc/xdg/autostart/ для автозапуска уведомления во время авторизации пользователя:
nano /etc/xdg/autostart/WelcomeYad.desktop
5. Добавьте в него следующие строки:
[Desktop Entry]
Type=Application
Name=Welcome Message
Comment=Shows a welcome message
Exec=/home/user1/yadwel.sh
Terminal=false
X-MATE-Autostart-enabled=true ##если используется графическая оболочка MATE
X-GNOME-Autostart-enabled=true #если используется графическая оболочка GNOME
X-KDE-Autostart-enabled=true #если используется графическая оболочка KDE
6. Перезагрузите ПК. После авторизации пользователя появится окно с уведомлением.
В наших статьях можно подробнее ознакомиться с использованием утилит создания интерактивных меню в РЕД ОС:
Дата последнего изменения: 24.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.