36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
import subprocess
|
|
import shlex
|
|
import bumblebee.module
|
|
import bumblebee.util
|
|
|
|
def description():
|
|
return "Showws current keyboard layout and change it on click."
|
|
|
|
class Module(bumblebee.module.Module):
|
|
def __init__(self, output, config, alias):
|
|
super(Module, self).__init__(output, config, alias)
|
|
|
|
|
|
# click
|
|
output.add_callback(module="layout.cir", button=1, cmd="setxkbmap us")
|
|
output.add_callback(module="layout.us", button=1, cmd="setxkbmap rs")
|
|
output.add_callback(module="layout.rs", button=1, cmd="setxkbmap -layout rs -variant latin")
|
|
|
|
|
|
|
|
|
|
def widgets(self):
|
|
output = subprocess.check_output(["setxkbmap", "-print"], stderr=subprocess.STDOUT)
|
|
for line in str(output).split("\\n"):
|
|
if "xkb_symbols" in line:
|
|
res = line.split("\"")[1].split("+")[1]
|
|
|
|
if res == "rs":
|
|
return bumblebee.output.Widget(self, res, instance="layout.rs")
|
|
elif res == "us":
|
|
return bumblebee.output.Widget(self, res, instance="layout.us")
|
|
else:
|
|
return bumblebee.output.Widget(self, res, instance="layout.cir")
|
|
|
|
|
|
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|