Skip to content

Conversation

gaudi369
Copy link

On my Surface Laptop 5, the built-in keyboard doesn’t work at the login screen, but it starts working normally after logging in. I added some modules to '/etc/mkinitcpio.conf' and it fixed the issue for me. I also found a few people on the Omarchy Discord reporting the same issue, so this seems reproducible on other Surface 5 systems.

Steps to reproduce the original problem:
1. Boot Omarchy on a Surface Laptop 5.
2. At the password login screen, the keyboard doesn’t respond.
3. After logging in (using an external keyboard), the built-in keyboard works normally.

Here’s the module list that worked for my setup:

MODULES=(btrfs crc-itu-t usbhid hid-generic pinctrl_tigerlake intel_lpss_pci
8250_dw surface_gpe surface_hotplug surface_aggregator_registry
surface_aggregator_hub surface_aggregator surface_hid_core surface_hid
surface_kbd xhci_hcd hid_multitouch)

After looking through the Omarchy repository, I noticed there’s a similar hardware-specific fix for MacBook SPI keyboards. I used that script as a reference and, with some AI assistance, created a matching patch for the Surface Laptop 5.

The patch is implemented as:

omarchy/install/config/hardware/fix-surface5-keyboard.sh

It mirrors the style of fix-apple-spi-keyboard.sh and just writes a mkinitcpio drop-in file.

Surface Laptop 5 keyboard not working at greetd login (works after login)
@gaudi369 gaudi369 changed the title Surface Laptop 5: built-in keyboard not working at login (works after login) Added Modules so the Surface Laptop 5 built-in keyboard works at login Oct 11, 2025
@gaudi369 gaudi369 changed the title Added Modules so the Surface Laptop 5 built-in keyboard works at login Added Modules so the Surface Laptop 5 built-in Keyboard Works at Login Oct 11, 2025
@dhh dhh requested a review from ryanrhughes October 11, 2025 11:35
@gaudi369
Copy link
Author

This fix may require surface-linux kernel installed too.

@ryanrhughes
Copy link
Collaborator

@gaudi369 are you able to test without the surface-linux kernel to see if that's something that is actually required or not?

Outside of that, this looks generally fine but if we also have to handle that kernel, that changes things a bit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants