* [PATCH v3] Add Backtab keysym and update keymaps to use it for Shift+Tab
@ 2026-02-20 22:07 Nicolas Pitre
2026-02-23 9:10 ` Alexey Gladkov
0 siblings, 1 reply; 2+ messages in thread
From: Nicolas Pitre @ 2026-02-20 22:07 UTC (permalink / raw)
To: Alexey Gladkov; +Cc: kbd
[-- Attachment #1: Type: text/plain, Size: 69632 bytes --]
Add a new Backtab keysym (KT_FN index 30) that produces the standard
backtab escape sequence \e[Z. This replaces F246 which was unused.
Update all keymaps to use Backtab for Shift+Tab instead of Meta_Tab.
In most cases the Meta_Tab binding already existed for Alt+Tab; where
it was missing, it has been added.
This change affects keymaps across all architectures: i386, amiga,
atari, mac, sun, and pine.
Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
---
From v2:
Moved Backtab to index 255 — the last slot in the KT_FN table, which has
no kernel UAPI name (the kernel only goes up to K_F245 = K(KT_FN, 254)).
diff --git a/data/keymaps/amiga/amiga-de.map b/data/keymaps/amiga/amiga-de.map
index d9b62e0..f1b18a4 100644
--- a/data/keymaps/amiga/amiga-de.map
+++ b/data/keymaps/amiga/amiga-de.map
@@ -212,7 +212,7 @@ keycode 64 = space space
control keycode 64 = nul
alt keycode 64 = Meta_space
keycode 65 = BackSpace
-keycode 66 = Tab Meta_Tab
+keycode 66 = Tab Backtab
alt keycode 66 = Meta_Tab
keycode 67 = Return
keycode 68 = Return
diff --git a/data/keymaps/amiga/amiga-us.map b/data/keymaps/amiga/amiga-us.map
index 8fb5da4..ac0c5d2 100644
--- a/data/keymaps/amiga/amiga-us.map
+++ b/data/keymaps/amiga/amiga-us.map
@@ -159,7 +159,7 @@ keycode 64 = space space
control keycode 64 = nul
alt keycode 64 = Meta_space
keycode 65 = Delete Delete Delete Delete Delete Meta_Delete Delete
-keycode 66 = Tab Meta_Tab
+keycode 66 = Tab Backtab
alt keycode 66 = Meta_Tab
keycode 67 = KP_Enter
keycode 68 = Return
diff --git a/data/keymaps/atari/atari-se.map b/data/keymaps/atari/atari-se.map
index 110a7fe..345d5bf 100644
--- a/data/keymaps/atari/atari-se.map
+++ b/data/keymaps/atari/atari-se.map
@@ -67,7 +67,7 @@ keycode 13 = eacute Eacute
alt keycode 13 = Meta_equal
shift alt keycode 13 = Meta_plus
keycode 14 = Delete Delete Delete Delete Delete Delete Delete Delete Meta_Delete Meta_Delete Delete Delete Meta_Delete Meta_Delete Delete Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
shift alt keycode 15 = Meta_Tab
keycode 16 = +q +Q
diff --git a/data/keymaps/atari/atari-uk-falcon.map b/data/keymaps/atari/atari-uk-falcon.map
index 8d1242e..cecc97e 100644
--- a/data/keymaps/atari/atari-uk-falcon.map
+++ b/data/keymaps/atari/atari-uk-falcon.map
@@ -60,7 +60,7 @@ keycode 13 = equal plus
alt keycode 13 = Meta_equal
shift alt keycode 13 = Meta_plus
keycode 14 = BackSpace BackSpace BackSpace BackSpace BackSpace BackSpace BackSpace BackSpace Meta_BackSpace Meta_BackSpace BackSpace BackSpace Meta_BackSpace Meta_BackSpace BackSpace BackSpace
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
shift alt keycode 15 = Meta_Tab
keycode 16 = +q +Q
diff --git a/data/keymaps/atari/atari-us.map b/data/keymaps/atari/atari-us.map
index aea6a2b..a725c12 100644
--- a/data/keymaps/atari/atari-us.map
+++ b/data/keymaps/atari/atari-us.map
@@ -60,7 +60,7 @@ keycode 14 = BackSpace BackSpace
shift alt keycode 14 = Meta_BackSpace
control alt keycode 14 = Meta_BackSpace
shift control alt keycode 14 = Meta_BackSpace
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
shift alt keycode 15 = Meta_Tab
keycode 16 = +q +Q +q Control_q
diff --git a/data/keymaps/i386/azerty/azerty.map b/data/keymaps/i386/azerty/azerty.map
index f38fa62..91fcd1b 100644
--- a/data/keymaps/i386/azerty/azerty.map
+++ b/data/keymaps/i386/azerty/azerty.map
@@ -32,7 +32,8 @@ keycode 13 = minus underscore backslash
control keycode 13 = Control_underscore
control shift keycode 13 = Control_underscore
keycode 14 = Delete Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
+ alt keycode 15 = Meta_Tab
keycode 26 = dead_circumflex dead_diaeresis bracketleft
control keycode 26 = Escape
alt keycode 26 = bracketleft
diff --git a/data/keymaps/i386/azerty/be-latin1.map b/data/keymaps/i386/azerty/be-latin1.map
index b573944..aad78b5 100644
--- a/data/keymaps/i386/azerty/be-latin1.map
+++ b/data/keymaps/i386/azerty/be-latin1.map
@@ -39,7 +39,8 @@ keycode 12 = parenright degree
keycode 13 = minus underscore
keycode 14 = Delete
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
keycode 26 = dead_circumflex dead_diaeresis bracketleft
control keycode 26 = Escape
alt keycode 26 = Meta_bracketleft
diff --git a/data/keymaps/i386/azerty/fr-latin1.map b/data/keymaps/i386/azerty/fr-latin1.map
index d9cbbdb..48ec303 100644
--- a/data/keymaps/i386/azerty/fr-latin1.map
+++ b/data/keymaps/i386/azerty/fr-latin1.map
@@ -39,7 +39,7 @@ keycode 13 = equal plus braceright
alt keycode 13 = Meta_equal
keycode 14 = Delete Delete
alt keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
keycode 26 = dead_circumflex dead_diaeresis
control keycode 26 = Escape
diff --git a/data/keymaps/i386/azerty/fr-latin9.map b/data/keymaps/i386/azerty/fr-latin9.map
index 4d0309d..06f3ecc 100644
--- a/data/keymaps/i386/azerty/fr-latin9.map
+++ b/data/keymaps/i386/azerty/fr-latin9.map
@@ -169,7 +169,7 @@ keycode 14 = Delete BackSpace
altgr control keycode 14 = KeyboardSignal
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
control keycode 15 = Meta_Tab
alt keycode 15 = Last_Console
diff --git a/data/keymaps/i386/azerty/fr-pc.map b/data/keymaps/i386/azerty/fr-pc.map
index 365699c..ccaf15a 100644
--- a/data/keymaps/i386/azerty/fr-pc.map
+++ b/data/keymaps/i386/azerty/fr-pc.map
@@ -44,7 +44,7 @@ keycode 13 = equal plus braceright
alt keycode 13 = Meta_equal
keycode 14 = Delete Delete
alt keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
keycode 26 = dead_circumflex dead_diaeresis
control keycode 26 = Escape
diff --git a/data/keymaps/i386/azerty/fr.map b/data/keymaps/i386/azerty/fr.map
index 209d6b3..5b636fe 100644
--- a/data/keymaps/i386/azerty/fr.map
+++ b/data/keymaps/i386/azerty/fr.map
@@ -39,7 +39,7 @@ keycode 13 = equal plus braceright
alt keycode 13 = Meta_equal
keycode 14 = Delete Delete
alt keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
keycode 26 = asciicircum less
control keycode 26 = Escape
diff --git a/data/keymaps/i386/azerty/wangbe2.map b/data/keymaps/i386/azerty/wangbe2.map
index 2562c36..6e398ca 100644
--- a/data/keymaps/i386/azerty/wangbe2.map
+++ b/data/keymaps/i386/azerty/wangbe2.map
@@ -81,7 +81,7 @@ keycode 13 = minus underscore backslash \
Meta_minus Meta_underscore Meta_backslash
keycode 14 = Delete Delete
alt keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
keycode 26 = dead_circumflex dead_diaeresis bracketleft Escape
Control AltGr keycode 26 = Escape
diff --git a/data/keymaps/i386/carpalx/carpalx.map b/data/keymaps/i386/carpalx/carpalx.map
index 9f502c0..1dd9a69 100644
--- a/data/keymaps/i386/carpalx/carpalx.map
+++ b/data/keymaps/i386/carpalx/carpalx.map
@@ -24,7 +24,8 @@ keycode 12 = minus underscore backslash Control_undersc
keycode 13 = equal plus
keycode 14 = Delete
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
keycode 16 = q
keycode 17 = g
keycode 18 = m
diff --git a/data/keymaps/i386/dvorak/dvorak-la.map b/data/keymaps/i386/dvorak/dvorak-la.map
index ec23b5a..91f3910 100644
--- a/data/keymaps/i386/dvorak/dvorak-la.map
+++ b/data/keymaps/i386/dvorak/dvorak-la.map
@@ -28,7 +28,8 @@ keycode 14 = Delete
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
keycode 16 = period colon
keycode 17 = comma semicolon
keycode 18 = +ntilde +Ntilde
diff --git a/data/keymaps/i386/dvorak/dvorak-no.map b/data/keymaps/i386/dvorak/dvorak-no.map
index ff11870..107e4da 100644
--- a/data/keymaps/i386/dvorak/dvorak-no.map
+++ b/data/keymaps/i386/dvorak/dvorak-no.map
@@ -54,7 +54,8 @@ strings as usual
keycode 14 = Delete
alt keycode 14 = Meta_Delete
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
keycode 16 = +aring +Aring
keycode 17 = comma semicolon
keycode 18 = period colon
diff --git a/data/keymaps/i386/dvorak/dvorak-ru.map b/data/keymaps/i386/dvorak/dvorak-ru.map
index 17cdf6a..8693f50 100644
--- a/data/keymaps/i386/dvorak/dvorak-ru.map
+++ b/data/keymaps/i386/dvorak/dvorak-ru.map
@@ -67,7 +67,8 @@ keycode 13 = bracketright braceright equal plus
# altgr control keycode 13 = Control_plus
keycode 14 = Delete
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
altgr shift keycode 15 = Meta_Tab
keycode 16 = apostrophe quotedbl
control keycode 16 = Control_g
diff --git a/data/keymaps/i386/dvorak/dvorak-uk.map b/data/keymaps/i386/dvorak/dvorak-uk.map
index e4ff189..ed262ee 100644
--- a/data/keymaps/i386/dvorak/dvorak-uk.map
+++ b/data/keymaps/i386/dvorak/dvorak-uk.map
@@ -26,7 +26,8 @@ keycode 13 = bracketright braceright asciitilde Control_bracketr
keycode 14 = Delete
control keycode 14 = Control_underscore
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
keycode 16 = apostrophe at
control keycode 16 = Control_g
shift control keycode 16 = nul
diff --git a/data/keymaps/i386/dvorak/dvorak-ukp.map b/data/keymaps/i386/dvorak/dvorak-ukp.map
index d29fb3e..147f889 100644
--- a/data/keymaps/i386/dvorak/dvorak-ukp.map
+++ b/data/keymaps/i386/dvorak/dvorak-ukp.map
@@ -26,7 +26,8 @@ keycode 13 = equal plus
keycode 14 = Delete
control keycode 14 = Control_underscore
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
keycode 16 = slash question
control keycode 16 = Delete
keycode 17 = comma less
diff --git a/data/keymaps/i386/dvorak/dvorak.map b/data/keymaps/i386/dvorak/dvorak.map
index 396db6d..22d31f8 100644
--- a/data/keymaps/i386/dvorak/dvorak.map
+++ b/data/keymaps/i386/dvorak/dvorak.map
@@ -22,7 +22,8 @@ keycode 12 = bracketleft braceleft
keycode 13 = bracketright braceright asciitilde Control_bracketright
keycode 14 = Delete
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
keycode 16 = apostrophe quotedbl
control keycode 16 = Control_g
keycode 17 = comma less
diff --git a/data/keymaps/i386/fgGIod/tr_f-latin5.map b/data/keymaps/i386/fgGIod/tr_f-latin5.map
index 6be4105..016baf2 100644
--- a/data/keymaps/i386/fgGIod/tr_f-latin5.map
+++ b/data/keymaps/i386/fgGIod/tr_f-latin5.map
@@ -53,7 +53,7 @@ keycode 13 = minus underscore
alt keycode 13 = Meta_equal
keycode 14 = BackSpace Delete
alt keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
keycode 16 = +f +F +q +Q
keycode 17 = +g +G +w +W
diff --git a/data/keymaps/i386/fgGIod/trf.map b/data/keymaps/i386/fgGIod/trf.map
index 5ff8e80..0fbdf96 100644
--- a/data/keymaps/i386/fgGIod/trf.map
+++ b/data/keymaps/i386/fgGIod/trf.map
@@ -48,7 +48,7 @@ keycode 13 = q
keycode 14 = Delete Delete
alt keycode 14 = Meta_Delete
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
alt keycode 15 = Meta_Tab
keycode 16 = f
keycode 17 = g
diff --git a/data/keymaps/i386/hcesar/hcesar.map b/data/keymaps/i386/hcesar/hcesar.map
index 439bb33..9e8125c 100644
--- a/data/keymaps/i386/hcesar/hcesar.map
+++ b/data/keymaps/i386/hcesar/hcesar.map
@@ -38,7 +38,8 @@ keycode 13 = guillemotleft guillemotright
alt keycode 13 = Meta_equal
keycode 14 = Delete
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
keycode 16 = minus underscore
keycode 17 = h
keycode 18 = c
diff --git a/data/keymaps/i386/include/linux-keys-bare.inc b/data/keymaps/i386/include/linux-keys-bare.inc
index 64a4ee9..30379aa 100644
--- a/data/keymaps/i386/include/linux-keys-bare.inc
+++ b/data/keymaps/i386/include/linux-keys-bare.inc
@@ -88,6 +88,13 @@ control alt keycode 68 = Console_10
control alt keycode 87 = Console_11
control alt keycode 88 = Console_12
+#
+# Tab and Backtab
+#
+keycode 15 = Tab
+shift keycode 15 = Backtab
+alt keycode 15 = Meta_Tab
+
#
# Keypad keys
#
diff --git a/data/keymaps/i386/neo/adnw.map b/data/keymaps/i386/neo/adnw.map
index 80a1c27..2b40971 100644
--- a/data/keymaps/i386/neo/adnw.map
+++ b/data/keymaps/i386/neo/adnw.map
@@ -22,8 +22,8 @@ alt_is_meta
shiftr alt keycode 14 = Meta_Delete
keycode 15 = Tab
- shiftl keycode 15 = Meta_Tab
- shiftr keycode 15 = Meta_Tab
+ shiftl keycode 15 = Backtab
+ shiftr keycode 15 = Backtab
alt keycode 15 = Meta_Tab
keycode 28 = Return
diff --git a/data/keymaps/i386/neo/bone.map b/data/keymaps/i386/neo/bone.map
index 7abab02..eeffbf3 100644
--- a/data/keymaps/i386/neo/bone.map
+++ b/data/keymaps/i386/neo/bone.map
@@ -25,8 +25,8 @@ alt_is_meta
shiftr alt keycode 14 = Meta_Delete
keycode 15 = Tab
- shiftl keycode 15 = Meta_Tab
- shiftr keycode 15 = Meta_Tab
+ shiftl keycode 15 = Backtab
+ shiftr keycode 15 = Backtab
alt keycode 15 = Meta_Tab
keycode 28 = Return
diff --git a/data/keymaps/i386/neo/koy.map b/data/keymaps/i386/neo/koy.map
index 27db41e..229c529 100644
--- a/data/keymaps/i386/neo/koy.map
+++ b/data/keymaps/i386/neo/koy.map
@@ -22,8 +22,8 @@ alt_is_meta
shiftr alt keycode 14 = Meta_Delete
keycode 15 = Tab
- shiftl keycode 15 = Meta_Tab
- shiftr keycode 15 = Meta_Tab
+ shiftl keycode 15 = Backtab
+ shiftr keycode 15 = Backtab
alt keycode 15 = Meta_Tab
keycode 28 = Return
diff --git a/data/keymaps/i386/neo/neo.map b/data/keymaps/i386/neo/neo.map
index c42568b..e855954 100644
--- a/data/keymaps/i386/neo/neo.map
+++ b/data/keymaps/i386/neo/neo.map
@@ -41,8 +41,8 @@ strings as usual
shiftr alt keycode 14 = Meta_Delete
keycode 15 = Tab
- shiftl keycode 15 = Meta_Tab
- shiftr keycode 15 = Meta_Tab
+ shiftl keycode 15 = Backtab
+ shiftr keycode 15 = Backtab
alt keycode 15 = Meta_Tab
keycode 28 = Return
diff --git a/data/keymaps/i386/neo/neoqwertz.map b/data/keymaps/i386/neo/neoqwertz.map
index 7f84ba3..85ed5e3 100644
--- a/data/keymaps/i386/neo/neoqwertz.map
+++ b/data/keymaps/i386/neo/neoqwertz.map
@@ -25,8 +25,8 @@ alt_is_meta
shiftr alt keycode 14 = Meta_Delete
keycode 15 = Tab
- shiftl keycode 15 = Meta_Tab
- shiftr keycode 15 = Meta_Tab
+ shiftl keycode 15 = Backtab
+ shiftr keycode 15 = Backtab
alt keycode 15 = Meta_Tab
keycode 28 = Return
diff --git a/data/keymaps/i386/qwerty/bg-cp1251.map b/data/keymaps/i386/qwerty/bg-cp1251.map
index 0f13ba2..14f154f 100644
--- a/data/keymaps/i386/qwerty/bg-cp1251.map
+++ b/data/keymaps/i386/qwerty/bg-cp1251.map
@@ -53,7 +53,7 @@ keycode 14 = Delete Delete Delete Delete
altgr control keycode 14 = BackSpace
altgr alt keycode 14 = Meta_Delete
keycode 15 = Tab Tab Tab Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
alt keycode 15 = Meta_Tab
altgr alt keycode 15 = Meta_Tab
keycode 16 = q Q +255 +223 \
diff --git a/data/keymaps/i386/qwerty/bg_bds-cp1251.map b/data/keymaps/i386/qwerty/bg_bds-cp1251.map
index 343441a..1bd7188 100644
--- a/data/keymaps/i386/qwerty/bg_bds-cp1251.map
+++ b/data/keymaps/i386/qwerty/bg_bds-cp1251.map
@@ -88,7 +88,7 @@ keycode 14 = Delete
altgr control keycode 14 = BackSpace
shift altgr control keycode 14 = BackSpace
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
alt keycode 15 = Meta_Tab
keycode 16 = +q
shift keycode 16 = +Q
diff --git a/data/keymaps/i386/qwerty/br-abnt.map b/data/keymaps/i386/qwerty/br-abnt.map
index 6477869..f9aae9a 100644
--- a/data/keymaps/i386/qwerty/br-abnt.map
+++ b/data/keymaps/i386/qwerty/br-abnt.map
@@ -43,7 +43,7 @@ keycode 13 = equal plus
keycode 14 = Delete Delete
control keycode 14 = BackSpace
alt keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
keycode 16 = q
keycode 17 = w
diff --git a/data/keymaps/i386/qwerty/br-abnt2.map b/data/keymaps/i386/qwerty/br-abnt2.map
index 48eae1d..3f46259 100644
--- a/data/keymaps/i386/qwerty/br-abnt2.map
+++ b/data/keymaps/i386/qwerty/br-abnt2.map
@@ -39,7 +39,8 @@ keycode 13 = equal plus section
keycode 14 = Delete
control keycode 14 = BackSpace
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
keycode 26 = dead_acute dead_grave
control keycode 26 = Escape
keycode 27 = bracketleft braceleft ordfeminine
diff --git a/data/keymaps/i386/qwerty/br-latin1-abnt2.map b/data/keymaps/i386/qwerty/br-latin1-abnt2.map
index 7b29274..b03605f 100644
--- a/data/keymaps/i386/qwerty/br-latin1-abnt2.map
+++ b/data/keymaps/i386/qwerty/br-latin1-abnt2.map
@@ -39,7 +39,8 @@ keycode 12 = minus underscore backslash Control_underscore Control_underscore
keycode 13 = equal plus section
keycode 14 = Delete
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
keycode 26 = dead_acute dead_grave
control keycode 26 = Escape
keycode 27 = bracketleft braceleft ordfeminine
diff --git a/data/keymaps/i386/qwerty/br-latin1-us.map b/data/keymaps/i386/qwerty/br-latin1-us.map
index 74d2aba..e577cf2 100644
--- a/data/keymaps/i386/qwerty/br-latin1-us.map
+++ b/data/keymaps/i386/qwerty/br-latin1-us.map
@@ -36,7 +36,8 @@ keycode 12 = minus underscore backslash Control_underscore Control_underscore
keycode 13 = equal plus section
keycode 14 = Delete
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
keycode 26 = bracketleft braceleft
control keycode 26 = Escape
keycode 27 = bracketright braceright asciitilde Control_bracketright
diff --git a/data/keymaps/i386/qwerty/by.map b/data/keymaps/i386/qwerty/by.map
index 15d44f4..4054bf4 100644
--- a/data/keymaps/i386/qwerty/by.map
+++ b/data/keymaps/i386/qwerty/by.map
@@ -92,7 +92,7 @@ keycode 14 = Delete Delete Delete \
Meta_Delete Meta_Delete Meta_Delete \
Delete Delete Delete \
Meta_Delete Meta_Delete Meta_Delete
-keycode 15 = Tab Meta_Tab Tab \
+keycode 15 = Tab Backtab Tab \
Meta_Tab Meta_Tab Meta_Tab \
Tab Tab Tab \
Meta_Tab Meta_Tab Meta_Tab \
diff --git a/data/keymaps/i386/qwerty/cf.map b/data/keymaps/i386/qwerty/cf.map
index 8f720f9..e747e10 100644
--- a/data/keymaps/i386/qwerty/cf.map
+++ b/data/keymaps/i386/qwerty/cf.map
@@ -58,7 +58,7 @@ keycode 13 = equal plus threequarters
keycode 14 = Delete Delete
control keycode 14 = BackSpace
alt keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
keycode 26 = dead_circumflex dead_circumflex bracketleft
control keycode 26 = Escape
diff --git a/data/keymaps/i386/qwerty/cz-cp1250.map b/data/keymaps/i386/qwerty/cz-cp1250.map
index c281b95..64ba141 100644
--- a/data/keymaps/i386/qwerty/cz-cp1250.map
+++ b/data/keymaps/i386/qwerty/cz-cp1250.map
@@ -30,7 +30,7 @@ keycode 11 = zero parenright eacute zero VoidSymbol VoidSymbol VoidSymbol VoidS
keycode 12 = minus underscore equal percent Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_minus Meta_minus Meta_minus
keycode 13 = equal plus dead_acute dead_circumflex VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_equal Meta_equal Meta_equal
keycode 14 = Delete Delete Delete Delete VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Delete Meta_Delete Meta_Delete Meta_Delete
-keycode 15 = Tab Meta_Tab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
+keycode 15 = Tab Backtab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
keycode 16 = q
keycode 17 = w
keycode 18 = e
diff --git a/data/keymaps/i386/qwerty/cz-lat2-prog.map b/data/keymaps/i386/qwerty/cz-lat2-prog.map
index 78b1d20..2ecdd4f 100644
--- a/data/keymaps/i386/qwerty/cz-lat2-prog.map
+++ b/data/keymaps/i386/qwerty/cz-lat2-prog.map
@@ -35,7 +35,7 @@ keycode 11 = zero parenright eacute zero VoidSymbol VoidSymbol VoidSymbol VoidS
keycode 12 = minus underscore minus underscore Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_minus Meta_minus Meta_minus
keycode 13 = equal plus dead_acute dead_circumflex VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_equal Meta_equal Meta_equal
keycode 14 = Delete Delete Delete Delete VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Delete Meta_Delete Meta_Delete Meta_Delete
-keycode 15 = Tab Meta_Tab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
+keycode 15 = Tab Backtab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
keycode 16 = q
keycode 17 = w
keycode 18 = e
diff --git a/data/keymaps/i386/qwerty/cz-lat2.map b/data/keymaps/i386/qwerty/cz-lat2.map
index aa927fe..37b7b57 100644
--- a/data/keymaps/i386/qwerty/cz-lat2.map
+++ b/data/keymaps/i386/qwerty/cz-lat2.map
@@ -32,7 +32,7 @@ keycode 11 = zero parenright eacute zero VoidSymbol VoidSymbol VoidSymbol VoidS
keycode 12 = minus underscore equal percent Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_minus Meta_minus Meta_minus
keycode 13 = equal plus dead_acute dead_circumflex VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_equal Meta_equal Meta_equal
keycode 14 = Delete Delete Delete Delete VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Delete Meta_Delete Meta_Delete Meta_Delete
-keycode 15 = Tab Meta_Tab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
+keycode 15 = Tab Backtab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
keycode 16 = q
keycode 17 = w
keycode 18 = e
diff --git a/data/keymaps/i386/qwerty/cz.map b/data/keymaps/i386/qwerty/cz.map
index cc02b12..df61a3c 100644
--- a/data/keymaps/i386/qwerty/cz.map
+++ b/data/keymaps/i386/qwerty/cz.map
@@ -326,7 +326,7 @@ keycode 14 = Delete Delete VoidSymbol VoidSymbol VoidSymbol \
Meta_Delete VoidSymbol VoidSymbol VoidSymbol \
VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol \
VoidSymbol VoidSymbol VoidSymbol
-keycode 15 = Tab Meta_Tab VoidSymbol VoidSymbol VoidSymbol \
+keycode 15 = Tab Backtab VoidSymbol VoidSymbol VoidSymbol \
VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab \
VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol \
VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol \
diff --git a/data/keymaps/i386/qwerty/defkeymap.map b/data/keymaps/i386/qwerty/defkeymap.map
index d54df9b..a1f3a6d 100644
--- a/data/keymaps/i386/qwerty/defkeymap.map
+++ b/data/keymaps/i386/qwerty/defkeymap.map
@@ -44,7 +44,7 @@ keycode 13 = equal plus
keycode 14 = Delete Delete
control keycode 14 = BackSpace
alt keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
keycode 16 = q
keycode 17 = w
diff --git a/data/keymaps/i386/qwerty/defkeymap_V1.0.map b/data/keymaps/i386/qwerty/defkeymap_V1.0.map
index 29e6a4b..7892262 100644
--- a/data/keymaps/i386/qwerty/defkeymap_V1.0.map
+++ b/data/keymaps/i386/qwerty/defkeymap_V1.0.map
@@ -37,7 +37,7 @@ keycode 13 = equal plus
alt keycode 13 = Meta_equal
keycode 14 = Delete Delete
alt keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
keycode 16 = q
keycode 17 = w
diff --git a/data/keymaps/i386/qwerty/dk-latin1.map b/data/keymaps/i386/qwerty/dk-latin1.map
index 1c32086..6fffef6 100644
--- a/data/keymaps/i386/qwerty/dk-latin1.map
+++ b/data/keymaps/i386/qwerty/dk-latin1.map
@@ -45,7 +45,7 @@ keycode 13 = dead_acute dead_grave bar
alt keycode 13 = Meta_equal
keycode 14 = Delete Delete
alt keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
keycode 26 = +aring +Aring
control keycode 26 = Escape
diff --git a/data/keymaps/i386/qwerty/dk.map b/data/keymaps/i386/qwerty/dk.map
index 01a40d8..b8910a7 100644
--- a/data/keymaps/i386/qwerty/dk.map
+++ b/data/keymaps/i386/qwerty/dk.map
@@ -45,7 +45,7 @@ keycode 13 = acute grave bar
alt keycode 13 = Meta_equal
keycode 14 = Delete Delete
alt keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
keycode 26 = +aring +Aring
control keycode 26 = Escape
diff --git a/data/keymaps/i386/qwerty/emacs.map b/data/keymaps/i386/qwerty/emacs.map
index c04a7bf..19d6a59 100644
--- a/data/keymaps/i386/qwerty/emacs.map
+++ b/data/keymaps/i386/qwerty/emacs.map
@@ -42,7 +42,8 @@ keycode 12 = minus underscore backslash Control_undersc
keycode 13 = equal plus
keycode 14 = Delete
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
keycode 26 = bracketleft braceleft
control keycode 26 = Escape
keycode 27 = bracketright braceright
diff --git a/data/keymaps/i386/qwerty/emacs2.map b/data/keymaps/i386/qwerty/emacs2.map
index f17fea2..3a5a7f1 100644
--- a/data/keymaps/i386/qwerty/emacs2.map
+++ b/data/keymaps/i386/qwerty/emacs2.map
@@ -31,7 +31,8 @@ keycode 12 = minus underscore backslash Control_undersc
keycode 13 = equal plus
keycode 14 = Delete
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
keycode 26 = bracketleft braceleft
control keycode 26 = Escape
keycode 27 = bracketright braceright
diff --git a/data/keymaps/i386/qwerty/es-cp850.map b/data/keymaps/i386/qwerty/es-cp850.map
index 5764220..5065fc6 100644
--- a/data/keymaps/i386/qwerty/es-cp850.map
+++ b/data/keymaps/i386/qwerty/es-cp850.map
@@ -34,7 +34,8 @@ keycode 13 = 0255 0250 asciitilde
alt keycode 13 = Meta_equal
keycode 14 = Delete Delete Delete Control_underscore Delete Meta_Delete Delete Delete
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
keycode 26 = dead_grave dead_circumflex bracketleft Escape VoidSymbol Meta_bracketleft
keycode 27 = plus asterisk bracketright Control_bracketright VoidSymbol Meta_bracketright
keycode 28 = Return
diff --git a/data/keymaps/i386/qwerty/es.map b/data/keymaps/i386/qwerty/es.map
index c6e79d6..ba0eaeb 100644
--- a/data/keymaps/i386/qwerty/es.map
+++ b/data/keymaps/i386/qwerty/es.map
@@ -50,7 +50,7 @@ keycode 14 = Delete
control keycode 14 = Control_underscore
alt keycode 14 = Meta_Delete
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
alt keycode 15 = Meta_Tab
!keycode 26 = dead_grave asciicircum bracketleft
keycode 26 = dead_grave dead_circumflex bracketleft
diff --git a/data/keymaps/i386/qwerty/et.map b/data/keymaps/i386/qwerty/et.map
index 4c9bbcb..ea58efa 100644
--- a/data/keymaps/i386/qwerty/et.map
+++ b/data/keymaps/i386/qwerty/et.map
@@ -36,7 +36,8 @@ keycode 12 = plus question backslash backslash \
keycode 13 = dead_acute dead_grave dead_acute dead_grave
keycode 14 = Delete Delete
control keycode 14 = BackSpace
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
+ alt keycode 15 = Meta_Tab
keycode 18 = +e +E euro euro Control_e Control_e
keycode 26 = +udiaeresis +Udiaeresis +udiaeresis +Udiaeresis Escape
keycode 27 = +otilde +Otilde section section Control_bracketright
diff --git a/data/keymaps/i386/qwerty/fi.map b/data/keymaps/i386/qwerty/fi.map
index e1325cf..2f23925 100644
--- a/data/keymaps/i386/qwerty/fi.map
+++ b/data/keymaps/i386/qwerty/fi.map
@@ -87,7 +87,8 @@ keycode 13 = dead_acute dead_grave dead_cedilla
altgr shift keycode 13 = dead_kogonek
keycode 14 = Delete
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
keycode 26 = +aring +Aring U+0153
control keycode 26 = Escape
alt keycode 26 = Meta_bracketleft
diff --git a/data/keymaps/i386/qwerty/gr-pc.map b/data/keymaps/i386/qwerty/gr-pc.map
index 5d26658..5cce811 100644
--- a/data/keymaps/i386/qwerty/gr-pc.map
+++ b/data/keymaps/i386/qwerty/gr-pc.map
@@ -96,7 +96,7 @@ keycode 14 = Delete Delete
altgr keycode 14 = Delete
shift altgr keycode 14 = Delete
alt keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
altgr keycode 15 = Tab
shift altgr keycode 15 = Tab
alt keycode 15 = Meta_Tab
diff --git a/data/keymaps/i386/qwerty/gr.map b/data/keymaps/i386/qwerty/gr.map
index e3748a7..ada841b 100644
--- a/data/keymaps/i386/qwerty/gr.map
+++ b/data/keymaps/i386/qwerty/gr.map
@@ -77,7 +77,7 @@ keycode 13 = equal plus
keycode 14 = Delete Delete
control keycode 14 = BackSpace
alt keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
keycode 16 = q
keycode 17 = w
diff --git a/data/keymaps/i386/qwerty/ie.map b/data/keymaps/i386/qwerty/ie.map
index 46eb71f..e89fed1 100644
--- a/data/keymaps/i386/qwerty/ie.map
+++ b/data/keymaps/i386/qwerty/ie.map
@@ -68,7 +68,8 @@ shift control keycode 3 = nul
control keycode 14 = Control_underscore
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
keycode 18 = +e
shift keycode 18 = +E
diff --git a/data/keymaps/i386/qwerty/il-heb.map b/data/keymaps/i386/qwerty/il-heb.map
index 31b2663..1b1de3f 100644
--- a/data/keymaps/i386/qwerty/il-heb.map
+++ b/data/keymaps/i386/qwerty/il-heb.map
@@ -37,7 +37,7 @@ keycode 13 = equal plus equal plus
alt keycode 13 = Meta_equal
keycode 14 = Delete Delete Delete Delete
alt keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab Tab Tab
+keycode 15 = Tab Backtab Tab Tab
alt keycode 15 = Meta_Tab
keycode 16 = +q +Q slash slash Control_q Control_q Control_q Control_q
keycode 17 = +w +W apostrophe apostrophe Control_w Control_w Control_w Control_w
diff --git a/data/keymaps/i386/qwerty/il-phonetic.map b/data/keymaps/i386/qwerty/il-phonetic.map
index ee65ec4..4645d0c 100644
--- a/data/keymaps/i386/qwerty/il-phonetic.map
+++ b/data/keymaps/i386/qwerty/il-phonetic.map
@@ -36,7 +36,7 @@ keycode 13 = equal plus doubleunderscore doubleunderscor
alt keycode 13 = Meta_equal
keycode 14 = Delete Delete
alt keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
keycode 16 = +q +Q qof qof Control_q
keycode 17 = +w +W vav vav Control_w
diff --git a/data/keymaps/i386/qwerty/is-latin1.map b/data/keymaps/i386/qwerty/is-latin1.map
index bd674c6..aee12ba 100644
--- a/data/keymaps/i386/qwerty/is-latin1.map
+++ b/data/keymaps/i386/qwerty/is-latin1.map
@@ -45,7 +45,7 @@ keycode 12 = +odiaeresis +Odiaeresis backslash
keycode 13 = minus underscore hyphen
keycode 14 = Delete Delete Meta_Delete
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
alt keycode 15 = Meta_Tab
keycode 16 = +q +Q at
control keycode 16 = Control_q
diff --git a/data/keymaps/i386/qwerty/it2.map b/data/keymaps/i386/qwerty/it2.map
index 5663126..65d59f7 100644
--- a/data/keymaps/i386/qwerty/it2.map
+++ b/data/keymaps/i386/qwerty/it2.map
@@ -85,7 +85,7 @@ keycode 13 = igrave asciicircum
alt shift keycode 13 = Meta_asciicircum
keycode 14 = Delete Delete
alt keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
keycode 16 = q Q
control keycode 16 = Control_q
diff --git a/data/keymaps/i386/qwerty/jp106.map b/data/keymaps/i386/qwerty/jp106.map
index 7b8610b..d64eb14 100644
--- a/data/keymaps/i386/qwerty/jp106.map
+++ b/data/keymaps/i386/qwerty/jp106.map
@@ -32,7 +32,8 @@ keycode 13 = asciicircum asciitilde
keycode 14 = Delete
control keycode 14 = BackSpace
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
keycode 26 = at grave
control keycode 26 = nul
keycode 27 = bracketleft braceleft
diff --git a/data/keymaps/i386/qwerty/la-latin1.map b/data/keymaps/i386/qwerty/la-latin1.map
index fd4043d..8b14aef 100644
--- a/data/keymaps/i386/qwerty/la-latin1.map
+++ b/data/keymaps/i386/qwerty/la-latin1.map
@@ -28,7 +28,8 @@ keycode 14 = Delete
control keycode 14 = BackSpace
alt keycode 14 = Meta_BackSpace
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
keycode 26 = dead_acute dead_diaeresis
keycode 27 = plus asterisk asciitilde
keycode 28 = Return
diff --git a/data/keymaps/i386/qwerty/lt.baltic.map b/data/keymaps/i386/qwerty/lt.baltic.map
index 39c9371..4ea0bfb 100644
--- a/data/keymaps/i386/qwerty/lt.baltic.map
+++ b/data/keymaps/i386/qwerty/lt.baltic.map
@@ -38,7 +38,8 @@ keycode 11 = zero parenright parenright nul
keycode 12 = minus underscore underscore nul nul nul minus
keycode 13 = +0xFE +0xDE plus nul nul nul equal
keycode 14 = Delete Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
+ alt keycode 15 = Meta_Tab
keycode 16 = q
keycode 17 = w
keycode 18 = e
diff --git a/data/keymaps/i386/qwerty/lv.map b/data/keymaps/i386/qwerty/lv.map
index 3e4a91f..84e99f9 100644
--- a/data/keymaps/i386/qwerty/lv.map
+++ b/data/keymaps/i386/qwerty/lv.map
@@ -23,7 +23,8 @@ keycode 11 = zero parenright braceright U+00B0
keycode 12 = minus underscore backslash U+00BF Control_underscore Control_underscore
keycode 13 = equal plus U+2013 U+2014
keycode 14 = Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
+ alt keycode 15 = Meta_Tab
keycode 26 = bracketleft braceleft guillemotleft U+201C Escape
keycode 27 = bracketright braceright guillemotright U+201D Control_bracketright
keycode 28 = Return Return Return Return Return Return Return Meta_Control_m
diff --git a/data/keymaps/i386/qwerty/mac-no.map b/data/keymaps/i386/qwerty/mac-no.map
index f8ad5d8..0309c51 100644
--- a/data/keymaps/i386/qwerty/mac-no.map
+++ b/data/keymaps/i386/qwerty/mac-no.map
@@ -43,7 +43,8 @@ keycode 13 = acute grave
keycode 14 = Delete VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_BackSpace
# Q row
-keycode 15 = Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab
+keycode 15 = Tab Backtab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab
+ alt keycode 15 = Meta_Tab
keycode 16 = q Q degree VoidSymbol Control_q Control_q Meta_q Meta_Q Meta_Control_q
keycode 17 = w W VoidSymbol VoidSymbol Control_w Control_w Meta_w Meta_W Meta_Control_w
keycode 18 = e E eacute Eacute Control_e Control_e Meta_e Meta_E Meta_Control_e
diff --git a/data/keymaps/i386/qwerty/mk0.map b/data/keymaps/i386/qwerty/mk0.map
index 7517f46..030209a 100644
--- a/data/keymaps/i386/qwerty/mk0.map
+++ b/data/keymaps/i386/qwerty/mk0.map
@@ -53,7 +53,8 @@ keycode 12 = minus underscore minus underscore Control_underscore Control_under
keycode 13 = equal plus equal plus
keycode 14 = Delete Delete Delete Delete BackSpace
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
keycode 16 = +q +Q U+0459 U+0409 Control_q Control_q Control_q Control_q
keycode 17 = +w +W U+045a U+040a Control_w Control_w Control_w Control_w
keycode 18 = +e +E U+0435 U+0415 Control_e Control_e Control_e Control_e
diff --git a/data/keymaps/i386/qwerty/nl.map b/data/keymaps/i386/qwerty/nl.map
index 199e44e..79958ea 100644
--- a/data/keymaps/i386/qwerty/nl.map
+++ b/data/keymaps/i386/qwerty/nl.map
@@ -50,7 +50,8 @@ keycode 13 = degree asciitilde dead_cedilla
keycode 14 = Delete
control keycode 14 = BackSpace
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
keycode 26 = dead_diaeresis dead_circumflex circumflex
control keycode 26 = Escape
keycode 27 = asterisk bar
diff --git a/data/keymaps/i386/qwerty/nl2.map b/data/keymaps/i386/qwerty/nl2.map
index a731a6a..a478aba 100644
--- a/data/keymaps/i386/qwerty/nl2.map
+++ b/data/keymaps/i386/qwerty/nl2.map
@@ -38,7 +38,8 @@ keycode 12 = slash question backslash Control_underscore
keycode 13 = degree asciitilde dead_cedilla
keycode 14 = Delete
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
keycode 18 = e E euro
keycode 19 = r R paragraph
keycode 26 = dead_diaeresis dead_circumflex
diff --git a/data/keymaps/i386/qwerty/no.map b/data/keymaps/i386/qwerty/no.map
index b118bc2..40d83ad 100644
--- a/data/keymaps/i386/qwerty/no.map
+++ b/data/keymaps/i386/qwerty/no.map
@@ -41,7 +41,7 @@ keycode 13 = backslash grave apostrophe
keycode 14 = Delete
alt keycode 14 = Meta_Delete
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
alt keycode 15 = Meta_Tab
keycode 26 = aring Aring braceright bracketright
control keycode 26 = Control_bracketright
diff --git a/data/keymaps/i386/qwerty/pl.map b/data/keymaps/i386/qwerty/pl.map
index fe585a4..c398c0d 100644
--- a/data/keymaps/i386/qwerty/pl.map
+++ b/data/keymaps/i386/qwerty/pl.map
@@ -49,7 +49,7 @@ keycode 13 = equal plus
keycode 14 = Delete
alt keycode 14 = Meta_Delete
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
alt keycode 15 = Meta_Tab
keycode 16 = q
keycode 17 = w
diff --git a/data/keymaps/i386/qwerty/pl2.map b/data/keymaps/i386/qwerty/pl2.map
index bbb50fd..bf2bd28 100644
--- a/data/keymaps/i386/qwerty/pl2.map
+++ b/data/keymaps/i386/qwerty/pl2.map
@@ -61,7 +61,7 @@ keycode 14 = Delete Delete
alt keycode 14 = Meta_Delete
alt shift keycode 14 = Meta_Delete
control keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
alt shift keycode 15 = Meta_Tab
AltGr keycode 15 = Meta_Tab
diff --git a/data/keymaps/i386/qwerty/pt-latin1.map b/data/keymaps/i386/qwerty/pt-latin1.map
index 5c5f476..800ede7 100644
--- a/data/keymaps/i386/qwerty/pt-latin1.map
+++ b/data/keymaps/i386/qwerty/pt-latin1.map
@@ -39,7 +39,8 @@ keycode 13 = guillemotleft guillemotright
alt keycode 13 = Meta_equal
keycode 14 = Delete
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
keycode 26 = plus asterisk dead_diaeresis
control keycode 26 = Escape
alt keycode 26 = Meta_bracketleft
diff --git a/data/keymaps/i386/qwerty/pt-latin9.map b/data/keymaps/i386/qwerty/pt-latin9.map
index f353d42..9032610 100644
--- a/data/keymaps/i386/qwerty/pt-latin9.map
+++ b/data/keymaps/i386/qwerty/pt-latin9.map
@@ -35,7 +35,8 @@ keycode 13 = guillemotleft guillemotright
alt keycode 13 = Meta_equal
keycode 14 = Delete
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
keycode 18 = e E euro cent
keycode 26 = plus asterisk dead_diaeresis
control keycode 26 = Escape
diff --git a/data/keymaps/i386/qwerty/ro_win.map b/data/keymaps/i386/qwerty/ro_win.map
index eef1463..6981abd 100644
--- a/data/keymaps/i386/qwerty/ro_win.map
+++ b/data/keymaps/i386/qwerty/ro_win.map
@@ -26,7 +26,8 @@ keycode 11 = zero parenright braceright parenright
keycode 12 = minus underscore backslash backslash Control_underscore Control_underscore
keycode 13 = equal plus
keycode 14 = Delete Delete Delete
-keycode 15 = Tab Meta_Tab Tab
+keycode 15 = Tab Backtab Tab
+ alt keycode 15 = Meta_Tab
keycode 26 = bracketleft braceleft
control keycode 26 = Escape
keycode 27 = bracketright braceright asciitilde asciitilde Control_bracketright
diff --git a/data/keymaps/i386/qwerty/sk-prog-qwerty.map b/data/keymaps/i386/qwerty/sk-prog-qwerty.map
index 828cb38..cc2f845 100644
--- a/data/keymaps/i386/qwerty/sk-prog-qwerty.map
+++ b/data/keymaps/i386/qwerty/sk-prog-qwerty.map
@@ -40,7 +40,7 @@ keycode 11 = zero parenright eacute zero VoidSymbol VoidSymbol VoidSymbol VoidS
keycode 12 = minus underscore minus underscore Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_minus Meta_minus Meta_minus
keycode 13 = equal plus dead_acute dead_circumflex VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_equal Meta_equal Meta_equal
keycode 14 = Delete Delete Delete Delete VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Delete Meta_Delete Meta_Delete Meta_Delete
-keycode 15 = Tab Meta_Tab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
+keycode 15 = Tab Backtab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
keycode 26 = bracketleft braceleft bracketleft braceleft Escape VoidSymbol Escape VoidSymbol Meta_bracketleft Meta_bracketleft Meta_bracketleft Meta_bracketleft
keycode 27 = bracketright braceright bracketright braceright Control_bracketright VoidSymbol Control_bracketright VoidSymbol Meta_bracketright Meta_bracketright Meta_bracketright Meta_bracketright
keycode 28 = Return
diff --git a/data/keymaps/i386/qwerty/sk-qwerty.map b/data/keymaps/i386/qwerty/sk-qwerty.map
index db1e2de..0d51eb0 100644
--- a/data/keymaps/i386/qwerty/sk-qwerty.map
+++ b/data/keymaps/i386/qwerty/sk-qwerty.map
@@ -43,8 +43,6 @@ keycode 11 = zero parenright eacute zero
keycode 12 = minus underscore equal percent
keycode 13 = equal plus dead_acute dead_circumflex
keycode 14 = Delete
-keycode 15 = Tab
- shift keycode 15 = Meta_Tab
keycode 26 = bracketleft braceleft uacute slash Escape
keycode 27 = bracketright braceright adiaeresis parenleft Control_bracketright
keycode 28 = Return
diff --git a/data/keymaps/i386/qwerty/sv-latin1.map b/data/keymaps/i386/qwerty/sv-latin1.map
index ccfb11e..1856c66 100644
--- a/data/keymaps/i386/qwerty/sv-latin1.map
+++ b/data/keymaps/i386/qwerty/sv-latin1.map
@@ -53,7 +53,7 @@ keycode 13 = dead_acute dead_grave
keycode 14 = Delete
alt keycode 14 = Meta_Delete
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
alt keycode 15 = Meta_Tab
keycode 26 = +aring +Aring
control keycode 26 = Escape
diff --git a/data/keymaps/i386/qwerty/tr_q-latin5.map b/data/keymaps/i386/qwerty/tr_q-latin5.map
index 0ef8ecb..4431bc2 100644
--- a/data/keymaps/i386/qwerty/tr_q-latin5.map
+++ b/data/keymaps/i386/qwerty/tr_q-latin5.map
@@ -51,7 +51,7 @@ keycode 13 = minus underscore
alt keycode 13 = Meta_equal
keycode 14 = BackSpace Delete
alt keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
keycode 16 = q
keycode 17 = w
diff --git a/data/keymaps/i386/qwerty/tralt.map b/data/keymaps/i386/qwerty/tralt.map
index ab0e274..bcd3510 100644
--- a/data/keymaps/i386/qwerty/tralt.map
+++ b/data/keymaps/i386/qwerty/tralt.map
@@ -49,7 +49,7 @@ keycode 13 = equal plus
keycode 14 = Delete
alt keycode 14 = Meta_Delete
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
alt keycode 15 = Meta_Tab
keycode 16 = q
keycode 17 = w
diff --git a/data/keymaps/i386/qwerty/trq.map b/data/keymaps/i386/qwerty/trq.map
index 36e2d28..3374448 100644
--- a/data/keymaps/i386/qwerty/trq.map
+++ b/data/keymaps/i386/qwerty/trq.map
@@ -59,7 +59,7 @@ keycode 13 = minus underscore bar
keycode 14 = Delete
alt keycode 14 = Meta_Delete
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
alt keycode 15 = Meta_Tab
keycode 16 = q
altgr keycode 16 = at
diff --git a/data/keymaps/i386/qwerty/ua-utf-ws.map b/data/keymaps/i386/qwerty/ua-utf-ws.map
index 1783a3d..a622ec6 100644
--- a/data/keymaps/i386/qwerty/ua-utf-ws.map
+++ b/data/keymaps/i386/qwerty/ua-utf-ws.map
@@ -281,7 +281,7 @@ keycode 14 = BackSpace Delete
shift control ctrll ctrlr keycode 14 = BackSpace
alt ctrll ctrlr keycode 14 = Meta_Delete
shift alt ctrll ctrlr keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
ctrlr keycode 15 = Tab
shift ctrlr keycode 15 = Tab
diff --git a/data/keymaps/i386/qwerty/ua-utf.map b/data/keymaps/i386/qwerty/ua-utf.map
index 3d9ce43..3dc7df8 100644
--- a/data/keymaps/i386/qwerty/ua-utf.map
+++ b/data/keymaps/i386/qwerty/ua-utf.map
@@ -271,7 +271,7 @@ keycode 14 = BackSpace Delete
shift control ctrll ctrlr keycode 14 = BackSpace
alt ctrll ctrlr keycode 14 = Meta_Delete
shift alt ctrll ctrlr keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
ctrlr keycode 15 = Tab
shift ctrlr keycode 15 = Tab
diff --git a/data/keymaps/i386/qwerty/ua-ws.map b/data/keymaps/i386/qwerty/ua-ws.map
index 86df969..6a57d94 100644
--- a/data/keymaps/i386/qwerty/ua-ws.map
+++ b/data/keymaps/i386/qwerty/ua-ws.map
@@ -281,7 +281,7 @@ keycode 14 = BackSpace Delete
shift control ctrll ctrlr keycode 14 = BackSpace
alt ctrll ctrlr keycode 14 = Meta_Delete
shift alt ctrll ctrlr keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
ctrlr keycode 15 = Tab
shift ctrlr keycode 15 = Tab
diff --git a/data/keymaps/i386/qwerty/ua.map b/data/keymaps/i386/qwerty/ua.map
index bb57d2a..d5d2560 100644
--- a/data/keymaps/i386/qwerty/ua.map
+++ b/data/keymaps/i386/qwerty/ua.map
@@ -270,7 +270,7 @@ keycode 14 = BackSpace Delete
shift control ctrll ctrlr keycode 14 = BackSpace
alt ctrll ctrlr keycode 14 = Meta_Delete
shift alt ctrll ctrlr keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
ctrlr keycode 15 = Tab
shift ctrlr keycode 15 = Tab
diff --git a/data/keymaps/i386/qwerty/uk.map b/data/keymaps/i386/qwerty/uk.map
index af347af..89240f2 100644
--- a/data/keymaps/i386/qwerty/uk.map
+++ b/data/keymaps/i386/qwerty/uk.map
@@ -31,7 +31,8 @@ keycode 13 = equal plus
keycode 14 = Delete
control keycode 14 = Control_underscore
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
keycode 26 = bracketleft braceleft
control keycode 26 = Escape
keycode 27 = bracketright braceright asciitilde Control_bracketright
diff --git a/data/keymaps/i386/qwerty/us-acentos.map b/data/keymaps/i386/qwerty/us-acentos.map
index 1fd1f5c..5429c52 100644
--- a/data/keymaps/i386/qwerty/us-acentos.map
+++ b/data/keymaps/i386/qwerty/us-acentos.map
@@ -44,7 +44,7 @@ keycode 14 = Delete Delete
alt keycode 14 = Meta_Delete
keycode 15 = Tab Tab
alt keycode 15 = Meta_Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
keycode 16 = q
keycode 17 = w
keycode 18 = e
diff --git a/data/keymaps/i386/qwerty/us.map b/data/keymaps/i386/qwerty/us.map
index 2164aeb..67b35f2 100644
--- a/data/keymaps/i386/qwerty/us.map
+++ b/data/keymaps/i386/qwerty/us.map
@@ -25,7 +25,8 @@ keycode 12 = minus underscore backslash Control_undersc
keycode 13 = equal plus
keycode 14 = Delete
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
+ alt keycode 15 = Meta_Tab
keycode 26 = bracketleft braceleft
control keycode 26 = Escape
keycode 27 = bracketright braceright asciitilde Control_bracketright
diff --git a/data/keymaps/i386/qwertz/cz-us-qwertz.map b/data/keymaps/i386/qwertz/cz-us-qwertz.map
index 64a1bfc..798322b 100644
--- a/data/keymaps/i386/qwertz/cz-us-qwertz.map
+++ b/data/keymaps/i386/qwertz/cz-us-qwertz.map
@@ -29,7 +29,7 @@ keycode 11 = eacute zero zero parenright VoidSymbol VoidSymbol VoidSymbol VoidS
keycode 12 = equal percent minus underscore Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_minus Meta_minus Meta_minus
keycode 13 = dead_acute dead_circumflex equal plus VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_equal Meta_equal Meta_equal
keycode 14 = Delete Delete Delete Delete VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Delete Meta_Delete Meta_Delete Meta_Delete
-keycode 15 = Tab Meta_Tab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
+keycode 15 = Tab Backtab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
keycode 16 = q
keycode 17 = w
keycode 18 = e
diff --git a/data/keymaps/i386/qwertz/cz.map b/data/keymaps/i386/qwertz/cz.map
index 85c1d61..2689d70 100644
--- a/data/keymaps/i386/qwertz/cz.map
+++ b/data/keymaps/i386/qwertz/cz.map
@@ -323,7 +323,7 @@ keycode 14 = Delete Delete VoidSymbol VoidSymbol VoidSymbol \
Meta_Delete VoidSymbol VoidSymbol VoidSymbol \
VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol \
VoidSymbol VoidSymbol VoidSymbol
-keycode 15 = Tab Meta_Tab VoidSymbol VoidSymbol VoidSymbol \
+keycode 15 = Tab Backtab VoidSymbol VoidSymbol VoidSymbol \
VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab \
VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol \
VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol \
diff --git a/data/keymaps/i386/qwertz/de-latin1.map b/data/keymaps/i386/qwertz/de-latin1.map
index cb63d52..97c3d25 100644
--- a/data/keymaps/i386/qwertz/de-latin1.map
+++ b/data/keymaps/i386/qwertz/de-latin1.map
@@ -35,7 +35,8 @@ keycode 13 = dead_acute dead_grave
shift alt keycode 13 = Meta_grave
keycode 14 = Delete Delete
alt keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
+ alt keycode 15 = Meta_Tab
keycode 26 = +udiaeresis +Udiaeresis
keycode 27 = plus asterisk dead_tilde
keycode 28 = Return
diff --git a/data/keymaps/i386/qwertz/de.map b/data/keymaps/i386/qwertz/de.map
index 11440b7..2a1e7b5 100644
--- a/data/keymaps/i386/qwertz/de.map
+++ b/data/keymaps/i386/qwertz/de.map
@@ -33,7 +33,8 @@ keycode 12 = backslash question
keycode 13 = apostrophe grave
keycode 14 = Delete Delete
alt keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
+ alt keycode 15 = Meta_Tab
keycode 26 = at backslash
keycode 27 = plus asterisk asciitilde
keycode 28 = Return
diff --git a/data/keymaps/i386/qwertz/fr_CH-latin1.map b/data/keymaps/i386/qwertz/fr_CH-latin1.map
index 667464e..785f2d3 100644
--- a/data/keymaps/i386/qwertz/fr_CH-latin1.map
+++ b/data/keymaps/i386/qwertz/fr_CH-latin1.map
@@ -41,7 +41,7 @@ keycode 13 = dead_circumflex dead_grave dead_tilde
alt keycode 13 = Meta_equal
keycode 14 = Delete Delete
alt keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
keycode 26 = egrave udiaeresis bracketleft
control keycode 26 = Escape
diff --git a/data/keymaps/i386/qwertz/fr_CH.map b/data/keymaps/i386/qwertz/fr_CH.map
index fca4984..df519c1 100644
--- a/data/keymaps/i386/qwertz/fr_CH.map
+++ b/data/keymaps/i386/qwertz/fr_CH.map
@@ -41,7 +41,7 @@ keycode 13 = asciicircum grave asciitilde
alt keycode 13 = Meta_equal
keycode 14 = Delete Delete
alt keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
keycode 26 =
altgr keycode 26 = bracketleft
diff --git a/data/keymaps/i386/qwertz/sg-latin1-lk450.map b/data/keymaps/i386/qwertz/sg-latin1-lk450.map
index aaee821..7b18dd2 100644
--- a/data/keymaps/i386/qwertz/sg-latin1-lk450.map
+++ b/data/keymaps/i386/qwertz/sg-latin1-lk450.map
@@ -40,7 +40,7 @@ keycode 13 = dead_circumflex dead_grave dead_tilde
alt keycode 13 = Meta_equal
keycode 14 = Delete Delete
alt keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
keycode 26 = udiaeresis egrave bracketleft
control keycode 26 = Escape
diff --git a/data/keymaps/i386/qwertz/sg-latin1.map b/data/keymaps/i386/qwertz/sg-latin1.map
index 19771b5..1279d44 100644
--- a/data/keymaps/i386/qwertz/sg-latin1.map
+++ b/data/keymaps/i386/qwertz/sg-latin1.map
@@ -39,7 +39,7 @@ keycode 13 = dead_circumflex dead_grave dead_tilde
alt keycode 13 = Meta_equal
keycode 14 = Delete Delete
alt keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
keycode 26 = udiaeresis egrave bracketleft
control keycode 26 = Escape
diff --git a/data/keymaps/i386/qwertz/sg.map b/data/keymaps/i386/qwertz/sg.map
index 3dc5c86..75a4b26 100644
--- a/data/keymaps/i386/qwertz/sg.map
+++ b/data/keymaps/i386/qwertz/sg.map
@@ -40,7 +40,7 @@ keycode 13 = asciicircum grave asciitilde
alt keycode 13 = Meta_equal
keycode 14 = Delete Delete
alt keycode 14 = Meta_Delete
-keycode 15 = Tab Meta_Tab
+keycode 15 = Tab Backtab
alt keycode 15 = Meta_Tab
keycode 26 =
altgr keycode 26 = bracketleft
diff --git a/data/keymaps/i386/qwertz/sk-prog-qwertz.map b/data/keymaps/i386/qwertz/sk-prog-qwertz.map
index 7ee1a5c..a81ff96 100644
--- a/data/keymaps/i386/qwertz/sk-prog-qwertz.map
+++ b/data/keymaps/i386/qwertz/sk-prog-qwertz.map
@@ -40,7 +40,7 @@ keycode 11 = zero parenright eacute zero VoidSymbol VoidSymbol VoidSymbol VoidS
keycode 12 = minus underscore minus underscore Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_minus Meta_minus Meta_minus
keycode 13 = equal plus dead_acute dead_circumflex VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_equal Meta_equal Meta_equal
keycode 14 = Delete Delete Delete Delete VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Delete Meta_Delete Meta_Delete Meta_Delete
-keycode 15 = Tab Meta_Tab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
+keycode 15 = Tab Backtab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
keycode 26 = bracketleft braceleft bracketleft braceleft Escape VoidSymbol Escape VoidSymbol Meta_bracketleft Meta_bracketleft Meta_bracketleft Meta_bracketleft
keycode 27 = bracketright braceright bracketright braceright Control_bracketright VoidSymbol Control_bracketright VoidSymbol Meta_bracketright Meta_bracketright Meta_bracketright Meta_bracketright
keycode 28 = Return
diff --git a/data/keymaps/i386/qwertz/sk-qwertz.map b/data/keymaps/i386/qwertz/sk-qwertz.map
index fc1218d..4376a4c 100644
--- a/data/keymaps/i386/qwertz/sk-qwertz.map
+++ b/data/keymaps/i386/qwertz/sk-qwertz.map
@@ -41,7 +41,7 @@ keycode 11 = zero parenright eacute zero VoidSymbol VoidSymbol VoidSymbol VoidS
keycode 12 = minus underscore equal percent Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_minus Meta_minus Meta_minus
keycode 13 = equal plus dead_acute dead_circumflex VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_equal Meta_equal Meta_equal
keycode 14 = Delete Delete Delete Delete VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Delete Meta_Delete Meta_Delete Meta_Delete
-keycode 15 = Tab Meta_Tab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
+keycode 15 = Tab Backtab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
keycode 26 = bracketleft braceleft uacute slash Escape VoidSymbol Escape VoidSymbol Meta_bracketleft Meta_bracketleft Meta_bracketleft Meta_bracketleft
keycode 27 = bracketright braceright adiaeresis parenleft Control_bracketright VoidSymbol Control_bracketright VoidSymbol Meta_bracketright Meta_bracketright Meta_bracketright Meta_bracketright
keycode 28 = Return
diff --git a/data/keymaps/mac/all/mac-fr.map b/data/keymaps/mac/all/mac-fr.map
index 9896aa6..a300cf1 100644
--- a/data/keymaps/mac/all/mac-fr.map
+++ b/data/keymaps/mac/all/mac-fr.map
@@ -170,7 +170,7 @@ keycode 14 = Delete BackSpace
altgr control keycode 14 = KeyboardSignal
keycode 15 = Tab
- shift keycode 15 = Meta_Tab
+ shift keycode 15 = Backtab
control keycode 15 = Meta_Tab
alt keycode 15 = Last_Console
diff --git a/data/keymaps/mac/include/mac-linux-keys-bare.inc b/data/keymaps/mac/include/mac-linux-keys-bare.inc
index 40a81f5..75d3353 100644
--- a/data/keymaps/mac/include/mac-linux-keys-bare.inc
+++ b/data/keymaps/mac/include/mac-linux-keys-bare.inc
@@ -166,7 +166,7 @@ keycode 113 = Pause # Break/Pause
keycode 36 = Return
alt keycode 36 = Meta_Control_m
keycode 48 = Tab
- shift keycode 48 = Meta_Tab
+ shift keycode 48 = Backtab
alt keycode 48 = Meta_Tab
keycode 49 = space space space nul
keycode 51 = Delete Remove
diff --git a/data/keymaps/pine/en.map b/data/keymaps/pine/en.map
index 36b7de2..c1f50be 100644
--- a/data/keymaps/pine/en.map
+++ b/data/keymaps/pine/en.map
@@ -34,7 +34,8 @@ keycode 11 = zero parenright plus nul nul Meta_zero
keycode 14 = BackSpace
# Second Row
-keycode 15 = Tab nul nul nul nul nul Meta_Tab
+keycode 15 = Tab Backtab nul nul nul nul Meta_Tab
+alt keycode 15 = Meta_Tab
keycode 16 = q Q nul Control_q
keycode 17 = w W nul Control_w
keycode 18 = e E nul Control_e
diff --git a/data/keymaps/sun/sunt4-es.map b/data/keymaps/sun/sunt4-es.map
index a270126..4242b60 100644
--- a/data/keymaps/sun/sunt4-es.map
+++ b/data/keymaps/sun/sunt4-es.map
@@ -137,7 +137,7 @@ keycode 50 = KP_Period
control alt keycode 50 = Boot
keycode 51 =
keycode 52 = Find
-keycode 53 = Tab Meta_Tab
+keycode 53 = Tab Backtab
alt keycode 53 = Meta_Tab
keycode 54 = q
keycode 55 = w
diff --git a/data/keymaps/sun/sunt4-fi-latin1.map b/data/keymaps/sun/sunt4-fi-latin1.map
index 7f01fd5..0e5319b 100644
--- a/data/keymaps/sun/sunt4-fi-latin1.map
+++ b/data/keymaps/sun/sunt4-fi-latin1.map
@@ -131,7 +131,7 @@ keycode 50 = KP_Period
control alt keycode 50 = Boot
keycode 51 =
keycode 52 =
-keycode 53 = Tab Meta_Tab
+keycode 53 = Tab Backtab
alt keycode 53 = Meta_Tab
keycode 54 = q
keycode 55 = w
diff --git a/data/keymaps/sun/sunt4-no-latin1.map b/data/keymaps/sun/sunt4-no-latin1.map
index a61225c..cfa7424 100644
--- a/data/keymaps/sun/sunt4-no-latin1.map
+++ b/data/keymaps/sun/sunt4-no-latin1.map
@@ -134,7 +134,7 @@ keycode 50 = KP_Period
control alt keycode 50 = Boot
keycode 51 =
keycode 52 = Find
-keycode 53 = Tab Meta_Tab
+keycode 53 = Tab Backtab
alt keycode 53 = Meta_Tab
keycode 54 = q
keycode 55 = w
diff --git a/data/keymaps/sun/sunt5-de-latin1.map b/data/keymaps/sun/sunt5-de-latin1.map
index c14d6d3..a4844a2 100644
--- a/data/keymaps/sun/sunt5-de-latin1.map
+++ b/data/keymaps/sun/sunt5-de-latin1.map
@@ -131,7 +131,7 @@ keycode 50 = KP_Period
control alt keycode 50 = Boot
keycode 51 =
keycode 52 = Find
-keycode 53 = Tab Meta_Tab
+keycode 53 = Tab Backtab
alt keycode 53 = Meta_Tab
keycode 54 = +q +Q at
keycode 55 = w
diff --git a/data/keymaps/sun/sunt5-es.map b/data/keymaps/sun/sunt5-es.map
index 727d9e8..66aa362 100644
--- a/data/keymaps/sun/sunt5-es.map
+++ b/data/keymaps/sun/sunt5-es.map
@@ -143,7 +143,7 @@ keycode 50 = KP_Period
control alt keycode 50 = Boot
keycode 51 =
keycode 52 = Find
-keycode 53 = Tab Meta_Tab
+keycode 53 = Tab Backtab
alt keycode 53 = Meta_Tab
keycode 54 = q
keycode 55 = w
diff --git a/data/keymaps/sun/sunt5-fi-latin1.map b/data/keymaps/sun/sunt5-fi-latin1.map
index 0d0fb9e..242a636 100644
--- a/data/keymaps/sun/sunt5-fi-latin1.map
+++ b/data/keymaps/sun/sunt5-fi-latin1.map
@@ -134,7 +134,7 @@ keycode 50 = KP_Period
control alt keycode 50 = Boot
keycode 51 =
keycode 52 = Find
-keycode 53 = Tab Meta_Tab
+keycode 53 = Tab Backtab
alt keycode 53 = Meta_Tab
keycode 54 = q
keycode 55 = w
diff --git a/data/keymaps/sun/sunt5-ru.map b/data/keymaps/sun/sunt5-ru.map
index d299a72..2543841 100644
--- a/data/keymaps/sun/sunt5-ru.map
+++ b/data/keymaps/sun/sunt5-ru.map
@@ -181,7 +181,7 @@ keycode 50 = KP_Period
altgr control alt keycode 50 = Boot
keycode 51 =
keycode 52 = Find
-keycode 53 = Tab Meta_Tab
+keycode 53 = Tab Backtab
alt keycode 53 = Meta_Tab
altgr alt keycode 53 = Meta_Tab
keycode 54 = q
diff --git a/data/keymaps/sun/sunt5-uk.map b/data/keymaps/sun/sunt5-uk.map
index 7c3cc44..db189eb 100644
--- a/data/keymaps/sun/sunt5-uk.map
+++ b/data/keymaps/sun/sunt5-uk.map
@@ -54,7 +54,7 @@ keycode 41 = equal plus
keycode 43 = Delete Delete
control keycode 43 = Control_underscore
alt keycode 43 = Meta_Delete
-keycode 53 = Tab Meta_Tab
+keycode 53 = Tab Backtab
alt keycode 53 = Meta_Tab
keycode 54 = q
keycode 55 = w
diff --git a/src/libkeymap/parser.y b/src/libkeymap/parser.y
index 2cd509f..0602cd8 100644
--- a/src/libkeymap/parser.y
+++ b/src/libkeymap/parser.y
@@ -106,6 +106,23 @@ strings_as_usual(struct lk_ctx *ctx)
return -1;
}
}
+
+ /*
+ * Backtab (Shift+Tab) is assigned to KT_FN index 255, the last
+ * available slot with no kernel UAPI name (K_F245 = KT_FN index 254
+ * is the last kernel-defined entry). It cannot be added to the array
+ * above without displacing the existing named entries F21..F245.
+ */
+ {
+ struct kbsentry ke;
+
+ ke.kb_func = 255; /* Backtab, see syms.ktyp.h */
+ strlcpy((char *)ke.kb_string, "\033[Z", sizeof(ke.kb_string));
+
+ if (lk_add_func(ctx, &ke) == -1)
+ return -1;
+ }
+
return 0;
}
diff --git a/src/libkeymap/syms.ktyp.h b/src/libkeymap/syms.ktyp.h
index 82c87a6..504d67e 100644
--- a/src/libkeymap/syms.ktyp.h
+++ b/src/libkeymap/syms.ktyp.h
@@ -323,7 +323,14 @@ static const char *const fn_syms[] = {
"F231", "F232", "F233", "F234", "F235",
"F236", "F237", "F238", "F239", "F240",
"F241", "F242", "F243", "F244", "F245",
- "F246" /* there are 10 keys named Insert etc., total 256 */
+ /*
+ * The kernel UAPI defines KT_FN keys F1..F20 (indices 0..19),
+ * then Find/Insert/Remove/Select/Prior/Next/Macro/Help/Do/Pause
+ * (indices 20..29), then F21..F245 (indices 30..254).
+ * Index 255 is the last available slot with no kernel UAPI name,
+ * so Backtab is placed here to avoid shifting any existing indices.
+ */
+ "Backtab" /* there are 11 keys named Find etc., total 256 */
};
/*
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH v3] Add Backtab keysym and update keymaps to use it for Shift+Tab
2026-02-20 22:07 [PATCH v3] Add Backtab keysym and update keymaps to use it for Shift+Tab Nicolas Pitre
@ 2026-02-23 9:10 ` Alexey Gladkov
0 siblings, 0 replies; 2+ messages in thread
From: Alexey Gladkov @ 2026-02-23 9:10 UTC (permalink / raw)
To: Nicolas Pitre; +Cc: kbd
On Fri, Feb 20, 2026 at 05:07:56PM -0500, Nicolas Pitre wrote:
> Add a new Backtab keysym (KT_FN index 30) that produces the standard
> backtab escape sequence \e[Z. This replaces F246 which was unused.
>
> Update all keymaps to use Backtab for Shift+Tab instead of Meta_Tab.
> In most cases the Meta_Tab binding already existed for Alt+Tab; where
> it was missing, it has been added.
>
> This change affects keymaps across all architectures: i386, amiga,
> atari, mac, sun, and pine.
>
> Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
Applied. Thanks!
Plus, I added the alias F246 for Backtab.
> ---
> >From v2:
>
> Moved Backtab to index 255 — the last slot in the KT_FN table, which has
> no kernel UAPI name (the kernel only goes up to K_F245 = K(KT_FN, 254)).
>
> diff --git a/data/keymaps/amiga/amiga-de.map b/data/keymaps/amiga/amiga-de.map
> index d9b62e0..f1b18a4 100644
> --- a/data/keymaps/amiga/amiga-de.map
> +++ b/data/keymaps/amiga/amiga-de.map
> @@ -212,7 +212,7 @@ keycode 64 = space space
> control keycode 64 = nul
> alt keycode 64 = Meta_space
> keycode 65 = BackSpace
> -keycode 66 = Tab Meta_Tab
> +keycode 66 = Tab Backtab
> alt keycode 66 = Meta_Tab
> keycode 67 = Return
> keycode 68 = Return
> diff --git a/data/keymaps/amiga/amiga-us.map b/data/keymaps/amiga/amiga-us.map
> index 8fb5da4..ac0c5d2 100644
> --- a/data/keymaps/amiga/amiga-us.map
> +++ b/data/keymaps/amiga/amiga-us.map
> @@ -159,7 +159,7 @@ keycode 64 = space space
> control keycode 64 = nul
> alt keycode 64 = Meta_space
> keycode 65 = Delete Delete Delete Delete Delete Meta_Delete Delete
> -keycode 66 = Tab Meta_Tab
> +keycode 66 = Tab Backtab
> alt keycode 66 = Meta_Tab
> keycode 67 = KP_Enter
> keycode 68 = Return
> diff --git a/data/keymaps/atari/atari-se.map b/data/keymaps/atari/atari-se.map
> index 110a7fe..345d5bf 100644
> --- a/data/keymaps/atari/atari-se.map
> +++ b/data/keymaps/atari/atari-se.map
> @@ -67,7 +67,7 @@ keycode 13 = eacute Eacute
> alt keycode 13 = Meta_equal
> shift alt keycode 13 = Meta_plus
> keycode 14 = Delete Delete Delete Delete Delete Delete Delete Delete Meta_Delete Meta_Delete Delete Delete Meta_Delete Meta_Delete Delete Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> shift alt keycode 15 = Meta_Tab
> keycode 16 = +q +Q
> diff --git a/data/keymaps/atari/atari-uk-falcon.map b/data/keymaps/atari/atari-uk-falcon.map
> index 8d1242e..cecc97e 100644
> --- a/data/keymaps/atari/atari-uk-falcon.map
> +++ b/data/keymaps/atari/atari-uk-falcon.map
> @@ -60,7 +60,7 @@ keycode 13 = equal plus
> alt keycode 13 = Meta_equal
> shift alt keycode 13 = Meta_plus
> keycode 14 = BackSpace BackSpace BackSpace BackSpace BackSpace BackSpace BackSpace BackSpace Meta_BackSpace Meta_BackSpace BackSpace BackSpace Meta_BackSpace Meta_BackSpace BackSpace BackSpace
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> shift alt keycode 15 = Meta_Tab
> keycode 16 = +q +Q
> diff --git a/data/keymaps/atari/atari-us.map b/data/keymaps/atari/atari-us.map
> index aea6a2b..a725c12 100644
> --- a/data/keymaps/atari/atari-us.map
> +++ b/data/keymaps/atari/atari-us.map
> @@ -60,7 +60,7 @@ keycode 14 = BackSpace BackSpace
> shift alt keycode 14 = Meta_BackSpace
> control alt keycode 14 = Meta_BackSpace
> shift control alt keycode 14 = Meta_BackSpace
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> shift alt keycode 15 = Meta_Tab
> keycode 16 = +q +Q +q Control_q
> diff --git a/data/keymaps/i386/azerty/azerty.map b/data/keymaps/i386/azerty/azerty.map
> index f38fa62..91fcd1b 100644
> --- a/data/keymaps/i386/azerty/azerty.map
> +++ b/data/keymaps/i386/azerty/azerty.map
> @@ -32,7 +32,8 @@ keycode 13 = minus underscore backslash
> control keycode 13 = Control_underscore
> control shift keycode 13 = Control_underscore
> keycode 14 = Delete Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> + alt keycode 15 = Meta_Tab
> keycode 26 = dead_circumflex dead_diaeresis bracketleft
> control keycode 26 = Escape
> alt keycode 26 = bracketleft
> diff --git a/data/keymaps/i386/azerty/be-latin1.map b/data/keymaps/i386/azerty/be-latin1.map
> index b573944..aad78b5 100644
> --- a/data/keymaps/i386/azerty/be-latin1.map
> +++ b/data/keymaps/i386/azerty/be-latin1.map
> @@ -39,7 +39,8 @@ keycode 12 = parenright degree
> keycode 13 = minus underscore
> keycode 14 = Delete
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
> keycode 26 = dead_circumflex dead_diaeresis bracketleft
> control keycode 26 = Escape
> alt keycode 26 = Meta_bracketleft
> diff --git a/data/keymaps/i386/azerty/fr-latin1.map b/data/keymaps/i386/azerty/fr-latin1.map
> index d9cbbdb..48ec303 100644
> --- a/data/keymaps/i386/azerty/fr-latin1.map
> +++ b/data/keymaps/i386/azerty/fr-latin1.map
> @@ -39,7 +39,7 @@ keycode 13 = equal plus braceright
> alt keycode 13 = Meta_equal
> keycode 14 = Delete Delete
> alt keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> keycode 26 = dead_circumflex dead_diaeresis
> control keycode 26 = Escape
> diff --git a/data/keymaps/i386/azerty/fr-latin9.map b/data/keymaps/i386/azerty/fr-latin9.map
> index 4d0309d..06f3ecc 100644
> --- a/data/keymaps/i386/azerty/fr-latin9.map
> +++ b/data/keymaps/i386/azerty/fr-latin9.map
> @@ -169,7 +169,7 @@ keycode 14 = Delete BackSpace
> altgr control keycode 14 = KeyboardSignal
>
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> control keycode 15 = Meta_Tab
> alt keycode 15 = Last_Console
>
> diff --git a/data/keymaps/i386/azerty/fr-pc.map b/data/keymaps/i386/azerty/fr-pc.map
> index 365699c..ccaf15a 100644
> --- a/data/keymaps/i386/azerty/fr-pc.map
> +++ b/data/keymaps/i386/azerty/fr-pc.map
> @@ -44,7 +44,7 @@ keycode 13 = equal plus braceright
> alt keycode 13 = Meta_equal
> keycode 14 = Delete Delete
> alt keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> keycode 26 = dead_circumflex dead_diaeresis
> control keycode 26 = Escape
> diff --git a/data/keymaps/i386/azerty/fr.map b/data/keymaps/i386/azerty/fr.map
> index 209d6b3..5b636fe 100644
> --- a/data/keymaps/i386/azerty/fr.map
> +++ b/data/keymaps/i386/azerty/fr.map
> @@ -39,7 +39,7 @@ keycode 13 = equal plus braceright
> alt keycode 13 = Meta_equal
> keycode 14 = Delete Delete
> alt keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> keycode 26 = asciicircum less
> control keycode 26 = Escape
> diff --git a/data/keymaps/i386/azerty/wangbe2.map b/data/keymaps/i386/azerty/wangbe2.map
> index 2562c36..6e398ca 100644
> --- a/data/keymaps/i386/azerty/wangbe2.map
> +++ b/data/keymaps/i386/azerty/wangbe2.map
> @@ -81,7 +81,7 @@ keycode 13 = minus underscore backslash \
> Meta_minus Meta_underscore Meta_backslash
> keycode 14 = Delete Delete
> alt keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> keycode 26 = dead_circumflex dead_diaeresis bracketleft Escape
> Control AltGr keycode 26 = Escape
> diff --git a/data/keymaps/i386/carpalx/carpalx.map b/data/keymaps/i386/carpalx/carpalx.map
> index 9f502c0..1dd9a69 100644
> --- a/data/keymaps/i386/carpalx/carpalx.map
> +++ b/data/keymaps/i386/carpalx/carpalx.map
> @@ -24,7 +24,8 @@ keycode 12 = minus underscore backslash Control_undersc
> keycode 13 = equal plus
> keycode 14 = Delete
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
> keycode 16 = q
> keycode 17 = g
> keycode 18 = m
> diff --git a/data/keymaps/i386/dvorak/dvorak-la.map b/data/keymaps/i386/dvorak/dvorak-la.map
> index ec23b5a..91f3910 100644
> --- a/data/keymaps/i386/dvorak/dvorak-la.map
> +++ b/data/keymaps/i386/dvorak/dvorak-la.map
> @@ -28,7 +28,8 @@ keycode 14 = Delete
>
>
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
> keycode 16 = period colon
> keycode 17 = comma semicolon
> keycode 18 = +ntilde +Ntilde
> diff --git a/data/keymaps/i386/dvorak/dvorak-no.map b/data/keymaps/i386/dvorak/dvorak-no.map
> index ff11870..107e4da 100644
> --- a/data/keymaps/i386/dvorak/dvorak-no.map
> +++ b/data/keymaps/i386/dvorak/dvorak-no.map
> @@ -54,7 +54,8 @@ strings as usual
> keycode 14 = Delete
> alt keycode 14 = Meta_Delete
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
> keycode 16 = +aring +Aring
> keycode 17 = comma semicolon
> keycode 18 = period colon
> diff --git a/data/keymaps/i386/dvorak/dvorak-ru.map b/data/keymaps/i386/dvorak/dvorak-ru.map
> index 17cdf6a..8693f50 100644
> --- a/data/keymaps/i386/dvorak/dvorak-ru.map
> +++ b/data/keymaps/i386/dvorak/dvorak-ru.map
> @@ -67,7 +67,8 @@ keycode 13 = bracketright braceright equal plus
> # altgr control keycode 13 = Control_plus
> keycode 14 = Delete
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
> altgr shift keycode 15 = Meta_Tab
> keycode 16 = apostrophe quotedbl
> control keycode 16 = Control_g
> diff --git a/data/keymaps/i386/dvorak/dvorak-uk.map b/data/keymaps/i386/dvorak/dvorak-uk.map
> index e4ff189..ed262ee 100644
> --- a/data/keymaps/i386/dvorak/dvorak-uk.map
> +++ b/data/keymaps/i386/dvorak/dvorak-uk.map
> @@ -26,7 +26,8 @@ keycode 13 = bracketright braceright asciitilde Control_bracketr
> keycode 14 = Delete
> control keycode 14 = Control_underscore
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
> keycode 16 = apostrophe at
> control keycode 16 = Control_g
> shift control keycode 16 = nul
> diff --git a/data/keymaps/i386/dvorak/dvorak-ukp.map b/data/keymaps/i386/dvorak/dvorak-ukp.map
> index d29fb3e..147f889 100644
> --- a/data/keymaps/i386/dvorak/dvorak-ukp.map
> +++ b/data/keymaps/i386/dvorak/dvorak-ukp.map
> @@ -26,7 +26,8 @@ keycode 13 = equal plus
> keycode 14 = Delete
> control keycode 14 = Control_underscore
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
> keycode 16 = slash question
> control keycode 16 = Delete
> keycode 17 = comma less
> diff --git a/data/keymaps/i386/dvorak/dvorak.map b/data/keymaps/i386/dvorak/dvorak.map
> index 396db6d..22d31f8 100644
> --- a/data/keymaps/i386/dvorak/dvorak.map
> +++ b/data/keymaps/i386/dvorak/dvorak.map
> @@ -22,7 +22,8 @@ keycode 12 = bracketleft braceleft
> keycode 13 = bracketright braceright asciitilde Control_bracketright
> keycode 14 = Delete
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
> keycode 16 = apostrophe quotedbl
> control keycode 16 = Control_g
> keycode 17 = comma less
> diff --git a/data/keymaps/i386/fgGIod/tr_f-latin5.map b/data/keymaps/i386/fgGIod/tr_f-latin5.map
> index 6be4105..016baf2 100644
> --- a/data/keymaps/i386/fgGIod/tr_f-latin5.map
> +++ b/data/keymaps/i386/fgGIod/tr_f-latin5.map
> @@ -53,7 +53,7 @@ keycode 13 = minus underscore
> alt keycode 13 = Meta_equal
> keycode 14 = BackSpace Delete
> alt keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> keycode 16 = +f +F +q +Q
> keycode 17 = +g +G +w +W
> diff --git a/data/keymaps/i386/fgGIod/trf.map b/data/keymaps/i386/fgGIod/trf.map
> index 5ff8e80..0fbdf96 100644
> --- a/data/keymaps/i386/fgGIod/trf.map
> +++ b/data/keymaps/i386/fgGIod/trf.map
> @@ -48,7 +48,7 @@ keycode 13 = q
> keycode 14 = Delete Delete
> alt keycode 14 = Meta_Delete
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> alt keycode 15 = Meta_Tab
> keycode 16 = f
> keycode 17 = g
> diff --git a/data/keymaps/i386/hcesar/hcesar.map b/data/keymaps/i386/hcesar/hcesar.map
> index 439bb33..9e8125c 100644
> --- a/data/keymaps/i386/hcesar/hcesar.map
> +++ b/data/keymaps/i386/hcesar/hcesar.map
> @@ -38,7 +38,8 @@ keycode 13 = guillemotleft guillemotright
> alt keycode 13 = Meta_equal
> keycode 14 = Delete
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
> keycode 16 = minus underscore
> keycode 17 = h
> keycode 18 = c
> diff --git a/data/keymaps/i386/include/linux-keys-bare.inc b/data/keymaps/i386/include/linux-keys-bare.inc
> index 64a4ee9..30379aa 100644
> --- a/data/keymaps/i386/include/linux-keys-bare.inc
> +++ b/data/keymaps/i386/include/linux-keys-bare.inc
> @@ -88,6 +88,13 @@ control alt keycode 68 = Console_10
> control alt keycode 87 = Console_11
> control alt keycode 88 = Console_12
>
> +#
> +# Tab and Backtab
> +#
> +keycode 15 = Tab
> +shift keycode 15 = Backtab
> +alt keycode 15 = Meta_Tab
> +
> #
> # Keypad keys
> #
> diff --git a/data/keymaps/i386/neo/adnw.map b/data/keymaps/i386/neo/adnw.map
> index 80a1c27..2b40971 100644
> --- a/data/keymaps/i386/neo/adnw.map
> +++ b/data/keymaps/i386/neo/adnw.map
> @@ -22,8 +22,8 @@ alt_is_meta
> shiftr alt keycode 14 = Meta_Delete
>
> keycode 15 = Tab
> - shiftl keycode 15 = Meta_Tab
> - shiftr keycode 15 = Meta_Tab
> + shiftl keycode 15 = Backtab
> + shiftr keycode 15 = Backtab
> alt keycode 15 = Meta_Tab
>
> keycode 28 = Return
> diff --git a/data/keymaps/i386/neo/bone.map b/data/keymaps/i386/neo/bone.map
> index 7abab02..eeffbf3 100644
> --- a/data/keymaps/i386/neo/bone.map
> +++ b/data/keymaps/i386/neo/bone.map
> @@ -25,8 +25,8 @@ alt_is_meta
> shiftr alt keycode 14 = Meta_Delete
>
> keycode 15 = Tab
> - shiftl keycode 15 = Meta_Tab
> - shiftr keycode 15 = Meta_Tab
> + shiftl keycode 15 = Backtab
> + shiftr keycode 15 = Backtab
> alt keycode 15 = Meta_Tab
>
> keycode 28 = Return
> diff --git a/data/keymaps/i386/neo/koy.map b/data/keymaps/i386/neo/koy.map
> index 27db41e..229c529 100644
> --- a/data/keymaps/i386/neo/koy.map
> +++ b/data/keymaps/i386/neo/koy.map
> @@ -22,8 +22,8 @@ alt_is_meta
> shiftr alt keycode 14 = Meta_Delete
>
> keycode 15 = Tab
> - shiftl keycode 15 = Meta_Tab
> - shiftr keycode 15 = Meta_Tab
> + shiftl keycode 15 = Backtab
> + shiftr keycode 15 = Backtab
> alt keycode 15 = Meta_Tab
>
> keycode 28 = Return
> diff --git a/data/keymaps/i386/neo/neo.map b/data/keymaps/i386/neo/neo.map
> index c42568b..e855954 100644
> --- a/data/keymaps/i386/neo/neo.map
> +++ b/data/keymaps/i386/neo/neo.map
> @@ -41,8 +41,8 @@ strings as usual
> shiftr alt keycode 14 = Meta_Delete
>
> keycode 15 = Tab
> - shiftl keycode 15 = Meta_Tab
> - shiftr keycode 15 = Meta_Tab
> + shiftl keycode 15 = Backtab
> + shiftr keycode 15 = Backtab
> alt keycode 15 = Meta_Tab
>
> keycode 28 = Return
> diff --git a/data/keymaps/i386/neo/neoqwertz.map b/data/keymaps/i386/neo/neoqwertz.map
> index 7f84ba3..85ed5e3 100644
> --- a/data/keymaps/i386/neo/neoqwertz.map
> +++ b/data/keymaps/i386/neo/neoqwertz.map
> @@ -25,8 +25,8 @@ alt_is_meta
> shiftr alt keycode 14 = Meta_Delete
>
> keycode 15 = Tab
> - shiftl keycode 15 = Meta_Tab
> - shiftr keycode 15 = Meta_Tab
> + shiftl keycode 15 = Backtab
> + shiftr keycode 15 = Backtab
> alt keycode 15 = Meta_Tab
>
> keycode 28 = Return
> diff --git a/data/keymaps/i386/qwerty/bg-cp1251.map b/data/keymaps/i386/qwerty/bg-cp1251.map
> index 0f13ba2..14f154f 100644
> --- a/data/keymaps/i386/qwerty/bg-cp1251.map
> +++ b/data/keymaps/i386/qwerty/bg-cp1251.map
> @@ -53,7 +53,7 @@ keycode 14 = Delete Delete Delete Delete
> altgr control keycode 14 = BackSpace
> altgr alt keycode 14 = Meta_Delete
> keycode 15 = Tab Tab Tab Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> alt keycode 15 = Meta_Tab
> altgr alt keycode 15 = Meta_Tab
> keycode 16 = q Q +255 +223 \
> diff --git a/data/keymaps/i386/qwerty/bg_bds-cp1251.map b/data/keymaps/i386/qwerty/bg_bds-cp1251.map
> index 343441a..1bd7188 100644
> --- a/data/keymaps/i386/qwerty/bg_bds-cp1251.map
> +++ b/data/keymaps/i386/qwerty/bg_bds-cp1251.map
> @@ -88,7 +88,7 @@ keycode 14 = Delete
> altgr control keycode 14 = BackSpace
> shift altgr control keycode 14 = BackSpace
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> alt keycode 15 = Meta_Tab
> keycode 16 = +q
> shift keycode 16 = +Q
> diff --git a/data/keymaps/i386/qwerty/br-abnt.map b/data/keymaps/i386/qwerty/br-abnt.map
> index 6477869..f9aae9a 100644
> --- a/data/keymaps/i386/qwerty/br-abnt.map
> +++ b/data/keymaps/i386/qwerty/br-abnt.map
> @@ -43,7 +43,7 @@ keycode 13 = equal plus
> keycode 14 = Delete Delete
> control keycode 14 = BackSpace
> alt keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> keycode 16 = q
> keycode 17 = w
> diff --git a/data/keymaps/i386/qwerty/br-abnt2.map b/data/keymaps/i386/qwerty/br-abnt2.map
> index 48eae1d..3f46259 100644
> --- a/data/keymaps/i386/qwerty/br-abnt2.map
> +++ b/data/keymaps/i386/qwerty/br-abnt2.map
> @@ -39,7 +39,8 @@ keycode 13 = equal plus section
> keycode 14 = Delete
> control keycode 14 = BackSpace
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
> keycode 26 = dead_acute dead_grave
> control keycode 26 = Escape
> keycode 27 = bracketleft braceleft ordfeminine
> diff --git a/data/keymaps/i386/qwerty/br-latin1-abnt2.map b/data/keymaps/i386/qwerty/br-latin1-abnt2.map
> index 7b29274..b03605f 100644
> --- a/data/keymaps/i386/qwerty/br-latin1-abnt2.map
> +++ b/data/keymaps/i386/qwerty/br-latin1-abnt2.map
> @@ -39,7 +39,8 @@ keycode 12 = minus underscore backslash Control_underscore Control_underscore
> keycode 13 = equal plus section
> keycode 14 = Delete
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
> keycode 26 = dead_acute dead_grave
> control keycode 26 = Escape
> keycode 27 = bracketleft braceleft ordfeminine
> diff --git a/data/keymaps/i386/qwerty/br-latin1-us.map b/data/keymaps/i386/qwerty/br-latin1-us.map
> index 74d2aba..e577cf2 100644
> --- a/data/keymaps/i386/qwerty/br-latin1-us.map
> +++ b/data/keymaps/i386/qwerty/br-latin1-us.map
> @@ -36,7 +36,8 @@ keycode 12 = minus underscore backslash Control_underscore Control_underscore
> keycode 13 = equal plus section
> keycode 14 = Delete
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
> keycode 26 = bracketleft braceleft
> control keycode 26 = Escape
> keycode 27 = bracketright braceright asciitilde Control_bracketright
> diff --git a/data/keymaps/i386/qwerty/by.map b/data/keymaps/i386/qwerty/by.map
> index 15d44f4..4054bf4 100644
> --- a/data/keymaps/i386/qwerty/by.map
> +++ b/data/keymaps/i386/qwerty/by.map
> @@ -92,7 +92,7 @@ keycode 14 = Delete Delete Delete \
> Meta_Delete Meta_Delete Meta_Delete \
> Delete Delete Delete \
> Meta_Delete Meta_Delete Meta_Delete
> -keycode 15 = Tab Meta_Tab Tab \
> +keycode 15 = Tab Backtab Tab \
> Meta_Tab Meta_Tab Meta_Tab \
> Tab Tab Tab \
> Meta_Tab Meta_Tab Meta_Tab \
> diff --git a/data/keymaps/i386/qwerty/cf.map b/data/keymaps/i386/qwerty/cf.map
> index 8f720f9..e747e10 100644
> --- a/data/keymaps/i386/qwerty/cf.map
> +++ b/data/keymaps/i386/qwerty/cf.map
> @@ -58,7 +58,7 @@ keycode 13 = equal plus threequarters
> keycode 14 = Delete Delete
> control keycode 14 = BackSpace
> alt keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> keycode 26 = dead_circumflex dead_circumflex bracketleft
> control keycode 26 = Escape
> diff --git a/data/keymaps/i386/qwerty/cz-cp1250.map b/data/keymaps/i386/qwerty/cz-cp1250.map
> index c281b95..64ba141 100644
> --- a/data/keymaps/i386/qwerty/cz-cp1250.map
> +++ b/data/keymaps/i386/qwerty/cz-cp1250.map
> @@ -30,7 +30,7 @@ keycode 11 = zero parenright eacute zero VoidSymbol VoidSymbol VoidSymbol VoidS
> keycode 12 = minus underscore equal percent Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_minus Meta_minus Meta_minus
> keycode 13 = equal plus dead_acute dead_circumflex VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_equal Meta_equal Meta_equal
> keycode 14 = Delete Delete Delete Delete VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Delete Meta_Delete Meta_Delete Meta_Delete
> -keycode 15 = Tab Meta_Tab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
> +keycode 15 = Tab Backtab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
> keycode 16 = q
> keycode 17 = w
> keycode 18 = e
> diff --git a/data/keymaps/i386/qwerty/cz-lat2-prog.map b/data/keymaps/i386/qwerty/cz-lat2-prog.map
> index 78b1d20..2ecdd4f 100644
> --- a/data/keymaps/i386/qwerty/cz-lat2-prog.map
> +++ b/data/keymaps/i386/qwerty/cz-lat2-prog.map
> @@ -35,7 +35,7 @@ keycode 11 = zero parenright eacute zero VoidSymbol VoidSymbol VoidSymbol VoidS
> keycode 12 = minus underscore minus underscore Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_minus Meta_minus Meta_minus
> keycode 13 = equal plus dead_acute dead_circumflex VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_equal Meta_equal Meta_equal
> keycode 14 = Delete Delete Delete Delete VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Delete Meta_Delete Meta_Delete Meta_Delete
> -keycode 15 = Tab Meta_Tab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
> +keycode 15 = Tab Backtab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
> keycode 16 = q
> keycode 17 = w
> keycode 18 = e
> diff --git a/data/keymaps/i386/qwerty/cz-lat2.map b/data/keymaps/i386/qwerty/cz-lat2.map
> index aa927fe..37b7b57 100644
> --- a/data/keymaps/i386/qwerty/cz-lat2.map
> +++ b/data/keymaps/i386/qwerty/cz-lat2.map
> @@ -32,7 +32,7 @@ keycode 11 = zero parenright eacute zero VoidSymbol VoidSymbol VoidSymbol VoidS
> keycode 12 = minus underscore equal percent Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_minus Meta_minus Meta_minus
> keycode 13 = equal plus dead_acute dead_circumflex VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_equal Meta_equal Meta_equal
> keycode 14 = Delete Delete Delete Delete VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Delete Meta_Delete Meta_Delete Meta_Delete
> -keycode 15 = Tab Meta_Tab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
> +keycode 15 = Tab Backtab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
> keycode 16 = q
> keycode 17 = w
> keycode 18 = e
> diff --git a/data/keymaps/i386/qwerty/cz.map b/data/keymaps/i386/qwerty/cz.map
> index cc02b12..df61a3c 100644
> --- a/data/keymaps/i386/qwerty/cz.map
> +++ b/data/keymaps/i386/qwerty/cz.map
> @@ -326,7 +326,7 @@ keycode 14 = Delete Delete VoidSymbol VoidSymbol VoidSymbol \
> Meta_Delete VoidSymbol VoidSymbol VoidSymbol \
> VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol \
> VoidSymbol VoidSymbol VoidSymbol
> -keycode 15 = Tab Meta_Tab VoidSymbol VoidSymbol VoidSymbol \
> +keycode 15 = Tab Backtab VoidSymbol VoidSymbol VoidSymbol \
> VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab \
> VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol \
> VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol \
> diff --git a/data/keymaps/i386/qwerty/defkeymap.map b/data/keymaps/i386/qwerty/defkeymap.map
> index d54df9b..a1f3a6d 100644
> --- a/data/keymaps/i386/qwerty/defkeymap.map
> +++ b/data/keymaps/i386/qwerty/defkeymap.map
> @@ -44,7 +44,7 @@ keycode 13 = equal plus
> keycode 14 = Delete Delete
> control keycode 14 = BackSpace
> alt keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> keycode 16 = q
> keycode 17 = w
> diff --git a/data/keymaps/i386/qwerty/defkeymap_V1.0.map b/data/keymaps/i386/qwerty/defkeymap_V1.0.map
> index 29e6a4b..7892262 100644
> --- a/data/keymaps/i386/qwerty/defkeymap_V1.0.map
> +++ b/data/keymaps/i386/qwerty/defkeymap_V1.0.map
> @@ -37,7 +37,7 @@ keycode 13 = equal plus
> alt keycode 13 = Meta_equal
> keycode 14 = Delete Delete
> alt keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> keycode 16 = q
> keycode 17 = w
> diff --git a/data/keymaps/i386/qwerty/dk-latin1.map b/data/keymaps/i386/qwerty/dk-latin1.map
> index 1c32086..6fffef6 100644
> --- a/data/keymaps/i386/qwerty/dk-latin1.map
> +++ b/data/keymaps/i386/qwerty/dk-latin1.map
> @@ -45,7 +45,7 @@ keycode 13 = dead_acute dead_grave bar
> alt keycode 13 = Meta_equal
> keycode 14 = Delete Delete
> alt keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> keycode 26 = +aring +Aring
> control keycode 26 = Escape
> diff --git a/data/keymaps/i386/qwerty/dk.map b/data/keymaps/i386/qwerty/dk.map
> index 01a40d8..b8910a7 100644
> --- a/data/keymaps/i386/qwerty/dk.map
> +++ b/data/keymaps/i386/qwerty/dk.map
> @@ -45,7 +45,7 @@ keycode 13 = acute grave bar
> alt keycode 13 = Meta_equal
> keycode 14 = Delete Delete
> alt keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> keycode 26 = +aring +Aring
> control keycode 26 = Escape
> diff --git a/data/keymaps/i386/qwerty/emacs.map b/data/keymaps/i386/qwerty/emacs.map
> index c04a7bf..19d6a59 100644
> --- a/data/keymaps/i386/qwerty/emacs.map
> +++ b/data/keymaps/i386/qwerty/emacs.map
> @@ -42,7 +42,8 @@ keycode 12 = minus underscore backslash Control_undersc
> keycode 13 = equal plus
> keycode 14 = Delete
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
> keycode 26 = bracketleft braceleft
> control keycode 26 = Escape
> keycode 27 = bracketright braceright
> diff --git a/data/keymaps/i386/qwerty/emacs2.map b/data/keymaps/i386/qwerty/emacs2.map
> index f17fea2..3a5a7f1 100644
> --- a/data/keymaps/i386/qwerty/emacs2.map
> +++ b/data/keymaps/i386/qwerty/emacs2.map
> @@ -31,7 +31,8 @@ keycode 12 = minus underscore backslash Control_undersc
> keycode 13 = equal plus
> keycode 14 = Delete
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
> keycode 26 = bracketleft braceleft
> control keycode 26 = Escape
> keycode 27 = bracketright braceright
> diff --git a/data/keymaps/i386/qwerty/es-cp850.map b/data/keymaps/i386/qwerty/es-cp850.map
> index 5764220..5065fc6 100644
> --- a/data/keymaps/i386/qwerty/es-cp850.map
> +++ b/data/keymaps/i386/qwerty/es-cp850.map
> @@ -34,7 +34,8 @@ keycode 13 = 0255 0250 asciitilde
> alt keycode 13 = Meta_equal
> keycode 14 = Delete Delete Delete Control_underscore Delete Meta_Delete Delete Delete
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
> keycode 26 = dead_grave dead_circumflex bracketleft Escape VoidSymbol Meta_bracketleft
> keycode 27 = plus asterisk bracketright Control_bracketright VoidSymbol Meta_bracketright
> keycode 28 = Return
> diff --git a/data/keymaps/i386/qwerty/es.map b/data/keymaps/i386/qwerty/es.map
> index c6e79d6..ba0eaeb 100644
> --- a/data/keymaps/i386/qwerty/es.map
> +++ b/data/keymaps/i386/qwerty/es.map
> @@ -50,7 +50,7 @@ keycode 14 = Delete
> control keycode 14 = Control_underscore
> alt keycode 14 = Meta_Delete
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> alt keycode 15 = Meta_Tab
> !keycode 26 = dead_grave asciicircum bracketleft
> keycode 26 = dead_grave dead_circumflex bracketleft
> diff --git a/data/keymaps/i386/qwerty/et.map b/data/keymaps/i386/qwerty/et.map
> index 4c9bbcb..ea58efa 100644
> --- a/data/keymaps/i386/qwerty/et.map
> +++ b/data/keymaps/i386/qwerty/et.map
> @@ -36,7 +36,8 @@ keycode 12 = plus question backslash backslash \
> keycode 13 = dead_acute dead_grave dead_acute dead_grave
> keycode 14 = Delete Delete
> control keycode 14 = BackSpace
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> + alt keycode 15 = Meta_Tab
> keycode 18 = +e +E euro euro Control_e Control_e
> keycode 26 = +udiaeresis +Udiaeresis +udiaeresis +Udiaeresis Escape
> keycode 27 = +otilde +Otilde section section Control_bracketright
> diff --git a/data/keymaps/i386/qwerty/fi.map b/data/keymaps/i386/qwerty/fi.map
> index e1325cf..2f23925 100644
> --- a/data/keymaps/i386/qwerty/fi.map
> +++ b/data/keymaps/i386/qwerty/fi.map
> @@ -87,7 +87,8 @@ keycode 13 = dead_acute dead_grave dead_cedilla
> altgr shift keycode 13 = dead_kogonek
> keycode 14 = Delete
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
> keycode 26 = +aring +Aring U+0153
> control keycode 26 = Escape
> alt keycode 26 = Meta_bracketleft
> diff --git a/data/keymaps/i386/qwerty/gr-pc.map b/data/keymaps/i386/qwerty/gr-pc.map
> index 5d26658..5cce811 100644
> --- a/data/keymaps/i386/qwerty/gr-pc.map
> +++ b/data/keymaps/i386/qwerty/gr-pc.map
> @@ -96,7 +96,7 @@ keycode 14 = Delete Delete
> altgr keycode 14 = Delete
> shift altgr keycode 14 = Delete
> alt keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> altgr keycode 15 = Tab
> shift altgr keycode 15 = Tab
> alt keycode 15 = Meta_Tab
> diff --git a/data/keymaps/i386/qwerty/gr.map b/data/keymaps/i386/qwerty/gr.map
> index e3748a7..ada841b 100644
> --- a/data/keymaps/i386/qwerty/gr.map
> +++ b/data/keymaps/i386/qwerty/gr.map
> @@ -77,7 +77,7 @@ keycode 13 = equal plus
> keycode 14 = Delete Delete
> control keycode 14 = BackSpace
> alt keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> keycode 16 = q
> keycode 17 = w
> diff --git a/data/keymaps/i386/qwerty/ie.map b/data/keymaps/i386/qwerty/ie.map
> index 46eb71f..e89fed1 100644
> --- a/data/keymaps/i386/qwerty/ie.map
> +++ b/data/keymaps/i386/qwerty/ie.map
> @@ -68,7 +68,8 @@ shift control keycode 3 = nul
> control keycode 14 = Control_underscore
>
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
>
> keycode 18 = +e
> shift keycode 18 = +E
> diff --git a/data/keymaps/i386/qwerty/il-heb.map b/data/keymaps/i386/qwerty/il-heb.map
> index 31b2663..1b1de3f 100644
> --- a/data/keymaps/i386/qwerty/il-heb.map
> +++ b/data/keymaps/i386/qwerty/il-heb.map
> @@ -37,7 +37,7 @@ keycode 13 = equal plus equal plus
> alt keycode 13 = Meta_equal
> keycode 14 = Delete Delete Delete Delete
> alt keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab Tab Tab
> +keycode 15 = Tab Backtab Tab Tab
> alt keycode 15 = Meta_Tab
> keycode 16 = +q +Q slash slash Control_q Control_q Control_q Control_q
> keycode 17 = +w +W apostrophe apostrophe Control_w Control_w Control_w Control_w
> diff --git a/data/keymaps/i386/qwerty/il-phonetic.map b/data/keymaps/i386/qwerty/il-phonetic.map
> index ee65ec4..4645d0c 100644
> --- a/data/keymaps/i386/qwerty/il-phonetic.map
> +++ b/data/keymaps/i386/qwerty/il-phonetic.map
> @@ -36,7 +36,7 @@ keycode 13 = equal plus doubleunderscore doubleunderscor
> alt keycode 13 = Meta_equal
> keycode 14 = Delete Delete
> alt keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> keycode 16 = +q +Q qof qof Control_q
> keycode 17 = +w +W vav vav Control_w
> diff --git a/data/keymaps/i386/qwerty/is-latin1.map b/data/keymaps/i386/qwerty/is-latin1.map
> index bd674c6..aee12ba 100644
> --- a/data/keymaps/i386/qwerty/is-latin1.map
> +++ b/data/keymaps/i386/qwerty/is-latin1.map
> @@ -45,7 +45,7 @@ keycode 12 = +odiaeresis +Odiaeresis backslash
> keycode 13 = minus underscore hyphen
> keycode 14 = Delete Delete Meta_Delete
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> alt keycode 15 = Meta_Tab
> keycode 16 = +q +Q at
> control keycode 16 = Control_q
> diff --git a/data/keymaps/i386/qwerty/it2.map b/data/keymaps/i386/qwerty/it2.map
> index 5663126..65d59f7 100644
> --- a/data/keymaps/i386/qwerty/it2.map
> +++ b/data/keymaps/i386/qwerty/it2.map
> @@ -85,7 +85,7 @@ keycode 13 = igrave asciicircum
> alt shift keycode 13 = Meta_asciicircum
> keycode 14 = Delete Delete
> alt keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> keycode 16 = q Q
> control keycode 16 = Control_q
> diff --git a/data/keymaps/i386/qwerty/jp106.map b/data/keymaps/i386/qwerty/jp106.map
> index 7b8610b..d64eb14 100644
> --- a/data/keymaps/i386/qwerty/jp106.map
> +++ b/data/keymaps/i386/qwerty/jp106.map
> @@ -32,7 +32,8 @@ keycode 13 = asciicircum asciitilde
> keycode 14 = Delete
> control keycode 14 = BackSpace
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
> keycode 26 = at grave
> control keycode 26 = nul
> keycode 27 = bracketleft braceleft
> diff --git a/data/keymaps/i386/qwerty/la-latin1.map b/data/keymaps/i386/qwerty/la-latin1.map
> index fd4043d..8b14aef 100644
> --- a/data/keymaps/i386/qwerty/la-latin1.map
> +++ b/data/keymaps/i386/qwerty/la-latin1.map
> @@ -28,7 +28,8 @@ keycode 14 = Delete
> control keycode 14 = BackSpace
> alt keycode 14 = Meta_BackSpace
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
> keycode 26 = dead_acute dead_diaeresis
> keycode 27 = plus asterisk asciitilde
> keycode 28 = Return
> diff --git a/data/keymaps/i386/qwerty/lt.baltic.map b/data/keymaps/i386/qwerty/lt.baltic.map
> index 39c9371..4ea0bfb 100644
> --- a/data/keymaps/i386/qwerty/lt.baltic.map
> +++ b/data/keymaps/i386/qwerty/lt.baltic.map
> @@ -38,7 +38,8 @@ keycode 11 = zero parenright parenright nul
> keycode 12 = minus underscore underscore nul nul nul minus
> keycode 13 = +0xFE +0xDE plus nul nul nul equal
> keycode 14 = Delete Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> + alt keycode 15 = Meta_Tab
> keycode 16 = q
> keycode 17 = w
> keycode 18 = e
> diff --git a/data/keymaps/i386/qwerty/lv.map b/data/keymaps/i386/qwerty/lv.map
> index 3e4a91f..84e99f9 100644
> --- a/data/keymaps/i386/qwerty/lv.map
> +++ b/data/keymaps/i386/qwerty/lv.map
> @@ -23,7 +23,8 @@ keycode 11 = zero parenright braceright U+00B0
> keycode 12 = minus underscore backslash U+00BF Control_underscore Control_underscore
> keycode 13 = equal plus U+2013 U+2014
> keycode 14 = Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> + alt keycode 15 = Meta_Tab
> keycode 26 = bracketleft braceleft guillemotleft U+201C Escape
> keycode 27 = bracketright braceright guillemotright U+201D Control_bracketright
> keycode 28 = Return Return Return Return Return Return Return Meta_Control_m
> diff --git a/data/keymaps/i386/qwerty/mac-no.map b/data/keymaps/i386/qwerty/mac-no.map
> index f8ad5d8..0309c51 100644
> --- a/data/keymaps/i386/qwerty/mac-no.map
> +++ b/data/keymaps/i386/qwerty/mac-no.map
> @@ -43,7 +43,8 @@ keycode 13 = acute grave
> keycode 14 = Delete VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_BackSpace
>
> # Q row
> -keycode 15 = Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab
> +keycode 15 = Tab Backtab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab
> + alt keycode 15 = Meta_Tab
> keycode 16 = q Q degree VoidSymbol Control_q Control_q Meta_q Meta_Q Meta_Control_q
> keycode 17 = w W VoidSymbol VoidSymbol Control_w Control_w Meta_w Meta_W Meta_Control_w
> keycode 18 = e E eacute Eacute Control_e Control_e Meta_e Meta_E Meta_Control_e
> diff --git a/data/keymaps/i386/qwerty/mk0.map b/data/keymaps/i386/qwerty/mk0.map
> index 7517f46..030209a 100644
> --- a/data/keymaps/i386/qwerty/mk0.map
> +++ b/data/keymaps/i386/qwerty/mk0.map
> @@ -53,7 +53,8 @@ keycode 12 = minus underscore minus underscore Control_underscore Control_under
> keycode 13 = equal plus equal plus
> keycode 14 = Delete Delete Delete Delete BackSpace
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
> keycode 16 = +q +Q U+0459 U+0409 Control_q Control_q Control_q Control_q
> keycode 17 = +w +W U+045a U+040a Control_w Control_w Control_w Control_w
> keycode 18 = +e +E U+0435 U+0415 Control_e Control_e Control_e Control_e
> diff --git a/data/keymaps/i386/qwerty/nl.map b/data/keymaps/i386/qwerty/nl.map
> index 199e44e..79958ea 100644
> --- a/data/keymaps/i386/qwerty/nl.map
> +++ b/data/keymaps/i386/qwerty/nl.map
> @@ -50,7 +50,8 @@ keycode 13 = degree asciitilde dead_cedilla
> keycode 14 = Delete
> control keycode 14 = BackSpace
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
> keycode 26 = dead_diaeresis dead_circumflex circumflex
> control keycode 26 = Escape
> keycode 27 = asterisk bar
> diff --git a/data/keymaps/i386/qwerty/nl2.map b/data/keymaps/i386/qwerty/nl2.map
> index a731a6a..a478aba 100644
> --- a/data/keymaps/i386/qwerty/nl2.map
> +++ b/data/keymaps/i386/qwerty/nl2.map
> @@ -38,7 +38,8 @@ keycode 12 = slash question backslash Control_underscore
> keycode 13 = degree asciitilde dead_cedilla
> keycode 14 = Delete
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
> keycode 18 = e E euro
> keycode 19 = r R paragraph
> keycode 26 = dead_diaeresis dead_circumflex
> diff --git a/data/keymaps/i386/qwerty/no.map b/data/keymaps/i386/qwerty/no.map
> index b118bc2..40d83ad 100644
> --- a/data/keymaps/i386/qwerty/no.map
> +++ b/data/keymaps/i386/qwerty/no.map
> @@ -41,7 +41,7 @@ keycode 13 = backslash grave apostrophe
> keycode 14 = Delete
> alt keycode 14 = Meta_Delete
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> alt keycode 15 = Meta_Tab
> keycode 26 = aring Aring braceright bracketright
> control keycode 26 = Control_bracketright
> diff --git a/data/keymaps/i386/qwerty/pl.map b/data/keymaps/i386/qwerty/pl.map
> index fe585a4..c398c0d 100644
> --- a/data/keymaps/i386/qwerty/pl.map
> +++ b/data/keymaps/i386/qwerty/pl.map
> @@ -49,7 +49,7 @@ keycode 13 = equal plus
> keycode 14 = Delete
> alt keycode 14 = Meta_Delete
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> alt keycode 15 = Meta_Tab
> keycode 16 = q
> keycode 17 = w
> diff --git a/data/keymaps/i386/qwerty/pl2.map b/data/keymaps/i386/qwerty/pl2.map
> index bbb50fd..bf2bd28 100644
> --- a/data/keymaps/i386/qwerty/pl2.map
> +++ b/data/keymaps/i386/qwerty/pl2.map
> @@ -61,7 +61,7 @@ keycode 14 = Delete Delete
> alt keycode 14 = Meta_Delete
> alt shift keycode 14 = Meta_Delete
> control keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> alt shift keycode 15 = Meta_Tab
> AltGr keycode 15 = Meta_Tab
> diff --git a/data/keymaps/i386/qwerty/pt-latin1.map b/data/keymaps/i386/qwerty/pt-latin1.map
> index 5c5f476..800ede7 100644
> --- a/data/keymaps/i386/qwerty/pt-latin1.map
> +++ b/data/keymaps/i386/qwerty/pt-latin1.map
> @@ -39,7 +39,8 @@ keycode 13 = guillemotleft guillemotright
> alt keycode 13 = Meta_equal
> keycode 14 = Delete
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
> keycode 26 = plus asterisk dead_diaeresis
> control keycode 26 = Escape
> alt keycode 26 = Meta_bracketleft
> diff --git a/data/keymaps/i386/qwerty/pt-latin9.map b/data/keymaps/i386/qwerty/pt-latin9.map
> index f353d42..9032610 100644
> --- a/data/keymaps/i386/qwerty/pt-latin9.map
> +++ b/data/keymaps/i386/qwerty/pt-latin9.map
> @@ -35,7 +35,8 @@ keycode 13 = guillemotleft guillemotright
> alt keycode 13 = Meta_equal
> keycode 14 = Delete
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
> keycode 18 = e E euro cent
> keycode 26 = plus asterisk dead_diaeresis
> control keycode 26 = Escape
> diff --git a/data/keymaps/i386/qwerty/ro_win.map b/data/keymaps/i386/qwerty/ro_win.map
> index eef1463..6981abd 100644
> --- a/data/keymaps/i386/qwerty/ro_win.map
> +++ b/data/keymaps/i386/qwerty/ro_win.map
> @@ -26,7 +26,8 @@ keycode 11 = zero parenright braceright parenright
> keycode 12 = minus underscore backslash backslash Control_underscore Control_underscore
> keycode 13 = equal plus
> keycode 14 = Delete Delete Delete
> -keycode 15 = Tab Meta_Tab Tab
> +keycode 15 = Tab Backtab Tab
> + alt keycode 15 = Meta_Tab
> keycode 26 = bracketleft braceleft
> control keycode 26 = Escape
> keycode 27 = bracketright braceright asciitilde asciitilde Control_bracketright
> diff --git a/data/keymaps/i386/qwerty/sk-prog-qwerty.map b/data/keymaps/i386/qwerty/sk-prog-qwerty.map
> index 828cb38..cc2f845 100644
> --- a/data/keymaps/i386/qwerty/sk-prog-qwerty.map
> +++ b/data/keymaps/i386/qwerty/sk-prog-qwerty.map
> @@ -40,7 +40,7 @@ keycode 11 = zero parenright eacute zero VoidSymbol VoidSymbol VoidSymbol VoidS
> keycode 12 = minus underscore minus underscore Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_minus Meta_minus Meta_minus
> keycode 13 = equal plus dead_acute dead_circumflex VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_equal Meta_equal Meta_equal
> keycode 14 = Delete Delete Delete Delete VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Delete Meta_Delete Meta_Delete Meta_Delete
> -keycode 15 = Tab Meta_Tab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
> +keycode 15 = Tab Backtab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
> keycode 26 = bracketleft braceleft bracketleft braceleft Escape VoidSymbol Escape VoidSymbol Meta_bracketleft Meta_bracketleft Meta_bracketleft Meta_bracketleft
> keycode 27 = bracketright braceright bracketright braceright Control_bracketright VoidSymbol Control_bracketright VoidSymbol Meta_bracketright Meta_bracketright Meta_bracketright Meta_bracketright
> keycode 28 = Return
> diff --git a/data/keymaps/i386/qwerty/sk-qwerty.map b/data/keymaps/i386/qwerty/sk-qwerty.map
> index db1e2de..0d51eb0 100644
> --- a/data/keymaps/i386/qwerty/sk-qwerty.map
> +++ b/data/keymaps/i386/qwerty/sk-qwerty.map
> @@ -43,8 +43,6 @@ keycode 11 = zero parenright eacute zero
> keycode 12 = minus underscore equal percent
> keycode 13 = equal plus dead_acute dead_circumflex
> keycode 14 = Delete
> -keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> keycode 26 = bracketleft braceleft uacute slash Escape
> keycode 27 = bracketright braceright adiaeresis parenleft Control_bracketright
> keycode 28 = Return
> diff --git a/data/keymaps/i386/qwerty/sv-latin1.map b/data/keymaps/i386/qwerty/sv-latin1.map
> index ccfb11e..1856c66 100644
> --- a/data/keymaps/i386/qwerty/sv-latin1.map
> +++ b/data/keymaps/i386/qwerty/sv-latin1.map
> @@ -53,7 +53,7 @@ keycode 13 = dead_acute dead_grave
> keycode 14 = Delete
> alt keycode 14 = Meta_Delete
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> alt keycode 15 = Meta_Tab
> keycode 26 = +aring +Aring
> control keycode 26 = Escape
> diff --git a/data/keymaps/i386/qwerty/tr_q-latin5.map b/data/keymaps/i386/qwerty/tr_q-latin5.map
> index 0ef8ecb..4431bc2 100644
> --- a/data/keymaps/i386/qwerty/tr_q-latin5.map
> +++ b/data/keymaps/i386/qwerty/tr_q-latin5.map
> @@ -51,7 +51,7 @@ keycode 13 = minus underscore
> alt keycode 13 = Meta_equal
> keycode 14 = BackSpace Delete
> alt keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> keycode 16 = q
> keycode 17 = w
> diff --git a/data/keymaps/i386/qwerty/tralt.map b/data/keymaps/i386/qwerty/tralt.map
> index ab0e274..bcd3510 100644
> --- a/data/keymaps/i386/qwerty/tralt.map
> +++ b/data/keymaps/i386/qwerty/tralt.map
> @@ -49,7 +49,7 @@ keycode 13 = equal plus
> keycode 14 = Delete
> alt keycode 14 = Meta_Delete
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> alt keycode 15 = Meta_Tab
> keycode 16 = q
> keycode 17 = w
> diff --git a/data/keymaps/i386/qwerty/trq.map b/data/keymaps/i386/qwerty/trq.map
> index 36e2d28..3374448 100644
> --- a/data/keymaps/i386/qwerty/trq.map
> +++ b/data/keymaps/i386/qwerty/trq.map
> @@ -59,7 +59,7 @@ keycode 13 = minus underscore bar
> keycode 14 = Delete
> alt keycode 14 = Meta_Delete
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> alt keycode 15 = Meta_Tab
> keycode 16 = q
> altgr keycode 16 = at
> diff --git a/data/keymaps/i386/qwerty/ua-utf-ws.map b/data/keymaps/i386/qwerty/ua-utf-ws.map
> index 1783a3d..a622ec6 100644
> --- a/data/keymaps/i386/qwerty/ua-utf-ws.map
> +++ b/data/keymaps/i386/qwerty/ua-utf-ws.map
> @@ -281,7 +281,7 @@ keycode 14 = BackSpace Delete
> shift control ctrll ctrlr keycode 14 = BackSpace
> alt ctrll ctrlr keycode 14 = Meta_Delete
> shift alt ctrll ctrlr keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> ctrlr keycode 15 = Tab
> shift ctrlr keycode 15 = Tab
> diff --git a/data/keymaps/i386/qwerty/ua-utf.map b/data/keymaps/i386/qwerty/ua-utf.map
> index 3d9ce43..3dc7df8 100644
> --- a/data/keymaps/i386/qwerty/ua-utf.map
> +++ b/data/keymaps/i386/qwerty/ua-utf.map
> @@ -271,7 +271,7 @@ keycode 14 = BackSpace Delete
> shift control ctrll ctrlr keycode 14 = BackSpace
> alt ctrll ctrlr keycode 14 = Meta_Delete
> shift alt ctrll ctrlr keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> ctrlr keycode 15 = Tab
> shift ctrlr keycode 15 = Tab
> diff --git a/data/keymaps/i386/qwerty/ua-ws.map b/data/keymaps/i386/qwerty/ua-ws.map
> index 86df969..6a57d94 100644
> --- a/data/keymaps/i386/qwerty/ua-ws.map
> +++ b/data/keymaps/i386/qwerty/ua-ws.map
> @@ -281,7 +281,7 @@ keycode 14 = BackSpace Delete
> shift control ctrll ctrlr keycode 14 = BackSpace
> alt ctrll ctrlr keycode 14 = Meta_Delete
> shift alt ctrll ctrlr keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> ctrlr keycode 15 = Tab
> shift ctrlr keycode 15 = Tab
> diff --git a/data/keymaps/i386/qwerty/ua.map b/data/keymaps/i386/qwerty/ua.map
> index bb57d2a..d5d2560 100644
> --- a/data/keymaps/i386/qwerty/ua.map
> +++ b/data/keymaps/i386/qwerty/ua.map
> @@ -270,7 +270,7 @@ keycode 14 = BackSpace Delete
> shift control ctrll ctrlr keycode 14 = BackSpace
> alt ctrll ctrlr keycode 14 = Meta_Delete
> shift alt ctrll ctrlr keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> ctrlr keycode 15 = Tab
> shift ctrlr keycode 15 = Tab
> diff --git a/data/keymaps/i386/qwerty/uk.map b/data/keymaps/i386/qwerty/uk.map
> index af347af..89240f2 100644
> --- a/data/keymaps/i386/qwerty/uk.map
> +++ b/data/keymaps/i386/qwerty/uk.map
> @@ -31,7 +31,8 @@ keycode 13 = equal plus
> keycode 14 = Delete
> control keycode 14 = Control_underscore
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
> keycode 26 = bracketleft braceleft
> control keycode 26 = Escape
> keycode 27 = bracketright braceright asciitilde Control_bracketright
> diff --git a/data/keymaps/i386/qwerty/us-acentos.map b/data/keymaps/i386/qwerty/us-acentos.map
> index 1fd1f5c..5429c52 100644
> --- a/data/keymaps/i386/qwerty/us-acentos.map
> +++ b/data/keymaps/i386/qwerty/us-acentos.map
> @@ -44,7 +44,7 @@ keycode 14 = Delete Delete
> alt keycode 14 = Meta_Delete
> keycode 15 = Tab Tab
> alt keycode 15 = Meta_Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> keycode 16 = q
> keycode 17 = w
> keycode 18 = e
> diff --git a/data/keymaps/i386/qwerty/us.map b/data/keymaps/i386/qwerty/us.map
> index 2164aeb..67b35f2 100644
> --- a/data/keymaps/i386/qwerty/us.map
> +++ b/data/keymaps/i386/qwerty/us.map
> @@ -25,7 +25,8 @@ keycode 12 = minus underscore backslash Control_undersc
> keycode 13 = equal plus
> keycode 14 = Delete
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> + alt keycode 15 = Meta_Tab
> keycode 26 = bracketleft braceleft
> control keycode 26 = Escape
> keycode 27 = bracketright braceright asciitilde Control_bracketright
> diff --git a/data/keymaps/i386/qwertz/cz-us-qwertz.map b/data/keymaps/i386/qwertz/cz-us-qwertz.map
> index 64a1bfc..798322b 100644
> --- a/data/keymaps/i386/qwertz/cz-us-qwertz.map
> +++ b/data/keymaps/i386/qwertz/cz-us-qwertz.map
> @@ -29,7 +29,7 @@ keycode 11 = eacute zero zero parenright VoidSymbol VoidSymbol VoidSymbol VoidS
> keycode 12 = equal percent minus underscore Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_minus Meta_minus Meta_minus
> keycode 13 = dead_acute dead_circumflex equal plus VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_equal Meta_equal Meta_equal
> keycode 14 = Delete Delete Delete Delete VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Delete Meta_Delete Meta_Delete Meta_Delete
> -keycode 15 = Tab Meta_Tab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
> +keycode 15 = Tab Backtab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
> keycode 16 = q
> keycode 17 = w
> keycode 18 = e
> diff --git a/data/keymaps/i386/qwertz/cz.map b/data/keymaps/i386/qwertz/cz.map
> index 85c1d61..2689d70 100644
> --- a/data/keymaps/i386/qwertz/cz.map
> +++ b/data/keymaps/i386/qwertz/cz.map
> @@ -323,7 +323,7 @@ keycode 14 = Delete Delete VoidSymbol VoidSymbol VoidSymbol \
> Meta_Delete VoidSymbol VoidSymbol VoidSymbol \
> VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol \
> VoidSymbol VoidSymbol VoidSymbol
> -keycode 15 = Tab Meta_Tab VoidSymbol VoidSymbol VoidSymbol \
> +keycode 15 = Tab Backtab VoidSymbol VoidSymbol VoidSymbol \
> VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab \
> VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol \
> VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol \
> diff --git a/data/keymaps/i386/qwertz/de-latin1.map b/data/keymaps/i386/qwertz/de-latin1.map
> index cb63d52..97c3d25 100644
> --- a/data/keymaps/i386/qwertz/de-latin1.map
> +++ b/data/keymaps/i386/qwertz/de-latin1.map
> @@ -35,7 +35,8 @@ keycode 13 = dead_acute dead_grave
> shift alt keycode 13 = Meta_grave
> keycode 14 = Delete Delete
> alt keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> + alt keycode 15 = Meta_Tab
> keycode 26 = +udiaeresis +Udiaeresis
> keycode 27 = plus asterisk dead_tilde
> keycode 28 = Return
> diff --git a/data/keymaps/i386/qwertz/de.map b/data/keymaps/i386/qwertz/de.map
> index 11440b7..2a1e7b5 100644
> --- a/data/keymaps/i386/qwertz/de.map
> +++ b/data/keymaps/i386/qwertz/de.map
> @@ -33,7 +33,8 @@ keycode 12 = backslash question
> keycode 13 = apostrophe grave
> keycode 14 = Delete Delete
> alt keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> + alt keycode 15 = Meta_Tab
> keycode 26 = at backslash
> keycode 27 = plus asterisk asciitilde
> keycode 28 = Return
> diff --git a/data/keymaps/i386/qwertz/fr_CH-latin1.map b/data/keymaps/i386/qwertz/fr_CH-latin1.map
> index 667464e..785f2d3 100644
> --- a/data/keymaps/i386/qwertz/fr_CH-latin1.map
> +++ b/data/keymaps/i386/qwertz/fr_CH-latin1.map
> @@ -41,7 +41,7 @@ keycode 13 = dead_circumflex dead_grave dead_tilde
> alt keycode 13 = Meta_equal
> keycode 14 = Delete Delete
> alt keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> keycode 26 = egrave udiaeresis bracketleft
> control keycode 26 = Escape
> diff --git a/data/keymaps/i386/qwertz/fr_CH.map b/data/keymaps/i386/qwertz/fr_CH.map
> index fca4984..df519c1 100644
> --- a/data/keymaps/i386/qwertz/fr_CH.map
> +++ b/data/keymaps/i386/qwertz/fr_CH.map
> @@ -41,7 +41,7 @@ keycode 13 = asciicircum grave asciitilde
> alt keycode 13 = Meta_equal
> keycode 14 = Delete Delete
> alt keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> keycode 26 =
> altgr keycode 26 = bracketleft
> diff --git a/data/keymaps/i386/qwertz/sg-latin1-lk450.map b/data/keymaps/i386/qwertz/sg-latin1-lk450.map
> index aaee821..7b18dd2 100644
> --- a/data/keymaps/i386/qwertz/sg-latin1-lk450.map
> +++ b/data/keymaps/i386/qwertz/sg-latin1-lk450.map
> @@ -40,7 +40,7 @@ keycode 13 = dead_circumflex dead_grave dead_tilde
> alt keycode 13 = Meta_equal
> keycode 14 = Delete Delete
> alt keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> keycode 26 = udiaeresis egrave bracketleft
> control keycode 26 = Escape
> diff --git a/data/keymaps/i386/qwertz/sg-latin1.map b/data/keymaps/i386/qwertz/sg-latin1.map
> index 19771b5..1279d44 100644
> --- a/data/keymaps/i386/qwertz/sg-latin1.map
> +++ b/data/keymaps/i386/qwertz/sg-latin1.map
> @@ -39,7 +39,7 @@ keycode 13 = dead_circumflex dead_grave dead_tilde
> alt keycode 13 = Meta_equal
> keycode 14 = Delete Delete
> alt keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> keycode 26 = udiaeresis egrave bracketleft
> control keycode 26 = Escape
> diff --git a/data/keymaps/i386/qwertz/sg.map b/data/keymaps/i386/qwertz/sg.map
> index 3dc5c86..75a4b26 100644
> --- a/data/keymaps/i386/qwertz/sg.map
> +++ b/data/keymaps/i386/qwertz/sg.map
> @@ -40,7 +40,7 @@ keycode 13 = asciicircum grave asciitilde
> alt keycode 13 = Meta_equal
> keycode 14 = Delete Delete
> alt keycode 14 = Meta_Delete
> -keycode 15 = Tab Meta_Tab
> +keycode 15 = Tab Backtab
> alt keycode 15 = Meta_Tab
> keycode 26 =
> altgr keycode 26 = bracketleft
> diff --git a/data/keymaps/i386/qwertz/sk-prog-qwertz.map b/data/keymaps/i386/qwertz/sk-prog-qwertz.map
> index 7ee1a5c..a81ff96 100644
> --- a/data/keymaps/i386/qwertz/sk-prog-qwertz.map
> +++ b/data/keymaps/i386/qwertz/sk-prog-qwertz.map
> @@ -40,7 +40,7 @@ keycode 11 = zero parenright eacute zero VoidSymbol VoidSymbol VoidSymbol VoidS
> keycode 12 = minus underscore minus underscore Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_minus Meta_minus Meta_minus
> keycode 13 = equal plus dead_acute dead_circumflex VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_equal Meta_equal Meta_equal
> keycode 14 = Delete Delete Delete Delete VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Delete Meta_Delete Meta_Delete Meta_Delete
> -keycode 15 = Tab Meta_Tab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
> +keycode 15 = Tab Backtab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
> keycode 26 = bracketleft braceleft bracketleft braceleft Escape VoidSymbol Escape VoidSymbol Meta_bracketleft Meta_bracketleft Meta_bracketleft Meta_bracketleft
> keycode 27 = bracketright braceright bracketright braceright Control_bracketright VoidSymbol Control_bracketright VoidSymbol Meta_bracketright Meta_bracketright Meta_bracketright Meta_bracketright
> keycode 28 = Return
> diff --git a/data/keymaps/i386/qwertz/sk-qwertz.map b/data/keymaps/i386/qwertz/sk-qwertz.map
> index fc1218d..4376a4c 100644
> --- a/data/keymaps/i386/qwertz/sk-qwertz.map
> +++ b/data/keymaps/i386/qwertz/sk-qwertz.map
> @@ -41,7 +41,7 @@ keycode 11 = zero parenright eacute zero VoidSymbol VoidSymbol VoidSymbol VoidS
> keycode 12 = minus underscore equal percent Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_minus Meta_minus Meta_minus
> keycode 13 = equal plus dead_acute dead_circumflex VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_equal Meta_equal Meta_equal
> keycode 14 = Delete Delete Delete Delete VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Delete Meta_Delete Meta_Delete Meta_Delete
> -keycode 15 = Tab Meta_Tab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
> +keycode 15 = Tab Backtab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab
> keycode 26 = bracketleft braceleft uacute slash Escape VoidSymbol Escape VoidSymbol Meta_bracketleft Meta_bracketleft Meta_bracketleft Meta_bracketleft
> keycode 27 = bracketright braceright adiaeresis parenleft Control_bracketright VoidSymbol Control_bracketright VoidSymbol Meta_bracketright Meta_bracketright Meta_bracketright Meta_bracketright
> keycode 28 = Return
> diff --git a/data/keymaps/mac/all/mac-fr.map b/data/keymaps/mac/all/mac-fr.map
> index 9896aa6..a300cf1 100644
> --- a/data/keymaps/mac/all/mac-fr.map
> +++ b/data/keymaps/mac/all/mac-fr.map
> @@ -170,7 +170,7 @@ keycode 14 = Delete BackSpace
> altgr control keycode 14 = KeyboardSignal
>
> keycode 15 = Tab
> - shift keycode 15 = Meta_Tab
> + shift keycode 15 = Backtab
> control keycode 15 = Meta_Tab
> alt keycode 15 = Last_Console
>
> diff --git a/data/keymaps/mac/include/mac-linux-keys-bare.inc b/data/keymaps/mac/include/mac-linux-keys-bare.inc
> index 40a81f5..75d3353 100644
> --- a/data/keymaps/mac/include/mac-linux-keys-bare.inc
> +++ b/data/keymaps/mac/include/mac-linux-keys-bare.inc
> @@ -166,7 +166,7 @@ keycode 113 = Pause # Break/Pause
> keycode 36 = Return
> alt keycode 36 = Meta_Control_m
> keycode 48 = Tab
> - shift keycode 48 = Meta_Tab
> + shift keycode 48 = Backtab
> alt keycode 48 = Meta_Tab
> keycode 49 = space space space nul
> keycode 51 = Delete Remove
> diff --git a/data/keymaps/pine/en.map b/data/keymaps/pine/en.map
> index 36b7de2..c1f50be 100644
> --- a/data/keymaps/pine/en.map
> +++ b/data/keymaps/pine/en.map
> @@ -34,7 +34,8 @@ keycode 11 = zero parenright plus nul nul Meta_zero
> keycode 14 = BackSpace
>
> # Second Row
> -keycode 15 = Tab nul nul nul nul nul Meta_Tab
> +keycode 15 = Tab Backtab nul nul nul nul Meta_Tab
> +alt keycode 15 = Meta_Tab
> keycode 16 = q Q nul Control_q
> keycode 17 = w W nul Control_w
> keycode 18 = e E nul Control_e
> diff --git a/data/keymaps/sun/sunt4-es.map b/data/keymaps/sun/sunt4-es.map
> index a270126..4242b60 100644
> --- a/data/keymaps/sun/sunt4-es.map
> +++ b/data/keymaps/sun/sunt4-es.map
> @@ -137,7 +137,7 @@ keycode 50 = KP_Period
> control alt keycode 50 = Boot
> keycode 51 =
> keycode 52 = Find
> -keycode 53 = Tab Meta_Tab
> +keycode 53 = Tab Backtab
> alt keycode 53 = Meta_Tab
> keycode 54 = q
> keycode 55 = w
> diff --git a/data/keymaps/sun/sunt4-fi-latin1.map b/data/keymaps/sun/sunt4-fi-latin1.map
> index 7f01fd5..0e5319b 100644
> --- a/data/keymaps/sun/sunt4-fi-latin1.map
> +++ b/data/keymaps/sun/sunt4-fi-latin1.map
> @@ -131,7 +131,7 @@ keycode 50 = KP_Period
> control alt keycode 50 = Boot
> keycode 51 =
> keycode 52 =
> -keycode 53 = Tab Meta_Tab
> +keycode 53 = Tab Backtab
> alt keycode 53 = Meta_Tab
> keycode 54 = q
> keycode 55 = w
> diff --git a/data/keymaps/sun/sunt4-no-latin1.map b/data/keymaps/sun/sunt4-no-latin1.map
> index a61225c..cfa7424 100644
> --- a/data/keymaps/sun/sunt4-no-latin1.map
> +++ b/data/keymaps/sun/sunt4-no-latin1.map
> @@ -134,7 +134,7 @@ keycode 50 = KP_Period
> control alt keycode 50 = Boot
> keycode 51 =
> keycode 52 = Find
> -keycode 53 = Tab Meta_Tab
> +keycode 53 = Tab Backtab
> alt keycode 53 = Meta_Tab
> keycode 54 = q
> keycode 55 = w
> diff --git a/data/keymaps/sun/sunt5-de-latin1.map b/data/keymaps/sun/sunt5-de-latin1.map
> index c14d6d3..a4844a2 100644
> --- a/data/keymaps/sun/sunt5-de-latin1.map
> +++ b/data/keymaps/sun/sunt5-de-latin1.map
> @@ -131,7 +131,7 @@ keycode 50 = KP_Period
> control alt keycode 50 = Boot
> keycode 51 =
> keycode 52 = Find
> -keycode 53 = Tab Meta_Tab
> +keycode 53 = Tab Backtab
> alt keycode 53 = Meta_Tab
> keycode 54 = +q +Q at
> keycode 55 = w
> diff --git a/data/keymaps/sun/sunt5-es.map b/data/keymaps/sun/sunt5-es.map
> index 727d9e8..66aa362 100644
> --- a/data/keymaps/sun/sunt5-es.map
> +++ b/data/keymaps/sun/sunt5-es.map
> @@ -143,7 +143,7 @@ keycode 50 = KP_Period
> control alt keycode 50 = Boot
> keycode 51 =
> keycode 52 = Find
> -keycode 53 = Tab Meta_Tab
> +keycode 53 = Tab Backtab
> alt keycode 53 = Meta_Tab
> keycode 54 = q
> keycode 55 = w
> diff --git a/data/keymaps/sun/sunt5-fi-latin1.map b/data/keymaps/sun/sunt5-fi-latin1.map
> index 0d0fb9e..242a636 100644
> --- a/data/keymaps/sun/sunt5-fi-latin1.map
> +++ b/data/keymaps/sun/sunt5-fi-latin1.map
> @@ -134,7 +134,7 @@ keycode 50 = KP_Period
> control alt keycode 50 = Boot
> keycode 51 =
> keycode 52 = Find
> -keycode 53 = Tab Meta_Tab
> +keycode 53 = Tab Backtab
> alt keycode 53 = Meta_Tab
> keycode 54 = q
> keycode 55 = w
> diff --git a/data/keymaps/sun/sunt5-ru.map b/data/keymaps/sun/sunt5-ru.map
> index d299a72..2543841 100644
> --- a/data/keymaps/sun/sunt5-ru.map
> +++ b/data/keymaps/sun/sunt5-ru.map
> @@ -181,7 +181,7 @@ keycode 50 = KP_Period
> altgr control alt keycode 50 = Boot
> keycode 51 =
> keycode 52 = Find
> -keycode 53 = Tab Meta_Tab
> +keycode 53 = Tab Backtab
> alt keycode 53 = Meta_Tab
> altgr alt keycode 53 = Meta_Tab
> keycode 54 = q
> diff --git a/data/keymaps/sun/sunt5-uk.map b/data/keymaps/sun/sunt5-uk.map
> index 7c3cc44..db189eb 100644
> --- a/data/keymaps/sun/sunt5-uk.map
> +++ b/data/keymaps/sun/sunt5-uk.map
> @@ -54,7 +54,7 @@ keycode 41 = equal plus
> keycode 43 = Delete Delete
> control keycode 43 = Control_underscore
> alt keycode 43 = Meta_Delete
> -keycode 53 = Tab Meta_Tab
> +keycode 53 = Tab Backtab
> alt keycode 53 = Meta_Tab
> keycode 54 = q
> keycode 55 = w
> diff --git a/src/libkeymap/parser.y b/src/libkeymap/parser.y
> index 2cd509f..0602cd8 100644
> --- a/src/libkeymap/parser.y
> +++ b/src/libkeymap/parser.y
> @@ -106,6 +106,23 @@ strings_as_usual(struct lk_ctx *ctx)
> return -1;
> }
> }
> +
> + /*
> + * Backtab (Shift+Tab) is assigned to KT_FN index 255, the last
> + * available slot with no kernel UAPI name (K_F245 = KT_FN index 254
> + * is the last kernel-defined entry). It cannot be added to the array
> + * above without displacing the existing named entries F21..F245.
> + */
> + {
> + struct kbsentry ke;
> +
> + ke.kb_func = 255; /* Backtab, see syms.ktyp.h */
> + strlcpy((char *)ke.kb_string, "\033[Z", sizeof(ke.kb_string));
> +
> + if (lk_add_func(ctx, &ke) == -1)
> + return -1;
> + }
> +
> return 0;
> }
>
> diff --git a/src/libkeymap/syms.ktyp.h b/src/libkeymap/syms.ktyp.h
> index 82c87a6..504d67e 100644
> --- a/src/libkeymap/syms.ktyp.h
> +++ b/src/libkeymap/syms.ktyp.h
> @@ -323,7 +323,14 @@ static const char *const fn_syms[] = {
> "F231", "F232", "F233", "F234", "F235",
> "F236", "F237", "F238", "F239", "F240",
> "F241", "F242", "F243", "F244", "F245",
> - "F246" /* there are 10 keys named Insert etc., total 256 */
> + /*
> + * The kernel UAPI defines KT_FN keys F1..F20 (indices 0..19),
> + * then Find/Insert/Remove/Select/Prior/Next/Macro/Help/Do/Pause
> + * (indices 20..29), then F21..F245 (indices 30..254).
> + * Index 255 is the last available slot with no kernel UAPI name,
> + * so Backtab is placed here to avoid shifting any existing indices.
> + */
> + "Backtab" /* there are 11 keys named Find etc., total 256 */
> };
>
> /*
--
Rgrds, legion
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-02-23 9:10 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-20 22:07 [PATCH v3] Add Backtab keysym and update keymaps to use it for Shift+Tab Nicolas Pitre
2026-02-23 9:10 ` Alexey Gladkov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox