129 votes

Comment puis-je envoyer une notification personnalisée sur le bureau ?

J'ai un script personnalisé et je veux envoyer une notification de bureau (celle qui apparaît dans le coin supérieur droit de l'écran) avec un message personnalisé. Comment dois-je procéder ?

195voto

devav2 Points 33862

Il y a un tas d'autres fonctionnalités intéressantes avec notify-send

Nous pouvons exécuter une commande et la faire afficher dans la notification :

notify-send <title> <`command`>
notify-send Date "`date`"
notify-send Disk "`df / -H`"

Nous pouvons utiliser des icônes avec les notifications

notify-send -i <icon> <Message>
notify-send -i face-wink "Hello! January"

Pop up vraiment ennuyeux

notify-send  -t 0 "Bringing down the system"

y

notify-send <title> <message>
notify-send "who am i" "I am January"

Pour plus d'options, consultez aquí

19voto

EvilClown13 Points 121

Pour compléter les autres réponses, lorsque je lance la commande localement depuis cron, j'utilise

DISPLAY=:0.0 /usr/bin/notify-send "TITLE" "MESSAGE"

18voto

January Points 33673

Je suis tombé sur celui-là par hasard. Réponse : utilisez le programme notify-send :

notify-send "Hello world!"

5voto

Yahya Points 151

J'ai créé un script simple et presque natif qui joue un son et affiche une notification avec un message et une heure donnés pour Ubuntu ( Gist ):

#!/bin/sh

# https://gist.github.com/John-Almardeny/04fb95eeb969aa46f031457c7815b07d
# Create a Notification With Sound with a Given Message and Time
# The Downloaded Sound is from Notification Sounds https://notificationsounds.com/

MSSG="$1"
TIME="$2"

# install wget if not found
if ! [ -x "$(command -v wget)" ]; then 
    echo -e "INSTALLING WGET...\n\n"
    sudo apt-get install wget
    echo -e "\n\n"
fi

# install at package if not found
if ! [ -x "$(command -v at)" ]; then
    echo -e "INSTALLING AT...\n\n"
    sudo apt-get install at
    echo -e "\n\n"
fi

# install sox if not found
if ! [ -x "$(command -v sox)" ]; then
    echo -e "INSTALLING SOX...\n\n"
    sudo apt-get install sox
    sudo apt-get install sox libsox-fmt-all
    echo -e "\n\n"
fi

# download the noti sound if this is first time
# add alias to the bashrc file
if ! [ -f ~/noti/sound.mp3 ]; then
    echo -e "DOWNLOADING SOUND...\n\n"
    touch ~/noti/sound.mp3 | wget -O ~/noti/sound.mp3 "https://notificationsounds.com/wake-up-tones/rise-and-shine-342/download/mp3"
    sudo echo "alias noti=\"sh ~/noti/noti.sh\"" >> ~/.bashrc
    source ~/.bashrc        
    echo -e "\n\n"
fi

# notify with the sound playing and particular given message and time
echo "notify-send \""$MSSG\"" && play ~/noti/sound.mp3" | at $TIME

Comment l'utiliser ?

Première exécution - Mise en place :

  1. Créez un nouveau répertoire chez vous et appelez-le noti

    mkdir ~/noti
  2. Télécharger noti.sh et l'extraire dans le fichier ci-dessus noti dir.

  3. Ouvrez le terminal et changez le répertoire en noti

    cd ~/noti
  4. Rendez noti.sh exécutable en émettant :

    sudo chmod +x noti.sh
  5. Faites un test comme ceci :

    sh ~/noti/noti.sh "Test" "now"

Exemples

noti "Hello From Noti" "now +1 minute"
noti "Hello From Noti" "now +5 minutes"
noti "Hello From Noti" "now + 1 hour"
noti "Hello From Noti" "now + 2 days"
noti "Hello From Noti" "4 PM + 2 days"
noti "Hello From Noti" "now + 3 weeks"
noti "Hello From Noti" "now + 4 months"
noti "Hello From Noti" "4:00 PM"
noti "Hello From Noti" "2:30 AM tomorrow"
noti "Hello From Noti" "2:30 PM Fri"
noti "Hello From Noti" "2:30 PM 25.07.18"

Pour notifier la fin du processus (exemple)

sudo apt-get update; noti "Done" "now"

3voto

ephemerr Points 191

Il existe également zenity - alternative linux universelle à notify-send .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X