99

I have a custom script and I want to send a desktop notification (the one that appears in the top right corner of the screen) with a custom message. How do I do that?

152

There are a bunch of other cool features with notify-send

We can run a command and make it display in the notification:

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

We can use icons with the notifications

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

Really annoying pop up

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

and

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

For more options check here

  • 1
    Thank you. Where can we get a list of icons, e.g. the face-wink that you used? – Paddy Landau Sep 24 '12 at 10:56
  • 3
    check out my answer here – devav2 Sep 24 '12 at 13:07
  • notify-send -t 0 works but notify-send "who am i" "I am January" does not work :( - on ubuntu 15.10 – AlikElzin-kilaka May 23 '16 at 9:19
  • 3
    Worked with --urgency=critical – AlikElzin-kilaka May 23 '16 at 9:50
  • Installation on debian sudo apt install libnotify-bin. – user149244 Feb 19 at 6:28
18

Just to add to the other answers, when running the command locally from cron, I use

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

I stumbled upon that one by chance. Answer: use the program notify-send:

notify-send "Hello world!"
3

I created a simple and almost-native script that plays Sound and displays a Notification with a Given Message and Time for 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

How To Use?

First Run - Setting Up:

  1. Create a new Directory at your home and call it noti

    mkdir ~/noti
    
  2. Download noti.sh and extract it to the above noti dir.

  3. Open Terminal and Change Directory to noti

    cd ~/noti
    
  4. Make noti.sh executable by issuing:

    sudo chmod +x noti.sh
    
  5. Run a Test like this:

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

Examples

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"

For Notifying The Finish of Process (example)

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.