¿Hay alguna manera de mostrar notificaciones de script bash en Ubuntu?

Respuestas:

124

Si está utilizando el nuevo sistema de notificaciones en Jaunty, quiere el comando de notificación-envío

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.
nagul
fuente
44
Gracias, lo encontré yo mismo :) apt-get install libnotify-bin tiene que ejecutarse antes para obtenerlo.
vava
¿Cómo envía el usuario root un mensaje desde crons, init.d, etc.?
Lance Caraccioli
66
Por ejemplo: notificar-enviar prueba "Hola mundo"
Thaha kp
3
El parámetro --expire-time no funciona en Ubuntu gracias a esta "característica" (error). bugs.launchpad.net/ubuntu/+source/notify-osd/+bug/390508
axiopisty
Descubrí que notify-sendse inhibe durante la reproducción de video / audio. Si bien este es un caso de uso válido, si aún desea verlos, debe agregarse --urgency = critical .
ccpizza
29

Encontrado otro camino, a través de Zenity

echo 'message:hi' | zenity --notification --listen

(Esto también tiene la ventaja de estar instalado en Ubuntu).

vava
fuente
Me gusta Zenity porque admite interacciones de usuario para diálogos (a diferencia de notificar-enviar)
Crazy Peanut de Waffle
12

También hay xmessage que abrirá una ventana, por lo que debería funcionar en cualquier sistema X11.

Pro: también permite solicitar interactivamente al usuario con botones.

Con: Al igual que cualquier alerta emergente, generalmente recibe foco, por lo que si está escribiendo, puede desaparecer antes de leer el mensaje.

NVRAM
fuente
44
Con: se ve feo como el infierno, y también es una ventana súper pequeña que no siempre es obvia para el usuario. De todos modos, es universal sin embargo. :)
Nik Reiman
Sin embargo, xmessage no funciona en Fedora. No está instalado por defecto.
Abhay Mittal
Tampoco está disponible en la instalación Xorg predeterminada de Arch Linux.
friederbluemle
También puede obtener una ventana emergente con un botón "Aceptar" y "Cancelar" a través de notify-send --expire-time=0 "Hello World"o notify-send -t 0 "Hello world". Sin embargo, la -topción se ignora debido a algunas "decisiones de diseño" estúpidas: askubuntu.com/questions/110969/notify-send-ignores-timeout
Gabriel Staples
No pude soportarlo; Tuve que escribir mi propia respuesta :) superuser.com/a/1310142/425838
Gabriel Staples
11

Para usuarios de KDE:

$ kdialog --title "Long process completed!" --passivepopup "This popup will disappear in 5 seconds" 5 &
Kolypto
fuente
¿Es posible establecer un icono para la notificación?
Malabarba
5

Notificación emergente que se cierra automáticamente después de 10 segundos:

notify-send "Hello world"

Fuente: https://superuser.com/a/31919/425838

Ventana emergente con botones para hacer clic:

[la ventana no se enfoca automáticamente]

notify-send -t 0 "Hello world"

Fuente: yo mismo; nota: -t se ignora para todos los valores excepto 0 - qué estúpido . :(


O
[la ventana se enfoca automáticamente]

zenity --info --title "Hello" --text "World"

Fuente: https://askubuntu.com/a/804475/327339


O

[MI FAVORITO, ya que la ventana se cierra automáticamente después de lo especificado --timeouten segundos]

zenity --info --title "Hello" --text "World" --timeout=2

Fuente: yo mismo leyendo las páginas del manual: man zenity


O
[súper feo]

xmessage 'hello world'

Fuente: http://www.linux-commands-examples.com/xmessage

Gabriel Staples
fuente
3

Existe una solución multiplataforma llamada Yfiton :

$ yfiton -n desktop -Pmessage="Lunch time!" -Pposition=TOP_RIGHT
Laurent
fuente
2

En un script de shell, también puede llamar a la utilidad osd_cat desde libxosd.

friki
fuente
1
Esto es un poco diferente ya que no utiliza las notificaciones de escritorio de ubuntu.
vava
Sí, esta es una alternativa que puede usar con cualquier distribución de Linux y cualquier WM / DE.
geek