Built-in keyboard issues on tuxedo computer

Hi there,

I have a ‘TUXEDO InfinityBook Pro 14 v5’, with a self-installed manjaro on it. I have the following problem with my internal keyboard and the default behaviour of the Fn key:

When I boot up my laptop, I’ll first have to put in my encrypted harddrive password. This works fine and without any problems. Next, is the GDM login, where I have to put in a different password, which works well without any problems. After the login, it doesn’t matter what I do, but the Fn key seams to be “always on”, so for example the (german layout) key “O”, which would only print a ‘6’ with Fn enabled is always printing ‘6’ and I have to press Fn to get to the normal configuration, which would be the ‘O’.

So, until the GDM login everything works normal, no Fn “default on”, afterwards it’s flipped.

Next step: docking station. I’ll add my docking station via USB-C (I don’t know if that matters, but it is this one: i-tec triple 4k dock), where (due to some displaylink problems) the external monitors won’t work, but the attached mouse and keyboard work quite well. That external keyboard has no Fn key, so that’s working everytime. But, now the most weird thing: After I’ve plugged in the docking station, the Fn key switches back to “default off”, and I can type like it should be, both with the internal as well as external keyboard.

So, I’m clueless. Does anybody can point me in any direction where to log (configuration files?), what to try (how to debug?) or, that would be awesome, already has a solution for that problem :slight_smile:

I don’t know what information could help to move on, but here are some details:

Kernel: 5.9.11-2-MANJARO
Desktop: GNOME 3.38.1 tk: GTK 3.24.23 wm: gnome-shell dm: GDM 3.38.2 
Display: server: X.org 1.20.9 compositor: gnome-shell driver: intel 

Run libinput debug-events --show-keycodes and check what it shows when you press the keys in question.

Thanks for the suggestion, the output looks like this:

    ❯ sudo libinput debug-events --show-keycodes
    -event3   DEVICE_ADDED     Power Button                      seat0 default group1  cap:k
    -event10  DEVICE_ADDED     Video Bus                         seat0 default group2  cap:k
    -event0   DEVICE_ADDED     Power Button                      seat0 default group3  cap:k
    -event2   DEVICE_ADDED     Lid Switch                        seat0 default group4  cap:S
    -event1   DEVICE_ADDED     Sleep Button                      seat0 default group5  cap:k
    -event9   DEVICE_ADDED     Chicony USB2.0 Camera: Chicony    seat0 default group6  cap:k
    -event5   DEVICE_ADDED     Intel HID events                  seat0 default group7  cap:k
    -event4   DEVICE_ADDED     AT Translated Set 2 keyboard      seat0 default group8  cap:k
    -event8   DEVICE_ADDED     SynPS/2 Synaptics TouchPad        seat0 default group9  cap:pg  size 81x39mm tap(dl off) left scroll-nat scroll-2fg-edge dwt-on
    -event7   DEVICE_ADDED     TUXEDO Keyboard                   seat0 default group10 cap:k
    -event4   KEYBOARD_KEY     +0.000s	KEY_KP0 (82) pressed
    0 event4   KEYBOARD_KEY     +0.095s	KEY_KP0 (82) released
     event4   KEYBOARD_KEY     +0.859s	KEY_M (50) pressed
    m event4   KEYBOARD_KEY     +0.970s	KEY_M (50) released
     event4   KEYBOARD_KEY     +2.716s	KEY_LEFTCTRL (29) pressed
     event4   KEYBOARD_KEY     +3.610s	KEY_C (46) pressed
    ^C

in the last two lines, it’s just the ^C, but before, I’ve typed the ‘m’ key, which, without holding the Fn key, should print ‘m’, but does print ‘0’ instead. The Fn key itself seem not to generate any output in the debug-events command

Another hint: it’s not related to the usb-c-dock, after just plugging in the external keyboard, the internal one works as expected:

❯ sudo libinput debug-events --show-keycodes
-event3   DEVICE_ADDED     Power Button                      seat0 default group1  cap:k
-event10  DEVICE_ADDED     Video Bus                         seat0 default group2  cap:k
-event0   DEVICE_ADDED     Power Button                      seat0 default group3  cap:k
-event2   DEVICE_ADDED     Lid Switch                        seat0 default group4  cap:S
-event1   DEVICE_ADDED     Sleep Button                      seat0 default group5  cap:k
-event19  DEVICE_ADDED     Trust Keyboard                    seat0 default group6  cap:k
-event20  DEVICE_ADDED     Trust Keyboard Consumer Control   seat0 default group6  cap:kp scroll-nat
-event21  DEVICE_ADDED     Trust Keyboard System Control     seat0 default group6  cap:k
-event9   DEVICE_ADDED     Chicony USB2.0 Camera: Chicony    seat0 default group7  cap:k
-event5   DEVICE_ADDED     Intel HID events                  seat0 default group8  cap:k
-event4   DEVICE_ADDED     AT Translated Set 2 keyboard      seat0 default group9  cap:k
-event8   DEVICE_ADDED     SynPS/2 Synaptics TouchPad        seat0 default group10 cap:pg  size 81x39mm tap(dl off) left scroll-nat scroll-2fg-edge dwt-on
-event7   DEVICE_ADDED     TUXEDO Keyboard                   seat0 default group11 cap:k
-event4   KEYBOARD_KEY     +0.000s	KEY_M (50) pressed
m event4   KEYBOARD_KEY     +0.111s	KEY_M (50) released
 event4   KEYBOARD_KEY     +0.244s	KEY_M (50) pressed
m event4   KEYBOARD_KEY     +0.367s	KEY_M (50) released
 event4   KEYBOARD_KEY     +0.748s	KEY_KP0 (82) pressed
0 event4   KEYBOARD_KEY     +0.847s	KEY_KP0 (82) released
 event4   KEYBOARD_KEY     +0.989s	KEY_KP0 (82) pressed
0 event4   KEYBOARD_KEY     +1.106s	KEY_KP0 (82) released
 event4   KEYBOARD_KEY     +2.797s	KEY_LEFTCTRL (29) pressed
 event4   KEYBOARD_KEY     +2.847s	KEY_C (46) pressed

When I press Fn + Num Lock I can disable the Fn key alltogether, and can work again with the internal keyboard. But, that’s just a workaround :frowning:

Looking at the actual keyboard, I believe the “Fn lock” is enabled. Isn’t there an option to enable/disable it in the BIOS?

I can’t find any option to do so in the BIOS… looked three times so far, but havn’t found anything.

No option about function/media keys, primary/secondary functions? Maybe Fn+ESC turns it on/off?

When you have the external keyboard attached - do you have the numlock on?

I think your issue is connected to Gnome restoring the state of your numlock because it happens after login.

Before you shutdown the system try switching numlock off using the attached keyboard.

Thanks, I think this is the missing point. Gnome restoring the numlock is the main problem, with the FN+NUM, I can toggle the behaviour, so now I can finally resolve this issue.

You can utilize numlockx to explicitly switch off numlock when you login into Gnome.

numlockx off

An even better option is to locate in the vast depths of configuration paths and instruct Gnome to never set NumLock on.