Come posso inviare una notifica desktop personalizzata?

75

Ho uno script personalizzato e voglio inviare una notifica sul desktop (quella che appare nell'angolo in alto a destra dello schermo) con un messaggio personalizzato. Come faccio?

    
posta January 12.09.2012 - 18:24

4 risposte

115

Ci sono un sacco di altre interessanti funzionalità con notify-send

Possiamo eseguire un comando e renderlo visualizzato nella notifica:

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

Possiamo usare le icone con le notifiche

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

Pop up davvero fastidioso

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

e

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

Per ulteriori opzioni, controlla qui

    
risposta data devav2 12.09.2012 - 18:45
17

Solo per aggiungere alle altre risposte, quando eseguo il comando localmente da cron, io uso

DISPLAY=:0.0 /usr/bin/notify-send "TITLE" "MESSAGE"
    
risposta data CelticRaven 19.09.2012 - 10:21
12

Mi sono imbattuto casualmente in quello. Risposta: usa il programma notify-send :

notify-send "Hello world!"
    
risposta data January 12.09.2012 - 18:25
1

Ho creato uno script semplice e quasi nativo che riproduce suoni e visualizza una notifica con un messaggio e un orario per 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=""
TIME=""

# 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

Come usare?

Prima esecuzione - Impostazione:

  1. Crea una nuova directory a casa tua e chiamala noti

    mkdir ~/noti
    
  2. Scarica noti.sh ed estrailo alla precedente noti dir.

  3. Apri Terminale e Cambia directory in noti

    cd ~/noti
    
  4. Rendi eseguibile noti.sh emettendo:

    sudo chmod +x noti.sh
    
  5. Esegui un test in questo modo:

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

Esempi

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"

Per la notifica del completamento del processo (esempio)

sudo apt-get update; noti "Done" "now"
    
risposta data Yahya 10.07.2018 - 15:54

Leggi altre domande sui tag