summaryrefslogtreecommitdiffstats
path: root/parsing_callbacks.py
diff options
context:
space:
mode:
Diffstat (limited to 'parsing_callbacks.py')
-rw-r--r--parsing_callbacks.py46
1 files changed, 46 insertions, 0 deletions
diff --git a/parsing_callbacks.py b/parsing_callbacks.py
new file mode 100644
index 0000000..70ea1da
--- /dev/null
+++ b/parsing_callbacks.py
@@ -0,0 +1,46 @@
+import re
+
+def xprop_parser(input):
+ result = {
+ "win_maximized": 0,
+ "win_maximized_horizontal": 0,
+ "win_maximized_vertical": 0,
+ "win_hidden": 0,
+ "win_minimized": 0,
+ "win_modal": 0,
+ "win_sticky": 0,
+ "win_shaded": 0,
+ "win_fullscreen": 0,
+ "win_above": 0,
+ "win_below": 0
+ }
+ match = re.search(r'_NET_WM_STATE\(ATOM\) = (.*)$', input, re.MULTILINE)
+ if match:
+ values = match.group(1).split(", ")
+ for v in values:
+ if v == '_NET_WM_STATE_MAXIMIZED_HORZ':
+ result['win_maximized_horizontal'] = 1
+ if v == '_NET_WM_STATE_MAXIMIZED_VERT':
+ result['win_maximized_vertical'] = 1
+ if v == '_NET_WM_STATE_MODAL':
+ result['win_modal'] = 1
+ if v == '_NET_WM_STATE_STICKY':
+ result['win_sticky'] = 1
+ if v == '_NET_WM_STATE_SHADED':
+ result['win_shaded'] = 1
+ if v == '_NET_WM_STATE_HIDDEN':
+ result['win_hidden'] = 1
+ if v == '_NET_WM_STATE_FULLSCREEN':
+ result['win_fullscreen'] = 1
+ if v == '_NET_WM_STATE_BELOW':
+ result['win_below'] = 1
+ if v == '_NET_WM_STATE_ABOVE':
+ result['win_above'] = 1
+
+ if result['win_maximized_horizontal'] == 1 and result['win_maximized_vertical'] == 1:
+ result['win_maximized'] = 1
+ if result['win_hidden'] == 1:
+ result['win_minimized'] = 1
+
+ return result
+