A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.geeksforgeeks.org/python/desktop-notifier-python/ below:

Desktop Notifier in Python - GeeksforGeeks

Desktop Notifier in Python

Last Updated : 23 Jul, 2025

This article demonstrates how to create a simple

Desktop Notifier

application using Python. A desktop notifier is a simple

application which produces a notification message in form of a pop-up message on desktop.

Notification content

In the example we use in this article, the content that will appear as notification on desktop is the

top news headlines

of the day. So, in order to fetch the top headlines, we will be using this Python script to scrape news headlines:

Python
import requests
import xml.etree.ElementTree as ET

# url of news rss feed
RSS_FEED_URL = "http://www.hindustantimes.com/rss/topnews/rssfeed.xml"    

def loadRSS():
    '''
    utility function to load RSS feed
    '''
    # create HTTP request response object
    resp = requests.get(RSS_FEED_URL)

    # return response content
    return resp.content

def parseXML(rss):
    '''
    utility function to parse XML format rss feed
    '''
    # create element tree root object
    root = ET.fromstring(rss)

    # create empty list for news items
    newsitems = []

    # iterate news items
    for item in root.findall('./channel/item'):
        news = {}

        # iterate child elements of item
        for child in item:

            # special checking for namespace object content:media
            if child.tag == '{https://video.search.yahoo.com/mrss':
                news['media'] = child.attrib['url']
            else:
                news[child.tag] = child.text.encode('utf8')
        newsitems.append(news)

    # return news items list
    return newsitems

def topStories():
    '''
    main function to generate and return news items
    '''
    # load rss feed
    rss = loadRSS()

    # parse XML
    newsitems = parseXML(rss)
    return newsitems

It is a simple Python script which parses the news headlines available in XML format.

Note:

To understand how XML parsing works, please refer this article:

XML parsing in Python

A sample news item generated by above Python script looks like this:

{'description': 'Months after it was first reported, the feud between Dwayne Johnson and 
                 Vin Diesel continues to rage on, with a new report saying that the two are 
                 being kept apart during the promotions of The Fate of the Furious.',
 'link': 'http://www.hindustantimes.com/hollywood/vin-diesel-dwayne-johnson-feud-rages-
on-they-re-being-kept-apart-for-fast-8-tour/story-Bwl2Nx8gja9T15aMvcrcvL.html',
 'media': 'http://www.hindustantimes.com/rf/image_size_630x354/HT/p2/2017/04/01/Pictures
/_fbcbdc10-1697-11e7-9d7a-cd3db232b835.jpg',
 'pubDate': b'Sat, 01 Apr 2017 05:22:51 GMT ',
 'title': "Vin Diesel, Dwayne Johnson feud rages on; they're being deliberately kept apart"}

Save this Python script as

topnews.py

(as we import it by this name in our desktop notifier app).

Installations

Now, in order to create a desktop notifier, you need to install a third party Python module,

notify2

. You can install

notify2

using a simple pip command:

pip install notify2

Desktop notifier app

Now, we write the Python script for our desktop notifier. Consider the code below:

Python
import time
import notify2
from topnews import topStories

# path to notification window icon
ICON_PATH = "put full path to icon image here"

# fetch news items
newsitems = topStories()

# initialise the d-bus connection
notify2.init("News Notifier")

# create Notification object
n = notify2.Notification(None, icon = ICON_PATH)

# set urgency level
n.set_urgency(notify2.URGENCY_NORMAL)

# set timeout for a notification
n.set_timeout(10000)

for newsitem in newsitems:

    # update notification data for Notification object
    n.update(newsitem['title'], newsitem['description'])

    # show notification on screen
    n.show()

    # short delay between notifications
    time.sleep(15)

Let us try to analyze above code step by step:

A sample screen shot of desktop when you run above Python script:

Github repository for this desktop notifier application:

Desktop-Notifier-Example

This blog is contributed by Nikhil Kumar.



RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4