So, it’s been about two weeks ago since I switched to Linux full-time. What brought this on is that I finally got a different GPU - I swapped my RTX 3060 Ti for my friend’s RX 6700 XT. The NVIDIA card was basically unusable on Linux for me: I am required to use Wayland due to my display setup (mismatching refresh rates), but Wayland on NVIDIA is full of issues (namely broken graphics APIs under XWayland.) NVIDIA is slowly fixing their stuff, but now I have an AMD GPU where none of these issues exist, that means I can use Linux now instead of waiting for all that to drip down to me.

I’ve been running openSUSE Tumbleweed, and on the whole, it’s been a good experience. There are definitely a few issues, but I certainly expect myself to daily drive Linux (and possibly openSUSE) for the future. openSUSE was the first Linux distro I ever used, and I’ve been using it on and off for the past maybe 10-15 years, and it’s always been great.

KDE Plasma 6 is my desktop of choice, and it is solid. I have not encountered any issues with it at all. And as with Plasma 5 it’s still very powerful, yet it just works as you expect it to, and it’s a pleasure to use. And I don’t have to put up with Microsoft’s bullshit!

The wallpaper is one of the Plasma stock ones

Theming-wise, I’ve ended up with an unusual combo of openSUSE’s colour scheme, the Fusion Qt style, the Breeze window decor and Plasma style, ye olde DMZ cursor theme, and Liberation Sans everywhere I can put it. My eyes like it, that’s what matters.

Audio, agh!!

I never have any luck with audio on Linux. This is no different — I get random glitches occasionally. I have no information than that. I tried using different output devices, to no effect. Fiddled with some settings, to no effect. I’m using PipeWire, and haven’t fiddled with its settings yet, which I’ll do at some point… Other than that, I have no idea what’s causing these issues, and it’s very annoying.

Playing vidya

Really the game I’ve played the most on Linux is Minecraft. I use Prism Launcher and yeah, it works really well, not really surprising. The nice thing is that I didn’t have to screw around with modifying GLFW to use Wayland by default so I could play it without having a seizure. It seems to run really well too, with Complimentary Reimagined set to max settings and a heap of performance mods I get usually 100fps or more at 1080p. Even NVIDIA’s Windows drivers couldn’t do that (the RX 6700 XT is faster though, so that probably helps…)

I’m still working through Command & Conquer: Tiberian Sun at an excruciatingly slow rate (I’m almost half-done with Firestorm now!). I tried to use Lutris to get it working via EA App (Origin) with the CNCnet patch, but performance was absymal and graphics were broekn under most renderers. The solution is easy, just use CNCnet’s launcher instead, it works perfectly. zypper complains about missing dependencies and signing keys when using the .rpm but it works fine.

Steam is sort of tempermental. With half the games it tries to update it acts as if I keep plugging out my Ethernet cable every ten seconds, interrupting the download before it waits and tries again, repeat ad nauseum. Everything else handles the internet fine, did some troubleshooting, no idea what’s causing that. As much as I hate Valve and Steam I will admit Proton is pretty great, even if I haven’t played many Steam games. I tried theHunter: Call of the Wild, it runs perfectly, but I suck at it.

Really, most of the gaming I do isn’t on PC nowadays, though. Did you know I play Splatoon 3 a lot?

Capture and content

I put a lot of work into this! So, naturally, health issues prevent me from streaming as much as I’d like now…

My capture setup works entirely fine on Linux. I adapted my stream setup quickly: Streamer.bot works fine under Wine, my PNGtuber avatar works fine (written in Java with LWJGL), it all works. The only issue is that OBS apparently hates when you have multiple audio input sources set to the same device - I had two for my capture card, one for monitoring and one for output, so I could control their levels separately. As you can hear from this stream, the output was awfully choppy for some reason. The only solution I found was to just use the monitor and capture my desktop audio instead. Jank, but it’s what I did for a long while before anyway.

A bug I have noticed with OBS is that if you use a window capture source and then close that window, PipeWire will get stuck in a crash loop until you remove that source or exit OBS. Annoying, as that entirely breaks your audio.

I also entirely recorded and edited a video on Linux. Kdenlive was used for editing, and it’s entirely alright. Performance isn’t amazing at times, but it’s usable (just don’t use the spacer tool). The limiter effect has a weird pop when it starts taking input but that can be worked around by using volume keyframes on the affected track (awful hack, I’ll admit). I will probably try and find a way to cancel my Adobe subscription now, because Premiere was basically the only thing I used, and now I don’t need it (my videos don’t really use any fancy features of video editors at all anyway.)

GameMaker

GameMaker provides native Linux builds, but they’re in beta, and it shows. It actually mostly works, but there are a few random bugs, notably that the program and runtime keeps crashing! As far as I can tell it’s related to audio, but I can’t figure it out exactly, and they only officially support Ubuntu so a bug report might get nowhere. Additionally it seems to peg itself at 100% cpu for some reason, and the build time for Linux is significantly longer than on Windows, which is annoying when iterating…

My second thought then was to use it in a VM, but performance isn’t great, it doesn’t support high refresh rates, mouse input is janky, and there are all sorts of other issues that arise from running it in a VM.

Somehow it took me a while to think to run it under Wine. With Lutris it worked almost perfectly; it detected the wrong launch application, but manually correcting that to GameMaker.exe was simple enough. The IDE works perfectly: no crashing, no high CPU usage. But there was a weird issue where it would seemingly do nothing for a few seconds while building. Changed the runtime to Proton, and it works gloriously.

Linux kernel 6.9 (quite aptly) fucked me

OK, sensationalist heading, but I couldn’t put down that joke…

I have had my left monitor, an AOC 2353, for the past thirteen years, and it is trying desparately to die. Recently it started failing to report its EDID properly, causing it to be stuck at 640x480.

Fortunately, Linux has a built-in way to override the EDID used for a monitor. It is, uh, quite lacking in official documentation. Fortunately, there’s much more detailed information elsewhere, such as on the Arch wiki. And even better, it has some built-in presets, and for me the stock 1920x1080 configuration worked perfectly.

Until kernel 6.9 removed them. The justification in the commit message makes sense, but it worked fine in my case! My first thought was to coax the files out of the kernel source, but that would require converting a C hex literal byte array to a binary file somehow. The kernel also used to provide the source used to generate the stock EDID files in the docs folder, but that was removed, and I couldn’t be bothered to clone the entire kernel.

And I had previously discovered that the Linux Hardware Project provides a massive repo full of EDID dumps. And my 2353 is there. Excellent. This is better than using the generic ones provided with the kernel, because it’s actually the data from my monitor! But the EDID files are all text decodings, and I need a binary file. I am not very observant, and it took me too long to notice that they also provide instructions on how to do so.

Once I had my EDID binary, all I had to do with copy it to /usr/lib/firmware/edid and slip it into the kernel image using dracut by creating /etc/dracut.conf.d/00-2353-edid.conf with:

install_items+=" /usr/lib/firmware/edid/2353.bin "

Add

drm.edid_firmware=HDMI-A-2:edid/2353.bin

to my kernel boot options and now my 2353 is forced to remain alive.

Other issues

  • If you shut down your computer while Firefox is running, it will re-open with all your tabs from the previous session. I prefer it to open an empty session, as it does on Windows.
  • Because Wayland is lacking critical features such as “allowing applications to control their own windows”, applications cannot restore their window position on startup. As Firefox effectively lives on my left monitor, that means I have to drag it to my left monitor manually almost every since time I start it. Annoying.
  • Windows starts applications on your primary monitor, Plasma starts them on wherever the cursor is at the time the window opens. Again, I prefer the Windows behaviour.
  • openSUSE don’t keep old versions of packages around in the Tumbleweed repos - given it’s rolling release, this is fair, the disk usage would be ridiculous otherwise. However, TortoiseHg is pegged to Mercurial 6.6.3 right now, while the latest version of Mercurial at the time of writing is 6.7.3. So, if you want to use TortoiseHg from OBS, you’ll need hg 6.6.3. You’ll probably have to build it manually if you don’t already have it, and then pin the package manager at that version.

The future

On the whole, things are going pretty well, and I’m very likely to remain on Linux for the future. It’s already replaced my Windows install on the fast NVMe drive.

Whether I stay on openSUSE Tumbleweed may still be up in the air though. If I do move, it will be to Debian; I used to use that before and it was nice. Tumbleweed is a rolling-release distro, and while it’s the best one out there (well-tested and with some great tools), it gets a bit tiring redownloading hundreds of megs (if not a few gigabytes) every few days. Really the biggest issue for me right now is the audio issue mentioned above. If I can’t fix that then I’ll see how it is on Debian (which won’t be easy, it’s random and pretty infrequent.) When I did use Debian I had no issues even under PipeWire, so if it doesn’t remain then that suggests a regression in PipeWire, the kernel, or somewhere along that chain. I’d prefer to actually be able to fix this issue though because switching distros is work, and I love the openSUSE tooling and infrastructure, and having the latest software is definitely nice, despite the frequent downloads.