From c617a478bff7e8026f0cba4b44b4e7af149c0881 Mon Sep 17 00:00:00 2001 From: Lucas Souto Date: Fri, 7 Sep 2018 22:21:57 -0300 Subject: [PATCH] Add module arch-update --- bumblebee/modules/arch-update.py | 41 ++++++++++++++++++++++++++++++++ themes/icons/awesome-fonts.json | 11 +++++---- 2 files changed, 48 insertions(+), 4 deletions(-) create mode 100644 bumblebee/modules/arch-update.py diff --git a/bumblebee/modules/arch-update.py b/bumblebee/modules/arch-update.py new file mode 100644 index 0000000..7f290d8 --- /dev/null +++ b/bumblebee/modules/arch-update.py @@ -0,0 +1,41 @@ +"""Check updates to Arch Linux.""" + + +import subprocess +import bumblebee.input +import bumblebee.output +import bumblebee.engine + +class Module(bumblebee.engine.Module): + def __init__(self, engine, config): + widget = bumblebee.output.Widget(full_text=self.utilization) + super(Module, self).__init__(engine, config, widget) + self.packages = self.check_updates() + + def check_updates(self): + p = subprocess.Popen( + "checkupdates", stdout=subprocess.PIPE, shell=True) + + p_status = p.wait() + + if p_status == 0: + (output, err) = p.communicate() + + output = output.decode('utf-8') + packages = output.split('\n') + packages.pop() + + return len(packages) + return '0' + + def utilization(self, widget): + return f'Update Arch: {self.packages}' + + def hidden(self): + return self.check_updates() == 0 + + def update(self, widgets): + self.packages = self.check_updates() + + def state(self, widget): + return self.threshold_state(self.packages, 1, 100) diff --git a/themes/icons/awesome-fonts.json b/themes/icons/awesome-fonts.json index b9491da..8415de5 100644 --- a/themes/icons/awesome-fonts.json +++ b/themes/icons/awesome-fonts.json @@ -114,10 +114,13 @@ "repeat-on": { "prefix": "" }, "repeat-off": { "prefix": "" } }, - "github": { - "prefix": "  " - }, - "hipchat": { + "arch": { + "prefix": "" + }, + "github": { + "prefix": "  " + }, + "hipchat": { "prefix": "  " }, "spotify": {