Question Y a-t-il un moyen d'afficher une notification à partir du script bash dans Ubuntu?


La plupart des applications peuvent afficher une notification bien formatée 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 de longue durée en arrière-plan et je veux vraiment savoir quand il sera terminé. Comment puis-je montrer cette belle notification à partir d'un script bash?


91
2017-08-29 10:31


origine


Comment puis-je déclencher une notification lorsqu'un travail / processus se termine? - phuclv


Réponses:


Si vous utilisez le nouveau système de notification dans Jaunty, vous voulez le notifier-envoyer commander

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.

107
2017-08-29 10:35



Merci, je l'ai trouvé moi-même :) apt-get install libnotify-bin doit être exécuté avant de l'obtenir. - vava
Comment l'utilisateur root envoie-t-il un message de crons, init.d, etc.? - Lance Caraccioli
Exemple: notify-send Test "Hello World" - Thaha kp
Le paramètre --expire-time ne fonctionne pas sur Ubuntu grâce à cette "fonctionnalité" (bug). bugs.launchpad.net/ubuntu/+source/notify-osd/+bug/390508 - axiopisty
Je l'ai trouvé notify-send est inhibé pendant la lecture vidéo / audio. Bien que ce soit un cas d'utilisation valide, si vous voulez toujours les voir, alors --urgence = critique il faut ajouter. - ccpizza


Trouvé une autre façon, à travers Zenity

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

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


24
2017-08-29 11:14



J'aime Zenity dans la mesure où il prend en charge les interactions utilisateur pour les dialogues (contrairement à notify-send) - Waffle's Crazy Peanut


Pour les utilisateurs de KDE:

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

10
2017-08-29 21:14



Est-il possible de définir une icône pour la notification? - Malabarba


Il y a aussi xmessage cela va faire apparaître une fenêtre, donc ça devrait fonctionner sur n'importe quel système X11.

Pro: Il permet également d'inviter l'utilisateur à utiliser des boutons.

Con: Comme toute alerte pop-up, il typiquement reçoit le focus, donc si vous êtes en train de taper, il peut disparaître avant de lire le message.


10
2017-10-23 22:32



Con: Il a l'air moche comme l'enfer, et c'est aussi une fenêtre minuscule qui n'est pas toujours évidente pour l'utilisateur. Quoi qu’il en soit, c’est universel cependant. :) - Nik Reiman
xmessage ne fonctionne pas dans Fedora cependant. Ce n'est pas installé par défaut. - Abhay Mittal
Il n'est pas disponible non plus dans l'installation par défaut de Xorg d'Arch Linux. - friederbluemle
Vous pouvez également obtenir une fenêtre contextuelle avec un bouton "OK" et "Annuler" via notify-send --expire-time=0 "Hello World"ou notify-send -t 0 "Hello world". Sinon, cependant, le -t L'option est ignorée en raison de certaines "décisions de conception" stupides: askubuntu.com/questions/110969/notify-send-ignores-timeout - Gabriel Staples
Je ne pouvais pas le prendre; Je devais écrire ma propre réponse :) superuser.com/a/1310142/425838 - Gabriel Staples


Il existe une solution multi-plateforme appelée Yfiton:

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

3
2018-01-11 20:10





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


1
2017-08-29 12:51



C'est un peu différent car il n'utilise pas les notifications de bureau Ubuntu. - vava
Oui, c'est une alternative que vous pouvez utiliser avec toute distribution Linux et tout WM / DE. - geek


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

notify-send "Hello world"

La source: https://superuser.com/a/31919/425838

Fenêtre contextuelle avec des boutons pour cliquer:

[la fenêtre n'obtient pas la mise au point automatique]

notify-send -t 0 "Hello world"

Source: moi-même Remarque: -t  est ignoré pour toutes les valeurs sauf 0 - comment stupide. :(


OU
[la fenêtre obtient la mise au point automatique]

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

La source: https://askubuntu.com/a/804475/327339


OU

[MES FAVORIS, puisque la fenêtre se ferme automatiquement après la spécification --timeout en secondes]

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

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


OU
[super moche]

xmessage 'hello world'

La source: http://www.linux-commands-examples.com/xmessage


1
2018-04-02 18:11