If you are using a Surface Go (1st Gen) in 2026, you’ve probably noticed that Linux runs beautifully on it, except for one annoying bug: the Type Cover (keyboard and touchpad) often stays dead after the tablet wakes up from sleep.

Instead of unplugging and replugging the keyboard every time, here is the definitive fix using a systemd resume hook.

Step 1: Understanding the issue

The problem is that the intel_lpss_pci bus, which manages the connection to the Type Cover, doesn’t always “wake up” correctly. This leaves the input drivers in a frozen state. To fix this, we need to force the kernel to reload the modules automatically upon resume.

Step 2: Create the Fix Script

We will create a script that triggers every time the system resumes from suspension. Run the following command in your terminal:

sudo nano /usr/lib/systemd/system-sleep/surface-touchpad-fix

Step 3: Add the Automation Code

Paste the code below into the editor. This script identifies the “post-sleep” state and power-cycles the specific drivers for the Surface Go:

#!/bin/sh
# Fix for Surface Go Type Cover after suspend
# Target: Surface Go 1st Gen - Feb 2026 Update

case $1/$2 in
  post/*)
    # 1. Unload the modules to reset the connection
    modprobe -r surface_hid
    modprobe -r hid_multitouch
    modprobe -r intel_lpss_pci
    
    # 2. Brief pause for the hardware bus to settle
    sleep 1
    
    # 3. Reload the modules in the correct sequence
    modprobe intel_lpss_pci
    modprobe hid_multitouch
    modprobe surface_hid
    ;;
esac

Step 4: Set Execution Permissions

For the system to be able to run this script, it needs execution rights. Execute this command:

sudo chmod +x /usr/lib/systemd/system-sleep/surface-touchpad-fix

Step 5: Verification

Close your Surface Go lid, wait a few seconds, and open it again. Your Type Cover and touchpad should now be active immediately without any physical intervention.

Note: This fix is specifically tested on Fedora with the linux-surface kernel, but it should work on any major distribution running on original Surface Go hardware.