Switch to using hardware_keycodes when fetching keyboard events, to
Switch to using hardware_keycodes when fetching keyboard events, to
recognize keys in any keyboard layout.
diff --git a/qwerty.py b/qwerty.py
index dbe3d0a..0f9450c 100755
--- a/qwerty.py
+++ b/qwerty.py
@@ -502,6 +502,11 @@ class GUI(object):
def exit(self,widget=None):
save_config()
gtk.main_quit()
+
+ def get_key(self,hw_code):
+ km = gtk.gdk.keymap_get_default()
+ kv = km.lookup_key(hw_code,0,0)
+ return gtk.gdk.keyval_name(kv)
def on_key(self,widget,event):
global speckeys
@@ -516,20 +521,20 @@ class GUI(object):
self.exit()
return
- k = event.string.upper()
+ k = self.get_key(event.hardware_keycode)
if k in DIGITS:
self.show_section(k)
- elif k in ALPHABET:
- self.do_button(k)
elif k == ' ':
self.switch_taskbar()
+ elif k in ALPHABET.lower():
+ self.do_button(k)
def key_exec(self,key):
cmd = self.S.keys[key].command
os.system(cmd + " &")
def do_button(self,key):
- self.on_button(self.buttons[key])
+ self.on_button(self.buttons[key.upper()])
def send_event(self,win,ctype,data):
data = (data+[0]*(5-len(data)))[:5]