[GUIDE] Ubuntu 22.04/23.10: Allowing for disable-while-typing behavior for trackpad

Framework 16 by default doesn’t observe disable-while-typing setting found in Ubuntu (and other distributions using libinput). This is due to Framework keyboard modules being detected as an USB keyboard and thus presumed external.

This can be corrected by adjusting /usr/share/libinput/50-framework.quirks file (reboot required) to add the following definition

[Framework Laptop 16 Keyboard Module]
MatchName=Framework Laptop 16 Keyboard Module*
MatchUdevType=keyboard
MatchDMIModalias=dmi:*svnFramework:pnLaptop16*
AttrKeyboardIntegration=internal

Both issue and merge request have been raised toward libinput so hopefully it will work out of box in the future.

16 Likes

Moving this here from another forum.

I’m going to give this a test run now, looks really promising! If all works out well, I will be adding it to the official docs. :slight_smile:

Really appreciate your work on this!

1 Like

It works! And it has been added to the Ubuntu 22.04/Fedora 39 Framework Laptop 16 guide - test with both, works with both.

Bottom of the page.

Code used:

sudo tee -a /usr/share/libinput/50-framework.quirks > /dev/null <<'EOF'
[Framework Laptop 16 Keyboard Module]
MatchName=Framework Laptop 16 Keyboard Module*
MatchUdevType=keyboard
MatchDMIModalias=dmi:*svnFramework:pnLaptop16*
AttrKeyboardIntegration=internal
EOF

Reboot

(Fixed the code, had a typo)

1 Like

Did you also test this with RGB keyboard?
I swapped mine for the normal one so I get F16 in my hands sooner so I couldn’t check.

Tested with RGB US English, works.

1 Like

This worked for me. I also have a numpad module, so I added this as well:

[Framework Laptop 16 Numpad Module]
MatchName=Framework Laptop 16 Numpad Module*
MatchUdevType=keyboard
MatchDMIModalias=dmi:*svnFramework:pnLaptop16*
AttrKeyboardIntegration=internal
1 Like

What’s it classified as without that?

1 Like

“external” :slight_smile: I’m pretty sure that means it thinks it’s just any ol’ external USB keyboard, like you’d use with a desktop.

Oh yeah this definitely makes sense then. Raise it as a PR upstream!

1 Like

Hi, just thought I would add my solution which has finally got DWT working for me. I am running Manjaro. I had to add the following to the file:

/etc/libinput/local-overrides.quirks

[Framework Laptop 16 Keyboard Module]
MatchName=Framework Laptop 16 Keyboard Module - ISO Keyboard
MatchUdevType=keyboard
AttrKeyboardIntegration=internal

In MatchName if I don’t strictly match the name of the Keyboard then it will overmatch and define multiple keyboards as internal which will break the disable while typing, as what you are trying to do here is to tell your machine that the keyboard and the touchpad are both internal and part of the same system.

Find the name of your keyboards with “sudo libinput list-devices”

If you then have multiple keyboards work out which one it is (by looking at which /dev/input/eventX it is by typing in “sudo libinput debug-events” then mash your keyboard and you will get information about which keyboard the events are associated with.

I found this page very useful:

1 Like