web-dev-qa-db-fra.com

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

J'ai un script personnalisé et je souhaite envoyer une notification de bureau (celle qui apparaît dans le coin supérieur droit de l'écran) avec un message personnalisé. Comment je fais ça?

95
January

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

Nous pouvons exécuter une commande et l'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"

Vraiment ennuyeux pop up

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

et

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

Pour plus d'options vérifier ici

147
devav2

Juste pour ajouter aux autres réponses, lorsque j'exécute la commande localement à partir de cron, j'utilise

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

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

notify-send "Hello world!"
12
January

J'ai créé un script simple et presque natif qui lit le son et affiche une notification avec un message et un temps 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 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échargez noti.sh et extrayez-le dans le répertoire noti ci-dessus.

  3. Ouvrir le terminal et changer le répertoire en noti

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

    Sudo chmod +x noti.sh
    
  5. Exécutez 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"
2
Yahya