I have a Lenovo Duet 3 Bluetooth keyboard, which works fine when connected physically (it has 5 pins for that) to its laptop, and also works as expected when I connect it to my Android phone.
However, I cannot get it to work under (Arch) Linux. Kernel and bluetooth stack (bluez-libs etc.) are up to date, so I connect the device using bluetoothctl (output abbreviated for clarity):
[bluetooth]# power on
Changing power on succeeded
[bluetooth]# scan on
Discovery started
[NEW] Device D6:45:02:72:41:4F Duet 3 BT
[bluetooth]# pair D6:45:02:72:41:4F
Attempting to pair with D6:45:02:72:41:4F
[CHG] Device D6:45:02:72:41:4F Connected: yes
[CHG] Device D6:45:02:72:41:4F ServicesResolved: yes
[CHG] Device D6:45:02:72:41:4F Paired: yes
[NEW] Primary Service (Handle 0x0000)
/org/bluez/hci0/dev_D6_45_02_72_41_4F/service000a
00001801-0000-1000-8000-00805f9b34fb
Generic Attribute Profile
... {more new services follow, e.g. for Dev. Information, Battery etc.}
Pairing successful
[Duet 3 BT]# trust D6:45:02:72:41:4F
Changing D6:45:02:72:41:4F trust succeeded
[Duet 3 BT]# connect D6:45:02:72:41:4F
Attempting to connect to D6:45:02:72:41:4F
Connection successful
[Lenovo Duet 3 BT Folio]#
The device stays connected, and I can see battery information. So far, so good, but typing anything or using the trackpad does absolutely nothing, so it's pretty useless as an input device.