Есть ли способ показать уведомление от bash-скрипта в Ubuntu?
Большинство приложений могут отображать красиво отформатированные уведомления о событиях, которые появляются в верхнем правом углу экрана. Я собираюсь написать bash-скрипт, который будет долго обрабатывать фон, и я действительно хочу знать, когда он закончится. Как я могу показать это красивое уведомление от bash-скрипта?
7 ответов
Если вы используете новую систему уведомлений в Jaunty, вам нужна команда notify-send
notify-send - a program to send desktop notifications
SYNOPSIS
With notify-send you can sends desktop notifications to the user via
a notification daemon from the command line. These notifications can be
used to inform the user about an event or display some form of information
without getting in the user's way.
OPTIONS
-u, --urgency=LEVEL
Specifies the urgency level (low, normal, critical).
-t, --expire-time=TIME
Specifies the timeout in milliseconds at which to expire the notification.
-i, --icon=ICON[,ICON...]
Specifies an icon filename or stock icon to display.
-c, --category=TYPE[,TYPE...]
Specifies the notification category.
Нашел другой путь, через Zenity
echo 'message:hi' | zenity --notification --listen
(Это также имеет то преимущество, что уже установлено в Ubuntu.)
Всплывающее уведомление, которое автоматически закрывается через 10 секунд:
notify-send "Hello world"
Источник: /questions/554418/est-li-sposob-pokazat-uvedomlenie-ot-bash-skripta-v-ubuntu/554451#554451
Всплывающее окно с кнопками для нажатия:
[окно не получает автофокус]
notify-send -t 0 "Hello world"
Источник: я; нота: -t
игнорируется для всех значений, кроме 0- как глупо.:(
ИЛИ ЖЕ
[окно получает автофокус]
zenity --info --title "Hello" --text "World"
ИЛИ ЖЕ
[МОЙ ЛЮБИМЫЙ, так как окно автоматически закрывается после указанного --timeout
в секундах]
zenity --info --title "Hello" --text "World" --timeout=2
Источник: я читаю справочные страницы: man zenity
ИЛИ ЖЕ
[супер некрасиво выглядящий]
xmessage 'hello world'
Для пользователей KDE:
$ kdialog --title "Long process completed!" --passivepopup "This popup will disappear in 5 seconds" 5 &
Также есть xmessage, которое будет всплывать в окне, поэтому оно должно работать на любой системе X11.
Pro: также позволяет интерактивно подсказывать пользователю кнопки.
Con: Как и любое всплывающее предупреждение, оно обычно получает фокус, поэтому, если вы набираете текст, оно может исчезнуть, прежде чем прочитать сообщение.
Существует кроссплатформенное решение под названием Yfiton:
$ yfiton -n desktop -Pmessage="Lunch time!" -Pposition=TOP_RIGHT
В сценарии оболочки вы также можете вызвать утилиту osd_cat из libxosd.