summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--modules/current-title.py52
-rw-r--r--modules/window-title.py58
2 files changed, 58 insertions, 52 deletions
diff --git a/modules/current-title.py b/modules/current-title.py
deleted file mode 100644
index 530908f..0000000
--- a/modules/current-title.py
+++ /dev/null
@@ -1,52 +0,0 @@
-import i3
-import time
-
-"""
-Py3status plugin - shows current window title.
-
-DEPENDENCIES: Depends on i3-py:
- # pip install i3-py
-
-If payload from server contains wierd utf-8 (for example one window have something bad in title) - plugin will give empty output UNTIL this window will be closed. I can't fix or workaround that in PLUGIN, problem is in i3-py library.
-
-@author shadowprince
-@version 1.0
-@license Eclipse Public License
-"""
-
-POSITION = 0
-MAX_WIDTH = 120 # if width of title is greater, shrink it and add ...
-CACHED_TIME = 0.5 # maximum time to update indicator
-
-def find_focused(tree):
- if type(tree) == list:
- for el in tree:
- res = find_focused(el)
- if res:
- return res
-
- elif type(tree) == dict:
- if tree["focused"]:
- return tree
- else:
- return find_focused(tree["nodes"] + tree["floating_nodes"])
-
-class Py3status:
- def __init__(self, *args, **kwargs):
- self.text = ""
- super(Py3status).__init__(*args, **kwargs)
-
- def currentTitle(self, i3_status_output_json, i3status_config):
- window = find_focused(i3.get_tree())
-
- transformed = False
- if window and "name" in window and window["name"] != self.text:
- self.text = len(window["name"]) > MAX_WIDTH and "..." + window["name"][-(MAX_WIDTH-3):] or window["name"]
- transformed = True
-
- return (POSITION, {
- 'full_text': self.text,
- 'transformed': transformed,
- 'name': 'current-title',
- 'cached_until': time.time() + CACHED_TIME,
- })
diff --git a/modules/window-title.py b/modules/window-title.py
new file mode 100644
index 0000000..4f6f062
--- /dev/null
+++ b/modules/window-title.py
@@ -0,0 +1,58 @@
+import i3
+from time import time
+
+"""
+Py3status plugin - shows current window title.
+
+Requires:
+ - i3-py (https://github.com/ziberna/i3-py)
+ # pip install i3-py
+
+If payload from server contains wierd utf-8
+(for example one window have something bad in title) - the plugin will
+give empty output UNTIL this window is closed.
+I can't fix or workaround that in PLUGIN, problem is in i3-py library.
+
+@author shadowprince
+@license Eclipse Public License
+"""
+
+CACHE_TIMEOUT = 0.5 # maximum time to update indicator
+MAX_WIDTH = 120 # if width of title is greater, shrink it and add '...'
+POSITION = 0
+
+
+def find_focused(tree):
+ if type(tree) == list:
+ for el in tree:
+ res = find_focused(el)
+ if res:
+ return res
+
+ elif type(tree) == dict:
+ if tree['focused']:
+ return tree
+ else:
+ return find_focused(tree['nodes'] + tree['floating_nodes'])
+
+
+class Py3status:
+ def __init__(self):
+ self.text = ''
+
+ def window_title(self, i3_status_output_json, i3status_config):
+ window = find_focused(i3.get_tree())
+
+ transformed = False
+ if window and 'name' in window and window['name'] != self.text:
+ self.text = len(window['name']) > MAX_WIDTH and "..." + window['name'][-(MAX_WIDTH-3):] or window['name']
+ transformed = True
+
+ response = {
+ 'cached_until': time() + CACHE_TIMEOUT,
+ 'full_text': self.text,
+ 'name': 'window-title',
+ 'transformed': transformed
+ }
+
+ return (POSITION, response)