Re: [PATCH] Input: atkbd: Fix so copilot key generates F23 keycode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



+Cc Peter Hutterer

Hi Mark,

Thank you for your patch.

On 19-Dec-24 4:18 PM, Mark Pearson wrote:
> The copilot key on Lenovo laptops doesn't work as scancode 0x6e, which it
> generates is not mapped.
> This change lets scancode 0x6e generate keycode 193 (F23 key) which is
> the expected value for copilot.
> 
> Tested on T14s G6 AMD.
> I've had reports from other users that their ThinkBooks are using the same
> scancode.

Hmm, I'm not sure mapping this to KEY_F23 is the right thing to do,
there are 2 issues with this approach:

1. /usr/share/X11/xkb/symbols/inet currently maps this to
   XF86TouchpadOff as F20 - F23 where repurposed to
   TouchPad on/off/toggle / micmute to work around X11
   not allowing key-codes > 247.

   We are actually working on removing this X11 workaround
   to make F20-F23 available as normal key-codes again
   for keyboards which actually have such keys.

2. There are some keyboards which have an actual F23 key
   and mapping the co-pilot key to that and then having
   desktop environments grow default keybindings on top
   of that will basically mean clobbering the F23 key or
   at least making it harder to use.

I think was is necessary instead is to add a new
KEY_COPILOT to include/uapi/linux/input-event-codes.h
and use that instead.

Peter, I thought I read somewhere that you were looking
into mapping the copilot key to a new  KEY_COPILOT evdev
key for some other keyboards?

Regards,

Hans



> 
> Signed-off-by: Mark Pearson <mpearson-lenovo@xxxxxxxxx>
> ---
>  drivers/input/keyboard/atkbd.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
> index 5855d4fc6e6a..f7b08b359c9c 100644
> --- a/drivers/input/keyboard/atkbd.c
> +++ b/drivers/input/keyboard/atkbd.c
> @@ -89,7 +89,7 @@ static const unsigned short atkbd_set2_keycode[ATKBD_KEYMAP_SIZE] = {
>  	  0, 46, 45, 32, 18,  5,  4, 95,  0, 57, 47, 33, 20, 19,  6,183,
>  	  0, 49, 48, 35, 34, 21,  7,184,  0,  0, 50, 36, 22,  8,  9,185,
>  	  0, 51, 37, 23, 24, 11, 10,  0,  0, 52, 53, 38, 39, 25, 12,  0,
> -	  0, 89, 40,  0, 26, 13,  0,  0, 58, 54, 28, 27,  0, 43,  0, 85,
> +	  0, 89, 40,  0, 26, 13,  0,193, 58, 54, 28, 27,  0, 43,  0, 85,
>  	  0, 86, 91, 90, 92,  0, 14, 94,  0, 79,124, 75, 71,121,  0,  0,
>  	 82, 83, 80, 76, 77, 72,  1, 69, 87, 78, 81, 74, 55, 73, 70, 99,
>  





[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux