public inbox for kbd@lists.linux.dev
 help / color / mirror / Atom feed
* [PATCH v2] Add Backtab keysym and update keymaps to use it for Shift+Tab
@ 2026-02-17 17:28 Nicolas Pitre
  2026-02-20 13:02 ` Alexey Gladkov
  0 siblings, 1 reply; 2+ messages in thread
From: Nicolas Pitre @ 2026-02-17 17:28 UTC (permalink / raw)
  To: Alexey Gladkov; +Cc: kbd

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 <nico@fluxnic.net>

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..fcb8c9b 100644
--- a/src/libkeymap/parser.y
+++ b/src/libkeymap/parser.y
@@ -79,7 +79,7 @@ static int
 strings_as_usual(struct lk_ctx *ctx)
 {
 	/*
-	 * 26 strings, mostly inspired by the VT100 family
+	 * 27 strings, mostly inspired by the VT100 family
 	 */
 	const char *stringvalues[] = {
 		/* F1 .. F20 */
@@ -90,8 +90,8 @@ strings_as_usual(struct lk_ctx *ctx)
 		"\033[31~", "\033[32~", "\033[33~", "\033[34~",
 		/* Find,    Insert,     Remove,     Select,     Prior */
 		"\033[1~",  "\033[2~",  "\033[3~",  "\033[4~",  "\033[5~",
-		/* Next,    Macro,      Help,       Do,         Pause */
-		"\033[6~",  NULL,       NULL,       NULL,       NULL
+		/* Next,    Macro,      Help,       Do,         Pause,    Backtab */
+		"\033[6~",  NULL,       NULL,       NULL,       NULL,     "\033[Z"
 	};
 	unsigned char i;
 
diff --git a/src/libkeymap/syms.ktyp.h b/src/libkeymap/syms.ktyp.h
index 82c87a6..cd0404c 100644
--- a/src/libkeymap/syms.ktyp.h
+++ b/src/libkeymap/syms.ktyp.h
@@ -278,6 +278,7 @@ static const char *const fn_syms[] = {
 	"Help",
 	"Do",
 	"Pause",
+	"Backtab",
 	"F21", "F22", "F23", "F24", "F25",
 	"F26", "F27", "F28", "F29", "F30",
 	"F31", "F32", "F33", "F34", "F35",
@@ -323,7 +324,7 @@ 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 */
+	/* 11 keys named Find through Backtab, total 256 */
 };
 
 /*

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-02-20 13:02 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-17 17:28 [PATCH v2] Add Backtab keysym and update keymaps to use it for Shift+Tab Nicolas Pitre
2026-02-20 13:02 ` Alexey Gladkov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox