From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0F71A32D0EE for ; Fri, 20 Feb 2026 13:02:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771592566; cv=none; b=CzBa7A1MHCBkWVPh4PYU7e3rzw2RV0iFjZZ32dkaY1kjHexvH/5t6BCtDvhWPmIDgEkT0cIFejivtaDBPvdIr+9zBdEu8cBIltrpbeLDrYciK8GWdacfFLwwjTeXs4E82GKoW6GlaeKKU00klqPxJvqOVE2zOJ8eGJs069dD0Jo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771592566; c=relaxed/simple; bh=Hkqoh9pTSvF1jqOJsYaVHXbwZI0W770L9oROEHpAVkY=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=AKYVfYOUJm5XclZHjXKX/eiFWBb+eGN8CKg3am+G7B69ysfkxY4mNLoVZTefS/91BFUonoo2rdyWS5q6imwmDq+Yn4y5BhhpKKjO0zhVBH3AlwPgFYXcKX1Q2KaxdtYPmpeOZ07sJH7LY6+wPvAeCwhjX42Ky/GUPYTBEedpb4o= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Oomz4r8j; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Oomz4r8j" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D016DC116C6; Fri, 20 Feb 2026 13:02:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1771592565; bh=Hkqoh9pTSvF1jqOJsYaVHXbwZI0W770L9oROEHpAVkY=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Oomz4r8jEuOh7VvoVbklt4bmqkGPYuxQwaRVOSUkNtwrbHSOG3Qa/52kx514XnJB0 YMgPW82Ko6SxQRpghJJCg95O11wkJs4l90JF+C1UWxuQkqTQ5Sf8Pb3s3V7pPGtJNI Qwf533JtJDncOh8+KW4kL0wIr41MLNa3J+sQy4Ik7PMSwdzLDaNAbwOsZdkBbufM4F PUtFSCuH3qh87U1RSHtMxKcsshoTW43WoHISyBhl4zxNQsJUp3f8t/Be7zWjwQw2rG NYnnMe3JfzBdttQy/9pYdB0DGg3jpdsgN611YMZ231GXd3bw67GH7+DXb4gWnpgHyB P8Be5cjsF3L0g== Date: Fri, 20 Feb 2026 14:02:41 +0100 From: Alexey Gladkov To: Nicolas Pitre Cc: kbd@lists.linux.dev Subject: Re: [PATCH v2] Add Backtab keysym and update keymaps to use it for Shift+Tab Message-ID: References: <879pq1p7-76rr-n272-3922-3r3q04q9r7n7@syhkavp.arg> Precedence: bulk X-Mailing-List: kbd@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <879pq1p7-76rr-n272-3922-3r3q04q9r7n7@syhkavp.arg> On Tue, Feb 17, 2026 at 12:28:35PM -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 Sorry for the delay. This change is user visible and my tests broke. > 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", I noticed that this change complicates the use of the uapi kernel. You added a value in the middle and shifted the other values. So K_F21 became "Backtab", and K_F22 in kbd is named "F21", and so on. This will confuse users. ioctl(, KDSKBSENT, {kb_func=KVAL(K_PGUP), kb_string="\33[5~"}) = 0 ioctl(, KDSKBSENT, {kb_func=KVAL(K_PGDN), kb_string="\33[6~"}) = 0 ioctl(, KDSKBSENT, {kb_func=KVAL(K_F21), kb_string="\33[Z"}) = 0 $ grep -A1 -B1 -w K_F21 include/uapi/linux/keyboard.h #define K_PAUSE K(KT_FN,29) #define K_F21 K(KT_FN,30) #define K_F22 K(KT_FN,31) > @@ -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 */ > }; > > /* > -- Rgrds, legion