Linux Desktop, Day One

10-Jun-2026

Twenty-four hours into an Arch Linux experiment. Two crashes, a kernel panic, and a 100GB download interrupted by a power button.

Twenty-four hours in. Two crashes, one kernel panic, and a 100GB game download interrupted by a monitor power button.

The Mac has been up for six days and twenty-three hours. It restarted once, for an OS update. The Xbox controller paired to it immediately.

Why bother

There are three reasons I’m doing this. First, macOS fullscreen app transitions waste time. That half-second animation every time you switch between spaces adds up, and there is no way to turn it off. Second, games live on a Windows machine across the room. Third, Hyprland.

Hyprland is a Wayland compositor and tiling window manager for Linux. It is also the best window manager I have used. Workspaces, animations, and layout all configured in a single Lua file. Everything does exactly what you tell it to.

The problem is that when Hyprland crashes, it falls back to a default configuration, which looks like nothing you set up, and is briefly alarming.

The crash

I switched the monitor off. That was it. A udev event fired, the DRM backend signalled a disconnect, Hyprland tried to deliver a frame to a workspace on the dying output, hit a null pointer in Desktop::View::getViewsForWorkspace, and received SIGSEGV. The crash report was clear. The cause was not exotic.

This is a known bug in Hyprland 0.55.3. The fix is: do not switch the monitor off. Or switch to hyprland-git and hope the patch is in there.

The Xbox controller

The controller uses HID over GATT, which is a Bluetooth low energy protocol. The Intel AX211 chipset in the motherboard has poor Linux support. The xpadneo driver, which exists specifically to handle Xbox controllers on Linux, connects and then drops the controller after 30 to 90 seconds. Without xpadneo, it creates a new input device every two seconds in a loop. Steam never sees it.

The workaround is a USB cable.

The nostalgia

None of this is unfamiliar. In the 1990s, getting a game to run meant editing config.sys and autoexec.bat to load the right drivers in the right order with enough conventional memory left over. The problem space was completely legible. You understood exactly what you were configuring and why.

The Xbox controller problem has the kernel, a firmware blob, a DKMS module, a Bluetooth stack, HCI-level connection parameters, and a controller firmware that Microsoft updates without notice. The stack is ten layers deep. Half of it belongs to someone else.

And yet the appeal is the same. A config file. A decision. An outcome you can trace. Hyprland has that quality when it is working. You write a rule, the window obeys it, and for a moment the computer does exactly what you intended.

That is harder to find than it used to be. Worth a few crashes to get back to it.