Surface Laptop 3 and Linux

I recently acquired a Microsoft Surface Laptop 3 and installed Fedora 36 on it. Everything works by default except touchscreen. For touchscreen support you need the surface-laptop kernel.

Tips

Keyboard + Mouse

I found that Fedora Beta was missing drivers for keyboard and touchpad on first boot so I had to use keyboard and mouse attached via USB port. After I ran an update to get latest available kernel and did a reboot, they worked fine.

I expect Fedora final won’t have this issue.

HiDPI Scaling

By default Gnome only permits scaling at 100% or 200%. With the 2256 x 1504 resolution screen, I wanted something closer to 150%. Fortunately, this can be achieved with an (experimental!) setting:

$ gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"

Once that’s set, you should see the option to scale to 150% appearing in the Gnome display settings (you may need to logout and login first).

Firefox

Be sure to install firefox-wayland for much smoother UI performance.

VA-API

Hardware accelerated encoding/decoding of audio/video codecs via iHD driver. Install RPM Fusion non-free repo and then install the intel-media-driver package:

$ sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
$ sudo dnf install intel-media-driver libva-utils

$ vainfo
libva info: VA-API version 1.14.0
libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_14
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.14 (libva 2.14.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 22.3.1 ()
vainfo: Supported profile and entrypoints
      VAProfileNone                   :	VAEntrypointVideoProc
      VAProfileNone                   :	VAEntrypointStats
...