web-dev-qa-db-fra.com

Est-il possible d'afficher une notification à partir d'un script bash sous Ubuntu?

La plupart des applications peuvent afficher des notifications bien formatées sur les événements qui apparaissent dans le coin supérieur droit de l'écran. Je suis sur le point d'écrire un script bash qui fera un traitement long d'une fée en arrière-plan et je veux vraiment savoir quand il sera fini. Comment puis-je montrer cette notification Nice à partir d'un script bash?

100
vava

Si vous utilisez le nouveau système de notification de Jaunty, vous souhaitez que la commande 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.
118
nagul

Trouvé d'une autre manière, par Zenity

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

(Cela a aussi l'avantage d'être déjà installé sur Ubuntu.)

28
vava

Il y a aussi xmessage qui ouvrira une fenêtre, ce qui devrait fonctionner sur n'importe quel système X11.

Pro: Il permet également d'inviter de manière interactive l'utilisateur avec des boutons.

Con: Comme toute alerte contextuelle, elle reçoit généralement le focus . Par conséquent, si vous êtes en train de la saisir, elle peut disparaître avant de lire le message.

12
NVRAM

Pour les utilisateurs de KDE:

$ kdialog --title "Long process completed!" --passivepopup "This popup will disappear in 5 seconds" 5 &
10
kolypto

Il existe une solution multiplate-forme appelée Yfiton :

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

Notification contextuelle qui se ferme automatiquement après 10 secondes:

notify-send "Hello world"

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

Fenêtre contextuelle avec des boutons pour cliquer:

[la fenêtre ne fait pas l'autofocus]

notify-send -t 0 "Hello world"

Source: moi-même; note: -test ignoré pour toutes les valeurs sauf 0 - quelle stupidité . :(


OR
[la fenêtre est mise au point automatiquement]

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

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


OR

[MON FAVORI, car la fenêtre se ferme automatiquement après le --timeout spécifié en secondes]

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

Source: moi-même en train de lire les pages de manuel: man zenity


OR
[super laid]

xmessage 'hello world'

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

3
Gabriel Staples

Dans un script Shell, vous pouvez également appeler l'utilitaire osd_cat à partir de libxosd.

2
geek