Как сделать пузыри уведомления с пользовательским размером, цветом и положением с помощью командной строки?

Интересно, существует ли какой-либо метод командной строки для создания уведомлений в пузыре уведомления Ubuntu. Или есть ли файл, которые принадлежат этой задаче?
Я хочу следующие характеристики:

  • Мои собственные сообщения появляются в пузыре уведомления.
  • Эти уведомления появляются в определенной позиции по экрану, не только в положении по умолчанию.
  • Размер пузыря уведомления может быть изменен.
  • Его цвет может быть изменен.

ОБНОВЛЕНИЕ

Я читал, "Как я могу отправить пользовательское настольное уведомление?" и теперь, я знаю это notify-send поможет мне в моей цели. Но существуют некоторые ограничения с этой командой. Я хочу знать, существует ли какая-либо другая команда для использования, или какой-либо файл для изменения, так, чтобы размер, цвет и положение пузыря уведомления могли быть изменены?

2
задан 13 April 2017 в 15:23

1 ответ

Исторически, были разные подходы к проблеме "уведомлений". Нет даже согласия того, каково "уведомление". Мы используем его, чтобы только сказать пользователю, что что-то произошло? Мы ожидаем какое-либо действие от него? Если так, как введенный собран? То действие может быть задержано, или пользователь должен сразу действовать? Сколько времени это могло быть отложено? Как пользователь, как предполагается, рассматривает все иски на рассмотрении? Ответы на все эти вопросы формируют решения, предложенные различными командами.

нижняя строка, нет никакого единственного, определенного ответа на Ваш вопрос. Но существуют разные подходы, что можно попытаться выбрать тот, который соответствует конкретному примеру использования.

уведомляют - отправляют

Однажды, стандарт для уведомлений на Linux появился. Движущая сила его, если не изменяет память, меня право, была командой GNOME 3. Они стремились за объединенный путь ко всем приложениям уведомить пользователя и выяснили, что некоторый компонент настольной среды должен быть ответственен за обработку (организация очередей, отображение, собрав вход) все уведомления. Приложения просто отправляют свое уведомление тому компоненту и надеются, что пользователь получает его.

можно создать такое уведомление с notify-send приложение командной строки. Обратите внимание, что это целеустремленный не допускает настройку. Вы только передаете свое сообщение и оставляете остальных настольной среде. Этот вид уведомлений поддерживается Единицей (Ubuntu), GNOME 3 и SC/плазма KDE.

osd_cat

osd_cat является приложением, которое отображает содержание файла на слое X-сервера. При помощи -d переключатель, можно заставить его автоматически исчезнуть через какое-то время, который делает это несколько подходящим как приложение уведомления.

стандартный шрифт будет ужасен, но можно сделать его лучше при помощи -f переключатель. -f аргументом должна быть строка, созданная xfontsel.

демонстрационное уведомление об А могло быть создано этот путь:

echo -e "sample\nnotification" |osd_cat -p middle -A center -d 1 -f '-*-helvetica-*-r-*-*-34-*-*-*-*-*-*-*' -O 1 -c '#fff'

Вопреки notify-send, можно поместить уведомление куда угодно на экран, и можно настроить его немного (избранный шрифт и цвет; нет никакого цвета фона). Основной недостаток состоит в том, что это - X-specific, таким образом, это не будет работать под Миром или Уэйлендом.

zenity/kdialog

zenity (для рабочих столов GTK - Единица и GNOME) и kdialog (для спокойных рабочих столов - KDE и LxQt) позволяют пользователю создавать простые диалоговые окна из командной строки. Можно вставить текст, но также и некоторые предопределенные значки, кнопки, входные формы, списки, средства выбора файла или индикаторы выполнения. С небольшой работой над Вашей стороной Вы могли использовать их в качестве способа уведомить пользователя.

zenity поддержки --width= и --height= переключатели командной строки, но не обеспечивает способа изменить размещение окна. Лично, я использую --title=, чтобы дать окну некоторые пользовательские правила заголовка и менеджера окон. Менеджер окон (KWin в моем случае) выбирает все окна, которые соответствуют определенным критериям, как заголовок, содержащий строку, и изменяют их свойства. Для уведомлений я поместил эти окна в правый нижний угол экрана, удаляю панель заголовка окна, заставляю их появиться на всех виртуальных рабочих столах и удалить их из панели задач.

Настраиваемое решение

, Если ни одна из вышеупомянутых программ не удовлетворяет Вашим требованиям, можно всегда писать настраиваемое решение. Python обеспечивает привязку и к GTK и к QT и позволит, Вы к относительно безболезненно создаете пользовательский GUI. У Вас будут все опции настройки в мире, но это потребует, чтобы некоторая начальная работа начала.

5
ответ дан 2 December 2019 в 01:58

Другие вопросы по тегам:

Похожие вопросы: