Benjamin Looi
Back to blogs
How to disable laptop internal keyboard on Fedora 41

How to disable laptop internal keyboard on Fedora 41

Benjamin Looi / April 27, 2025

My laptop keyboard has degraded over the years. Heat made the keys harder to press, and some key clips broke. I wanted to place my mechanical keyboard on top of the laptop, but the built-in keyboard kept firing random keypresses. I tested this fix on Fedora 41 and 42 running Wayland.

What You'll Need

  • Terminal access with sudo privileges
  • The commands: libinput, udevadm, and a text editor (e.g. nano or vim)

Step 1: Identify Your Built-In Keyboard

Open a terminal and type:

libinput list-devices

Scroll until you see something like:

Device:           AT Translated Set 2 keyboard
Kernel:           /dev/input/event3
That "AT Translated Set 2 keyboard" is your laptop's built-in keyboard. Note the exact name and the eventX number. You will need both in the next steps.

Step 2: Double-Check with udevadm

Confirm its properties:

udevadm info /dev/input/event3

You should see lines like:

E: NAME="AT Translated Set 2 keyboard"
E: ID_INPUT_KEYBOARD=1
If you don't, swap in the right eventX and try again.

Step 3: Write the udev Rule

Create a new rule file:

sudo nano /etc/udev/rules.d/99-disable-internal-keyboard.rules

Paste in this one-liner (adjust the name exactly if yours differs):

ACTION=="add|change", ATTRS{name}=="AT Translated Set 2 keyboard", ENV{ID_INPUT_KEYBOARD}=="1", ENV{LIBINPUT_IGNORE_DEVICE}="1"

This tells libinput to ignore that device.

Step 4: Reload Rules & Test

Apply without rebooting:

sudo udevadm control --reload-rules
sudo udevadm trigger

If it doesn't work, try rebooting

Re-enable Your Laptop Keyboard

When you want it back:

sudo rm /etc/udev/rules.d/99-disable-internal-keyboard.rules
sudo udevadm control --reload-rules
sudo udevadm trigger

Final Thoughts

Now I can place my external keyboard on top of the laptop and type without random input from the built-in keyboard.

Thanks for reading! 😁

Comments

Related Posts