Как сделать пузыри уведомлений с пользовательским размером, цветом и положением, используя командную строку?
Интересно, есть ли какой-либо метод командной строки для создания уведомлений в пузыре уведомлений Ubuntu. Или есть файл, который принадлежит этой задаче?
Я хочу следующие характеристики:
- Мои собственные сообщения появляются в пузыре уведомлений.
- Эти уведомления появляются в определенной позиции на экране, а не только в позиции по умолчанию.
- Размер пузыря уведомлений можно изменить.
- Его цвет можно изменить.
ОБНОВИТЬ
Я прочитал "Как я могу отправить пользовательское уведомление на рабочем столе?" и теперь я знаю, что notify-send
поможет мне в моей цели. Но есть некоторые ограничения с этой командой. Я хочу знать, есть ли какая-либо другая команда, которую нужно использовать, или какой-либо файл, который можно изменить, чтобы можно было изменить размер,цвет и положение пузырька уведомлений?
1 ответ
Исторически сложились разные подходы к проблеме "уведомлений". Нет даже единого мнения о том, что такое "уведомление". Используем ли мы это только для того, чтобы сообщить пользователю, что что-то случилось? Ожидаем ли мы каких-либо действий от него? Если да, то как собирается информация? Может ли это действие быть отложено или пользователь должен действовать немедленно? Как долго это может быть отложено? Как пользователь должен просматривать все ожидающие действия? Ответы на все эти вопросы формируют решения, предлагаемые различными командами.
Суть в том, что нет однозначного ответа на ваш вопрос. Но есть разные подходы, которые вы можете попробовать выбрать тот, который подходит именно вам.
уведомительный отправить
В какой-то момент появился стандарт для уведомлений в Linux. Движущей силой, если мне не изменяет память, была команда GNOME 3. Они стремились к унифицированному способу уведомления приложений всеми пользователями и выяснили, что какой-то компонент среды рабочего стола должен отвечать за обработку (постановка в очередь, отображение, сбор данных) всех уведомлений. Приложения просто отправляют свое уведомление этому компоненту и надеются, что пользователь получит его.
Вы можете создать такое уведомление с notify-send
приложение командной строки. Обратите внимание, что это целенаправленно не позволяет настройки. Вы только передаете свое сообщение, а остальное оставляете на рабочий стол. Этот вид уведомлений поддерживается Unity (Ubuntu), GNOME 3 и KDE SC / Plasma.
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, поэтому он не будет работать под Mir или Wayland.
Zenity / kdialog
zenity
(для настольных компьютеров GTK - Unity и GNOME) и kdialog
(для рабочих столов Qt - KDE и LxQt) позволяют пользователю создавать простые диалоговые окна из командной строки. Вы можете поместить текст внутри, а также некоторые предопределенные значки, кнопки, формы ввода, списки, средства выбора файлов или индикаторы выполнения. Имея небольшую работу на вашей стороне, вы можете использовать их как способ уведомления пользователя.
zenity
опоры --width=
а также --height=
Командная строка переключается, но не предоставляет никакого способа изменить расположение окна. Лично я пользуюсь --title=
дать окну некоторые пользовательские заголовок и правила оконного менеджера. Менеджер окон (в моем случае KWin) выбирает все окна, которые соответствуют определенным критериям, например заголовок, содержащий строку, и изменяет их свойства. Для уведомлений я помещаю эти окна в правый нижний угол экрана, удаляю строку заголовка окна, заставляю их появляться на всех виртуальных рабочих столах и удаляю их из панели задач.
Индивидуальное решение
Если ни одна из вышеперечисленных программ не соответствует вашим требованиям, вы всегда можете написать собственное решение. Python предоставляет привязки к GTK и Qt и позволит вам относительно безболезненно создавать пользовательский графический интерфейс. У вас будут все возможности настройки в мире, но для этого потребуется некоторая начальная работа, чтобы начать.