From ac718e7b771302ae6c0c9408ad47333f21919bab Mon Sep 17 00:00:00 2001 From: Dominik Date: Thu, 25 Jun 2015 13:38:28 +0200 Subject: Adding external_script and static_string modules and mentioning them in readme --- py3status/modules/external_script.py | 56 ++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 py3status/modules/external_script.py (limited to 'py3status/modules/external_script.py') diff --git a/py3status/modules/external_script.py b/py3status/modules/external_script.py new file mode 100644 index 0000000..9488c79 --- /dev/null +++ b/py3status/modules/external_script.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +""" +Display output of given script + +Display output of any executable script set by script_path +Pay attention. The output must be one liner, or will break your i3status +The script should not have any parameters, but it could work + +Configuration parameters: + - cache_timeout : how often we refresh this module in seconds + - script_path : script you want to show output of (compulsory) + - color : color of printed text + - on_click : read goo.gl/u10n0x + +@author frimdo ztracenastopa@centrum.cz +""" + +import subprocess +from time import time + + +class Py3status: + cache_timeout = 15 + color = None + script_path = None + + def external_script(self, i3s_output_list, i3s_config): + + if self.script_path: + + return_value = subprocess.check_output(self.script_path, shell=True, universal_newlines=True) + response = { + 'cached_until': time() + self.cache_timeout, + 'full_text': return_value.rstrip(), + 'color': self.color + } + + else: + response = { + 'cached_until': time() + self.cache_timeout, + 'full_text': "" + } + + return response + +if __name__ == "__main__": + from time import sleep + x = Py3status() + config = { + 'color_good': '#00FF00', + 'color_bad': '#FF0000', + } + while True: + print(x.external_script([], config)) + sleep(x.cache_timeout) + -- cgit v1.3