From c8d01d99cc1a770f8cce67bd4446ac892577b8c3 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Sat, 9 Nov 2019 15:55:03 +0100 Subject: [PATCH] app/internal/xkb: translate physical "Backtab" keys to Shift-Tab Signed-off-by: Elias Naur --- app/internal/xkb/xkb_unix.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/internal/xkb/xkb_unix.go b/app/internal/xkb/xkb_unix.go index 9038f2ec..5485e18a 100644 --- a/app/internal/xkb/xkb_unix.go +++ b/app/internal/xkb/xkb_unix.go @@ -124,6 +124,11 @@ func (x *Context) DispatchKey(keyCode uint32) (events []event.Event) { sym := C.xkb_state_key_get_one_sym(x.state, C.xkb_keycode_t(keyCode)) if n, ok := convertKeysym(sym); ok { cmd := key.Event{Name: n} + // Ensure that a physical backtab key is translated to + // Shift-Tab. + if sym == C.XKB_KEY_ISO_Left_Tab { + cmd.Modifiers |= key.ModShift + } if C.xkb_state_mod_name_is_active(x.state, (*C.char)(unsafe.Pointer(&_XKB_MOD_NAME_CTRL[0])), C.XKB_STATE_MODS_EFFECTIVE) == 1 { cmd.Modifiers |= key.ModCtrl }