summaryrefslogtreecommitdiffstats
path: root/modules/current-keyboard-layout.py
diff options
context:
space:
mode:
Diffstat (limited to 'modules/current-keyboard-layout.py')
-rw-r--r--modules/current-keyboard-layout.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/modules/current-keyboard-layout.py b/modules/current-keyboard-layout.py
new file mode 100644
index 0000000..046a2aa
--- /dev/null
+++ b/modules/current-keyboard-layout.py
@@ -0,0 +1,33 @@
+import subprocess
+import time
+
+"""
+Module for showing current keyboard layout.
+DEPENDS ON xkblayout-state!
+
+@author shadowprince
+@version 1.0
+@license Eclipse Public License
+"""
+
+CACHE_TIME = 0.2 # maximum time to update indicator
+
+# colors of layouts
+# key must be compatible with xkblayout-state print %s!
+LANG_COLORS = {
+ "ru": "#F75252",
+ "us": "#729FCF",
+ "ua": "#FCE94F",
+ }
+
+class Py3status:
+ def currentLayout(self, i3status_output_json, i3status_config):
+ response = {'full_text': '', 'name': 'current-layout', 'cached_until': time.time()+CACHE_TIME}
+ lang = subprocess.check_output(["xkblayout-state", "print", "%s"]).decode('utf-8')
+
+ return (0, {
+ "full_text": lang,
+ "name": "current-layout",
+ "cached_until": time.time() + CACHE_TIME,
+ "color": LANG_COLORS.get(lang, "#ffffff"),
+ })