linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "José Expósito" <jose.exposito89@gmail.com>
To: Hilton Chain <hako@ultrarare.space>
Cc: bryancain3@gmail.com, jikos@kernel.org,
	benjamin.tissoires@redhat.com, linux-kernel@vger.kernel.org,
	linux-input@vger.kernel.org
Subject: Re: [PATCH] HID: apple: Reset quirks when Fn key is not found
Date: Mon, 30 May 2022 08:18:12 +0200	[thread overview]
Message-ID: <20220530061812.GA10391@elementary> (raw)
In-Reply-To: <20220530083752.1973a905@ultrarare.space>

On Mon, May 30, 2022 at 08:42:32AM +0800, Hilton Chain wrote:
> > My understanding of Bryan's patch (in cc) was that the new config option
> > worked out of the box for Keychron and Apple keyboards and allowed for
> > manual configuration where required.
> >
> > Could you explain a bit which bug is fixed by reverting these 2
> > commits, please? I don't own a Keychron keyboard for testing, so it is
> > not obvious to me why this change is required.
> 
> I own a GANSS keyboard which encounters this issue as well, related device
> information given by `lsusb -v` below:
> 
>     idVendor           0x05ac Apple, Inc.
>     idProduct          0x024f Aluminium Keyboard (ANSI)
>     iManufacturer           1 SONiX
>     iProduct                2 USB DEVICE
> 
> As I searching through, I found similar reports regarding another GANSS
> model[1], and other brands like Varmilo[2] (a lot!) and Keychron. As a
> common pattern, they mostly use 05ac:024f.
> 
> Currently I have two idea:
> 
> 1. Modify Bryan's patch, so that fnmode default to 2 if device name not
> starting with "Apple" (But I can't validate my assumption since I don't
> own any Apple keyboards), I'll attach this patch in the next email.

That could be problematic because Apple keyboards can be renamed after
connecting them to a Mac.

For example, the name of my keyboard is: "José Expósito’s Keyboard".
 
> 2. Find out which quirk pattern solves this issue brute-forcely, I may
> attach this patch later when I finally find a solution.
> 
> What's your opinion?
> 
> Stay boiled,
> Hilton Chain
> 
> ---
> [1]: https://www.amazon.com/gp/customer-reviews/R1EV0B1FG21GGD
> [2]: https://unix.stackexchange.com/questions/604791/keyboard-function-keys-always-trigger-media-shortcuts-regardless-of-whether-fn

I think it'd be safer to assume that the device is an Apple keyboard
and create exceptions for know non-Apple keyboards  because the
majority of the devices handled by this driver are Apple keyboards and
because there is already a config option available (real_fnmode) to fix
the problematic devices in the meanwhile.

In my opinion, creating a function like "apple_is_non_apple_keyboard"
(or similar) containing all the rules to identify devices from
Keychron, GANSS, etc could do the trick. Something similar to:

  if (apple_is_non_apple_keyboard(hdev)) {
          hid_info(hdev, "Non-apple keyboard detected; function keys will default to fnmode=2 behavior\n");
          asc->quirks |= APPLE_IS_NON_APPLE;
  }

Unfortunately, I can't think of a generic way to detect those devices
as they have the same vendor and product as the Apple ones :S

Best wishes,
Jose

  parent reply	other threads:[~2022-05-30  6:18 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-29 10:02 [PATCH] HID: apple: Reset quirks when Fn key is not found Hilton Chain
2022-05-29 18:20 ` José Expósito
2022-05-30  0:42   ` Hilton Chain
2022-05-30  1:42     ` [PATCH] HID: apple: Properly handle function keys on misset non-apple keyboards Hilton Chain
2022-05-30  6:18     ` José Expósito [this message]
2022-05-31 14:11       ` [PATCH] HID: apple: Reset quirks when Fn key is not found Hilton Chain
2022-05-31 14:33         ` [PATCH v2] HID: apple: Workaround for non-Apple keyboards Hilton Chain
2022-05-31 17:20           ` José Expósito
2022-05-31 19:50             ` Bryan Cain
2022-05-31 23:13               ` hako
2022-05-31 23:26                 ` [PATCH v3] HID: apple: Properly handle function keys on non-Apple keyboard Hilton Chain
2022-06-01  4:17                   ` [PATCH v4] " Hilton Chain
2022-06-01 17:49                     ` José Expósito
2022-06-02  8:12                       ` [PATCH v5] " Hilton Chain
2022-06-02 21:00                         ` Bryan Cain
2022-06-03 17:53                         ` José Expósito
2022-06-08  9:54                         ` Jiri Kosina
2022-06-18 13:51                           ` [PATCH v6] " Hilton Chain
2022-06-02  0:35                   ` [PATCH v3] " Bryan Cain

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220530061812.GA10391@elementary \
    --to=jose.exposito89@gmail.com \
    --cc=benjamin.tissoires@redhat.com \
    --cc=bryancain3@gmail.com \
    --cc=hako@ultrarare.space \
    --cc=jikos@kernel.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).