Re: [PATCH] Add Backtab keysym and update keymaps to use it for Shift+Tab

Alexey Gladkov <[email protected]> Tue, 17 Feb 2026 11:28:17 +0100
Newsgroups dev.linux.lists.kbd
Message-ID <[email protected]>
On Mon, Feb 16, 2026 at 10:23:46PM -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 <[email protected]>

Your patch not only does that, but also changes compose. Could you explain
what those changes are and make them into a separate patch?

> diff --git a/data/keymaps/i386/qwerty/cz.map b/data/keymaps/i386/qwerty/cz.map
> index cc02b12..f9e5494 100644
> --- a/data/keymaps/i386/qwerty/cz.map
> +++ b/data/keymaps/i386/qwerty/cz.map
> @@ -39,7 +39,7 @@
>  #        4) AltGr-H     => ` (zpetny apostrof)
>  #        5) AltGr-J     => ' (apostrof)
>  #        6) AltGr-M     => ^ (jiz nikdy vice us-klavesnice) 
> -#        7) AltGr-Z     => ? (stupen "degree")
> +#        7) AltGr-Z     => � (stupen "degree")
>  #
>  #
>  # Mrtve klavesy (u obou klavesnic - CESKE i US)
> @@ -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  \
> @@ -1337,97 +1337,97 @@ string F22 = ""
>  # --
>  #
>  # dead_grave => pouzito pro krouzek a tecku_nad_pismenem (a znak stupne)
> -compose '`' 'u' to '?
> -compose '`' 'U' to '?
> -compose '`' 'z' to '?'
> -compose '`' 'Z' to '?'
> +compose '`' 'u' to '�'
> +compose '`' 'U' to '�'
> +compose '`' 'z' to '�'
> +compose '`' 'Z' to '�'
>  # dead_acute (pouze ceske)
> -compose '\'' 'a' to '?
> -compose '\'' 'A' to '?'
> -compose '\'' 'e' to '?
> -compose '\'' 'E' to '?
> -compose '\'' 'i' to '?
> -compose '\'' 'I' to '?
> -compose '\'' 'o' to '?
> -compose '\'' 'O' to '?
> -compose '\'' 'u' to '?
> -compose '\'' 'U' to '?
> -compose '\'' 'y' to '?
> -compose '\'' 'Y' to '?
> +compose '\'' 'a' to '�'
> +compose '\'' 'A' to '�'
> +compose '\'' 'e' to '�'
> +compose '\'' 'E' to '�'
> +compose '\'' 'i' to '�'
> +compose '\'' 'I' to '�'
> +compose '\'' 'o' to '�'
> +compose '\'' 'O' to '�'
> +compose '\'' 'u' to '�'
> +compose '\'' 'U' to '�'
> +compose '\'' 'y' to '�'
> +compose '\'' 'Y' to '�'
>  # dead_caron (pouze ceske)
> -compose '^' 'u' to '?
> -compose '^' 'U' to '?
> -compose '^' 'c' to '?
> -compose '^' 'C' to '?
> -compose '^' 'd' to '?
> -compose '^' 'D' to '?
> -compose '^' 'e' to '?
> -compose '^' 'E' to '?
> -compose '^' 'n' to '?
> -compose '^' 'N' to '?
> -compose '^' 'r' to '?
> -compose '^' 'R' to '?
> -compose '^' 's' to '?'
> -compose '^' 'S' to '?'
> -compose '^' 't' to '?'
> -compose '^' 'T' to '?'
> -compose '^' 'z' to '?'
> -compose '^' 'Z' to '?'
> +compose '^' 'u' to '�'
> +compose '^' 'U' to '�'
> +compose '^' 'c' to '�'
> +compose '^' 'C' to '�'
> +compose '^' 'd' to '�'
> +compose '^' 'D' to '�'
> +compose '^' 'e' to '�'
> +compose '^' 'E' to '�'
> +compose '^' 'n' to '�'
> +compose '^' 'N' to '�'
> +compose '^' 'r' to '�'
> +compose '^' 'R' to '�'
> +compose '^' 's' to '�'
> +compose '^' 'S' to '�'
> +compose '^' 't' to '�'
> +compose '^' 'T' to '�'
> +compose '^' 'z' to '�'
> +compose '^' 'Z' to '�'
>  #
>  # Zde je misto pro neceske znaky generovane pres mrtvou klavesu
>  #
>  # dead_acute (neceske znaky)
> -compose '\'' 'c' to '?
> -compose '\'' 'C' to '?
> -compose '\'' 'l' to '?
> -compose '\'' 'L' to '?
> -compose '\'' 'n' to '?
> -compose '\'' 'N' to '?
> -compose '\'' 'r' to '?
> -compose '\'' 'R' to '?'
> -compose '\'' 's' to '?'
> -compose '\'' 'S' to '?'
> -compose '\'' 'z' to '?'
> -compose '\'' 'Z' to '?'
> +compose '\'' 'c' to '�'
> +compose '\'' 'C' to '�'
> +compose '\'' 'l' to '�'
> +compose '\'' 'L' to '�'
> +compose '\'' 'n' to '�'
> +compose '\'' 'N' to '�'
> +compose '\'' 'r' to '�'
> +compose '\'' 'R' to '�'
> +compose '\'' 's' to '�'
> +compose '\'' 'S' to '�'
> +compose '\'' 'z' to '�'
> +compose '\'' 'Z' to '�'
>  # dead_caron (neceske znaky)
> -compose '^' 'l' to '?'
> -compose '^' 'L' to '?'
> +compose '^' 'l' to '�'
> +compose '^' 'L' to '�'
>  # dead_circumflex (neceske znaky)
> -compose '^' 'a' to '?
> -compose '^' 'A' to '?
> -compose '^' 'i' to '?
> -compose '^' 'I' to '?
> -compose '^' 'o' to '?
> -compose '^' 'O' to '?
> +compose '^' 'a' to '�'
> +compose '^' 'A' to '�'
> +compose '^' 'i' to '�'
> +compose '^' 'I' to '�'
> +compose '^' 'o' to '�'
> +compose '^' 'O' to '�'
>  # dead_tilde (neceske znaky) => nedefinovan znak v ISO-8859-2
>  #
>  # dead_breve (neceske_znaky)
> -compose '~' 'a' to '?
> -compose '~' 'A' to '?
> +compose '~' 'a' to '�'
> +compose '~' 'A' to '�'
>  # dead_doubleacute (neceske znaky)
> -compose '~' 'o' to '?
> -compose '~' 'O' to '?
> -compose '~' 'u' to '?
> -compose '~' 'U' to '?
> +compose '~' 'o' to '�'
> +compose '~' 'O' to '�'
> +compose '~' 'u' to '�'
> +compose '~' 'U' to '�'
>  # dead_diaeresis (neceske znaky)
> -compose '"' 'a' to '?
> -compose '"' 'A' to '?
> -compose '"' 'e' to '?
> -compose '"' 'E' to '?
> -compose '"' 'o' to '?
> -compose '"' 'O' to '?
> -compose '"' 'u' to '?
> -compose '"' 'U' to '?
> +compose '"' 'a' to '�'
> +compose '"' 'A' to '�'
> +compose '"' 'e' to '�'
> +compose '"' 'E' to '�'
> +compose '"' 'o' to '�'
> +compose '"' 'O' to '�'
> +compose '"' 'u' to '�'
> +compose '"' 'U' to '�'
>  # dead_cedilla (neceske znaky)
> -compose ',' 'c' to '?
> -compose ',' 'C' to '?
> -compose ',' 's' to '?'
> -compose ',' 'S' to '?'
> -compose ',' 't' to '?'
> -compose ',' 'T' to '?
> +compose ',' 'c' to '�'
> +compose ',' 'C' to '�'
> +compose ',' 's' to '�'
> +compose ',' 'S' to '�'
> +compose ',' 't' to '�'
> +compose ',' 'T' to '�'
>  # dead_ogonek (neceske znaky)
> -compose ',' 'a' to '?'
> -compose ',' 'A' to '?'
> -compose ',' 'e' to '?
> -compose ',' 'E' to '?
> +compose ',' 'a' to '�'
> +compose ',' 'A' to '�'
> +compose ',' 'e' to '�'
> +compose ',' 'E' to '�'
>  

-- 
Rgrds, legion