From 623ebb2d3570795c3d405a8c293a8cad64d9b708 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Thu, 11 Dec 2014 01:58:15 +0100 Subject: add inotify MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- examples/plugins/inotify | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 examples/plugins/inotify (limited to 'examples') diff --git a/examples/plugins/inotify b/examples/plugins/inotify new file mode 100644 index 0000000..d2a4afb --- /dev/null +++ b/examples/plugins/inotify @@ -0,0 +1,46 @@ +# -*- python -*- + +# A xpybar configuration example testing the features of plugins.inotify +# It also shows how you can monitor `featherweight` + +import os +import threading + +from plugins.inotify import Inotify + + +OUTPUT, HEIGHT, YPOS, TOP = 0, 12, 24, True + + +def inotify(_line): + global news + semaphore.acquire() + try: + news = news_update_() + bar.invalidate() + finally: + semaphore.release() + +def news_update_(): + try: + with open(featherweight_status_file, 'rb') as file: + status = int(file.read().decode('utf-8', 'replace').replace('\n', '')) + except: + status = 0 + colour = '31' + if status <= 0: colour = '0' + elif status <= 5: colour = '32' + elif status <= 10: colour = '33' + return 'News: \033[%sm%i\033[0m' % (colour, status) + +featherweight_status_file = '%s/.var/lib/featherweight/status' % os.environ['HOME'] +news = news_update_() +semaphore = threading.Semaphore() + +Inotify(inotify, featherweight_status_file, events = ['close_write']) + + +def redraw(): + bar.clear() + bar.draw_coloured_text(0, 10, 0, 2, news) + -- cgit v1.2.3-70-g09d2