Re: [PATCH] HID: apple: Add GANSS GS3104T PRO to the non-Apple keyboard list

From: Jiri Kosina

Date: Fri Oct 16 2026 - 05:30:26 EST


On Sun, 4 Oct 2026, DemonPlayer wrote:

> The GANSS GS3104T PRO is a tri-mode mechanical keyboard that reports
> Apple's vendor and product IDs (05ac:024f) over USB, over its 2.4 GHz
> receiver and over Bluetooth, so that macOS recognises it without a
> vendor driver. hid->name is built from the product string only and it
> differs per connection mode:
>
> USB: "HFD GS3104T PRO" (iManufacturer is "HFD")
> 2.4 GHz: "GS3104T-PRO 2.4G" (no iManufacturer)
> Bluetooth: "GS3104T PRO"
>
> All three descriptors carry the Apple Fn key usage (Usage Page 0xFF00,
> Usage 0x03), so hid-apple claims the device in every mode and applies
> the Apple function key layout: with the default fnmode=3,
> hidinput_apple_event() resolves real_fnmode to 1 (fkeyslast), so the
> F-row sends the media keys and Fn has to be held down to get F1-F12.
> That is not the behaviour the keyboard has on other operating systems.
>
> hid-apple already keeps a list of such keyboards and switches them to
> the fnmode=2 (fkeysfirst) behaviour, but the match is a case-sensitive
> strncmp() prefix test against hid->name and none of the three names
> matches an existing entry: the "GANSS" one misses because the brand does
> not appear in any of the descriptors, and "hfd.cn" does not match
> either. The non-Apple handling is thus never enabled and users have to
> pass hid_apple.fnmode=2 on the kernel command line to get the expected
> default.
>
> Add all three names to non_apple_keyboards[].

Applied to hid.git#for-7.3/upstream-fixes, thanks.

--
Jiri Kosina
SUSE Labs