summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--py3status/modules/README.md1
-rw-r--r--py3status/modules/external_script.py36
-rw-r--r--py3status/modules/static_string.py20
3 files changed, 35 insertions, 22 deletions
diff --git a/py3status/modules/README.md b/py3status/modules/README.md
index 45d52b4..3618da7 100644
--- a/py3status/modules/README.md
+++ b/py3status/modules/README.md
@@ -484,6 +484,7 @@ static_string Display static text
@author frimdo ztracenastopa@centrum.cz
---
external_script 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
diff --git a/py3status/modules/external_script.py b/py3status/modules/external_script.py
index 9488c79..c2a6977 100644
--- a/py3status/modules/external_script.py
+++ b/py3status/modules/external_script.py
@@ -11,38 +11,51 @@ Configuration parameters:
- script_path : script you want to show output of (compulsory)
- color : color of printed text
- on_click : read goo.gl/u10n0x
+ - format : see placeholders below
+
+Format of status string placeholders:
+ {output} - output of script given by "script_path"
+
+i3status.conf example:
+
+external_script {
+ script_path = "/usr/bin/whoami"
+ format = "my name is {output}"
+ color = "#00FF00"
@author frimdo ztracenastopa@centrum.cz
"""
-
+
import subprocess
from time import time
-
-
+
+
class Py3status:
cache_timeout = 15
+ format = '{output}'
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(),
+ 'full_text': self.format.format(
+ output=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()
@@ -52,5 +65,4 @@ if __name__ == "__main__":
}
while True:
print(x.external_script([], config))
- sleep(x.cache_timeout)
-
+ sleep(1)
diff --git a/py3status/modules/static_string.py b/py3status/modules/static_string.py
index d525238..c09176b 100644
--- a/py3status/modules/static_string.py
+++ b/py3status/modules/static_string.py
@@ -2,38 +2,38 @@
"""
Display static text
-Display static text given by "text" parameter
+Display static text given by "format" parameter
Configuration parameters:
- text : text that should be printed
- separator : whether the separator is shown or not (True or False)
+ - format : text that should be printed
- color : color of printed text
- on_click : read goo.gl/u10n0x
@author frimdo ztracenastopa@centrum.cz
"""
-
+
+
class Py3status:
color = None
- text = ""
+ format = ''
separator = True
-
+
def static_string(self, i3s_output_list, i3s_config):
-
+
response = {
- 'full_text': self.text,
+ 'full_text': self.format,
'color': self.color,
'separator': self.separator
}
-
+
return response
-
+
if __name__ == "__main__":
- from time import sleep
x = Py3status()
config = {
'color_good': '#00FF00',
'color_bad': '#FF0000',
}
print(x.static_string([], config))
-