4

I'm running Lubuntu 12.04. I have a shell script that tests for a network condition and need some way for it to pop up a notification in the GUI. The network testing part is done, but I need some help with the "pop up a notification in the GUI" part.

  • If you want customization like alignment of them , then you can use this http://askubuntu.com/questions/128474/how-to-customize-on-screen-notifications – Raja G Dec 05 '12 at 02:50
  • few other links http://askubuntu.com/questions/189469/how-to-send-custom-notifications-in-kde – Raja G Dec 05 '12 at 02:51
  • 1
    http://askubuntu.com/questions/187022/how-can-i-send-a-custom-desktop-notification – Raja G Dec 05 '12 at 02:52

2 Answers2

11

You can use the default notification daemon to give notifications with an icon.

Just add this line to the shell script where you want to give notification (with appropriate lines and paths).

notify-send -u critical -i <Icon-path> "<Heading>" "<Rest of the message>"

The package providing this is libnotify-bin.

@ThatJackElliott Did you replace <> with appropriate text? You need to remove "<" ">". Icon path is optional. Try this :

notify-send -u normal "Hello Jack Elliot" "This is a trial notification.\nWelcome to AskUbuntu\!"

-u can be low, normal & critical.

See man notify-send for more info.

In case of any problems, these are the packages in my system. They work excellently :

  • gir1.2-notify-0.7
  • libknotifyconfig4
  • libnotify-bin
  • libnotify-dev
  • libnotify0.4-cil
  • libnotify4
  • notify-osd
  • notify-osd-icons
  • python-notify
  • python-pyinotify
  • xfce4-notifyd
  • xfce4-notifyd
VedVals
  • 3,471
  • Hi, this one doesn't return anything. Just takes me back to the shell prompt. – That Jack Elliott Dec 08 '12 at 15:10
  • Okay, still no happiness: – That Jack Elliott Dec 09 '12 at 02:03
  • Run dpkg -l | grep notify-send and see if you get any output. – VedVals Dec 09 '12 at 14:43
  • Nope, no output. – That Jack Elliott Dec 10 '12 at 21:33
  • @ThatJackElliott Sorry, I gave the wrong name. Try dpkg-query -l libnotify-bin OR dpkg -l | grep libnotify-bin. If no output, install libnotify-bin. Its available in the repos. – VedVals Dec 11 '12 at 04:08
  • Looks like I have libnotify-1 v 0.7.5-1 installed. – That Jack Elliott Dec 11 '12 at 16:04
  • And notify-send isn't working? Its a bug. Report it. – VedVals Dec 11 '12 at 16:07
  • Just to be sure, recheck the code in answer. I found an unnecessary quote in it. Typo mistake. – VedVals Dec 11 '12 at 16:14
  • jack@jack-Aspire-one:~$ notify-send -u normal "Hello Jack Elliot" "This is a trial notification.\nWelcome to AskUbuntu!" jack@jack-Aspire-one:~$ no response. Dang, how does one enter a line break in this comment box? – That Jack Elliott Dec 12 '12 at 00:50
  • @ThatJackElliott OK, that command works perfectly on my system. And I have the same version of libnotify-bin. Check for similar bugs on Launchpad. Also try re-installling it. – VedVals Dec 12 '12 at 08:45
  • Okay, removed and re-installed libnotify-bin, still no joy. Since that doesn't work, what else can be used from a shell script to pop up a notification in Lubuntu's GUI? – That Jack Elliott Dec 12 '12 at 22:10
  • @ThatJackElliott Completely out of ideas. Except one crazy idea. I'd suggest installing an additional DE. Look at this question and take your pick. Alternatively, if the other solution works then you can write a custom command and put it in /bin so that it behaves like a regular command. Experiment with both suggestions, see what you like. – VedVals Dec 13 '12 at 13:47
  • [SOLVED]: notification-daemon was not installed. Now notify-send works. And I figured it out all by myself!! I'm so proud. I wonder if notification-daemon will autostart after a reboot. – That Jack Elliott Dec 14 '12 at 00:18
  • @ThatJackElliott Did it auto start? Also can you accept an answer? (Preferably mine but no pressure) ;-) – VedVals Dec 14 '12 at 18:35
  • VedVals: In Lubuntu's Desktop Session Settings, there is an entry for Notification Daemon under "Automatically Started Applications," which was not ticked, so I ticked the box. I haven't needed to restart the computer so I can't confirm that the daemon starts automatically, but I'll keep an eye on it the next time I need to restart the laptop. Thanks for all your help! – That Jack Elliott Dec 17 '12 at 22:16
5

yeah you can do that with python. open your terminal and type

sudo apt-get install python-notify

Then write a program like this .

frank@august:~$ cat>not.py
#!/usr/bin/python
import sys
import pynotify

if __name__ == "__main__":
    if not pynotify.init("icon-summary-body"):
        sys.exit(1)

    n = pynotify.Notification(
        "Hi Elliott",
        "welcome to askUbuntu!",
        ##dont remove the below line
    "notification-message-im")
    n.show()
frank@august:~$ 

save it with any name , for example noti.py for our case .

open your terminal and type python not.py

Then you will see

enter image description here

Hope that helps.

Credit goes here : Create custom notification on your Ubuntu desktop using python

VedVals
  • 3,471
Raja G
  • 102,391
  • 106
  • 255
  • 328
  • Hi, thanks for the suggestion, but I can't get this to work. When I run the script I get:jack@jack-Aspire-one:~/bin$ sh notify.py notify.py: 2: notify.py: import: not found notify.py: 3: notify.py: import: not found notify.py: 6: notify.py: Syntax error: "(" unexpected (expecting "then") jack@jack-Aspire-one:~/bin$ – That Jack Elliott Dec 08 '12 at 15:09
  • Wait, sorry, I didn't run the script correctly. I also can't figure out how to enter line breaks in this comment box, nor put the terminal results in a neat little box, so my responses are a bit of a mess. The python script is still returning an error: jack@jack-Aspire-one:~/bin$ python notify.py Traceback (most recent call last): File "notify.py", line 14, in n.show() glib.GError: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Notifications was not provided by any .service files jack@jack-Aspire-one:~/bin$ – That Jack Elliott Dec 08 '12 at 15:13
  • have you installed python-notify ? – Raja G Dec 09 '12 at 01:59