Установка yad Синтаксис и опции Примеры использования Добавление yad в bash-сценарии
Окружение
Yad (Yet Another Dialog) — программа для построения графических диалоговых окон (GTK3) из сценариев оболочки или командной строки, что позволяет предоставлять и запрашивать информацию у пользователя.
С ее помощью можно создавать диалоговые окна с различными элементами управления, включая кнопки, флажки, текстовые поля и т.д.
Yad может использоваться для создания пользовательских интерфейсов для скриптов командной строки и других приложений.
По умолчанию в РЕД ОС утилита yad уже установлена (расположена в каталоге /usr/bin/yad). Проверьте, установлена ли утилита yad в вашей системе и доступна ли она для использования, выполнив следующую команду:
which yad
Если по какой-либо причине утилита yad не установлена, для ее установки выполните следующую команду (потребуются права администратора):
sudo dnf install yad
Утилита доступна для запуска через терминал при помощи команды следующего вида:
yad [опции]
Опции утилиты, отвечающие за вид диалогового окна:
Опции общего назначения:
Пользовательские параметры диалогового окна:
Опции выбора приложения:
В зависимости от ситуации, требующей незамедлительного вмешательства пользователя или запуска окна в определенное время, можно использовать соответствующие команды в скрипте или непосредственно из командной строки. В диалоговой форме можно получать данные от пользователя, а затем передавать их в скрипт.
Для вывода диалогового окна для получения данных от пользователя введите команду:
yad --form --title="Введите свои данные" --columns=2 --field="Фамилия" --field="Имя" --field="Должность" --field="Возраст"
Параметры диалога формы ввода:
Для создания формы с указанными полями, введите следующую команду в терминале:
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 или ТХТ.
ЗНАЧЕНИЕ[!ДИАПАЗОН[!ШАГ![PREC]]]
ЗНАЧ1!ЗНАЧ2!...
LABEL[!ICON[!TOOLTIP]]
При использовании наименования поля без типа будет выведена простая текстовая запись.
Для вывода диалогового окна выбора цвета введите в терминал следующую команду:
yad --title="Выберите цвет" --color --init-color=RED --picker
Параметры диалога выбора цвета:
Для вывода диалогового окна с календарем введите следующую команду:
yad --calendar --day=30 --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
Параметры:
Диалоговое окно для списка можно получить, введя команду:
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
Блокнот представляет собой сложный диалог, который поглощает другие диалоги на своих вкладках. Диалоги идентифицируются уникальным ключом (целым числом) и должны запускаться в специальном режиме плагина (опция --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
Для создания диалогового окна с сообщением при первом входе пользователя в систему выполните следующий алгоритм действий.
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. Перезагрузите ПК. После авторизации пользователя появится окно с уведомлением.
В наших статьях можно подробнее ознакомиться с использованием утилит создания интерактивных меню в РЕД ОС:
Zenity — утилита для создания диалоговых окон из командной строки или с помощью сценариев;
Dialog — утилита для создания диалоговых окон в консольных приложениях.
Дата последнего изменения: 31.01.2025
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.
Нажимая «Отправить запрос», вы соглашаетесь с условиями обработки персональных данных.
Вы будете получать только актуальную информацию по обновлению безопасности
Подписываясь на уведомления, вы соглашаетесь с условиями обработки персональных данных.
На ваш почтовый адрес отправлено письмо с подтверждением подписки.