The Linux Thread - The Autist's OS of Choice

  • 🇵🇦 Nuestro primer dominio localizado está en español en kiwifarms.pa. Our first localized domain is on Spanish on kiwifarms.pa.
  • Want to keep track of this thread?
    Accounts can bookmark posts, watch threads for updates, and jump back to where you stopped reading.
    Create account
Linux Mint is the best starter distro out there

I want to disagree, but I can't. It was the only one I didn't have to fingerfuck to get running on my 2023-era laptop (other than Void). I installed PipeWire to get rid of the shitty PulseAudio crap and everything else has just been smooth sailing since. No effort required. Sleeps correctly, runs well, has that familiar nearly-Debian flavor, and minimal effort to keep running.

If I wanted to spend my waking hours on a running distribution, it would have been Void before they kicked Juan out, and after that? Dunno, because I disagree with Alpine's politics.

Mint is just great when you want Linux, but you don't want to spend time obsessing over USE flags.
 
I want to disagree, but I can't. It was the only one I didn't have to fingerfuck to get running on my 2023-era laptop (other than Void). I installed PipeWire to get rid of the shitty PulseAudio crap and everything else has just been smooth sailing since. No effort required. Sleeps correctly, runs well, has that familiar nearly-Debian flavor, and minimal effort to keep running.

If I wanted to spend my waking hours on a running distribution, it would have been Void before they kicked Juan out, and after that? Dunno, because I disagree with Alpine's politics.

Mint is just great when you want Linux, but you don't want to spend time obsessing over USE flags.

I've personally had the best results using Linux Mint MATE over the Cinnamon version. There's less QOL OOTB and slightly less intuitive GUI tools, but Mint MATE feels more "authentic" than Mint Cinnamon. There's something kinda crap and unrelaxed about how Cinnamon to this day is still categorically incomplete considering how regardless of how the Mint team, Fedora developers, or any other distro maintainers package Cinnamon, you still need to rely on GNOME applications on some measure. MATE is wholly complete unto itself by sheer virtue of forking off GNOME 2.32. Cinnamon was never a hard fork from the get-go; it was a wrapper around GNOME Shell that eventually became independent.
 
Last edited:
I was poking around in the SteamOS source/customization files and found an interesting little sysctl tweak Valve ships:

Bash:
# Prevents intentional slowdowns in case games experience split locks
# This is valid for kernels v6.0+
kernel.split_lock_mitigate = 0

From my understanding, some Windows programs love to abuse "split locks", and the kernel on Linux intentionally slow them down to protect the rest of the system. That makes sense for general computing, servers, multi-user systems, etc but for gaming, especially Windows games through Proton, the practical result can be that the game just runs terribly. Turning off mitigation does not necessarily mean split lock detection is completely gone, it just means the intentional performance punishment is disabled. Phoronix actually wrote about this a while back when God of War on Linux had insanely bad performance because of split lock mitigation: Linux Adding New Control Since Its Splitlock Detector Is Wrecking Some Steam Play Games

I have also seen reports around Street Fighter 6, and some people mention other games too. For Cyberpunk 2077, I have seen user reports claiming that this helped a lot, while for others its around the same so YMMV.

Run this to check if you have it on or off on your distro by default:

Bash:
cat /proc/sys/kernel/split_lock_mitigate

If it prints 1 then mitigation is enabled. You can disable it by default like on SteamOS or manually.
 
I was poking around in the SteamOS source/customization files and found an interesting little sysctl tweak Valve ships:

Bash:
# Prevents intentional slowdowns in case games experience split locks
# This is valid for kernels v6.0+
kernel.split_lock_mitigate = 0

From my understanding, some Windows programs love to abuse "split locks", and the kernel on Linux intentionally slow them down to protect the rest of the system. That makes sense for general computing, servers, multi-user systems, etc but for gaming, especially Windows games through Proton, the practical result can be that the game just runs terribly. Turning off mitigation does not necessarily mean split lock detection is completely gone, it just means the intentional performance punishment is disabled. Phoronix actually wrote about this a while back when God of War on Linux had insanely bad performance because of split lock mitigation: Linux Adding New Control Since Its Splitlock Detector Is Wrecking Some Steam Play Games

I have also seen reports around Street Fighter 6, and some people mention other games too. For Cyberpunk 2077, I have seen user reports claiming that this helped a lot, while for others its around the same so YMMV.

Run this to check if you have it on or off on your distro by default:

Bash:
cat /proc/sys/kernel/split_lock_mitigate

If it prints 1 then mitigation is enabled. You can disable it by default like on SteamOS or manually.
There are a lot of these small tweaks that aren't documented in one place.

The CoreCTRL stuff I mentioned a while back went from having HellDivers 2 being unplayable to being smooth as silk.
 
Speaking of system issues I've updated "org.freedesktop.Platform.codecs-extra" (to a version from 2026-06-20) and it started crashing my PC. It would start crashing everything into read only mode after viewing a video in Brave and got me scared about potential hardware issues. I reverted to the previous version and it's fine again. If you're experiencing similar issues then this package is likely the cause.
 
Someone here suggested Fedora KDE and I enjoy it way more than Mint.
Only took me 4 hours to install because of a security chip that had to be disabled!
Only complaint since after install so far is that in order to change your pc name you have to use the console.
 
Someone here suggested Fedora KDE and I enjoy it way more than Mint.
Only took me 4 hours to install because of a security chip that had to be disabled!
Only complaint since after install so far is that in order to change your pc name you have to use the console.
For some reason KDE hasn't added this, when even GNOME of all DEs has a GUI method for changing the system hostname.
Terminal makes you trans and gay.
Only if you spend more time ricing it and making it look pretty than actually using it. That applies to the rest of the OS too.
 
THE MALADJUSTED WEEB'S GUIDE TO GETTING CATHERINE CLASSIC (893180) RUNNING ON YOUR LINUX BOX.

ATTN: THIS PREVIOUS INSTRUCTION IS NOW OBSOLETE.

GE-PROTON11-1 DROPPED AND IT HAS A MASSIVE MEDIA PIPELINE REWORK THAT PROBABLY WON'T GET UPSTREAMED. RELEASE NOTES

TRANSCRIPT OF RELEASE NOTES:

GloriousEggRoll said:
The long awaited video rework and Proton 11 rebase is finally done! GE-Proton11-1 is now available!

Proton updates:

d7vk added (not enabled by default). Use PROTON_USE_D7VK=1 to enable. It is enabled via protonfix on Tex Murphy: Overseer
discord bridge added. (not enabled by default). Use PROTON_DISCORD_BRIDGE=1 to enable. (proton-cachyos)
optiscaler support added. (not enabled by default). Use PROTON_USE_OPTISCALER=1 to enable' (proton-cachyos)
winealsa channel count override option added. (not enabled by default). Use WINEALSA_CHANNELS to tune. Possible values is the number of speakers, such as 2 (to disable spatial audio), such as 4 (2 front, 2 rear), 6 (5.1) or 8 (7.1). (Vyrolian)
winealsa spacial downmix override option added. (not enabled by default). Use WINEALSA_SPACIAL=1 to enable. (Vyrolian)
xrandr added to build so that auto-detection of default monitor can work without relying on host xrandr when a default monitor is not set for wine-wayland. This means if you accidentally forget to set a monitor for wine-wayland it should display on the default one found by xrandr now instead of just defaulting to the far left.
updated star citizen patches
added patches for Task Bar Hero (thaylorz)
added patches for VRChat webcam face tracking (LilFishyChan)
Entire build rebased onto latest proton 11 bleeding-edge
Standalone patches for VR rebased onto proton 11 (so you can use with umu outside of steam on non-steam VR games)
wine-native rsx3d library created to for older games (games like Tex Murphy no longer need 3rd party rsx3d winetricks)
Enable .exe dynamic relocation and only relocate files which have relocations. For XIV specifically, this fixes issues with low address space being filled up by everyone and everything and, as a result, some plugins failing to apply their hooks and leaving the game in an unstable state. (0x0ade)

--The video playback rework--

Q. What was the problem?

A. Originally, proton uses two methods for video playback with two different backends. The first is typically winedmo->ffmpeg. The second is typically quartz->gstreamer. For most games, especially older games, the quartz->gstreamer path was the default. winedmo was introduced recently (as of either proton 9 or 10, I don't remember which) as a modern approach to fixing video playback. The problem is the inner workings of the quartz->gstreamer path were complicated, to convert, thus two paths were used.

Seeing as both ffmpeg and gstreamer effectively do the same thing and can handle the same codecs -- it does not make sense to use both, especially when gstreamer is split into several different libraries that need to be built independently (gst-base, gst-good, gst-bad, gst-ugly, gst-orc, gst-libav, etc), and gstreamer also has surface display problems such as X11 vs Wayland vs Surfaceless.

Q. How did I "fix" it?

A. As many of you know, the last GE-Proton release was in March. It is now June. That is a 4 month gap, which is most definitely not the norm for GE Releases. Why is that? It's because I spent the last 4 months converting the quartz->gstreamer path to instead use quartz->winedmo->ffmpeg, and completely gutted all gstreamer libraries from the proton build.

Yes, I used AI for this work. No, it likely unfortunately will not be able to be upstreamed because CodeWeavers policy does not accept AI generated code. You might be asking "how the hell did you use AI for this?" -- the same way I would without it, the only difference is AI was used to compare code logic when things were failing or incorrect. So how does that work?

First, I did a base rework. I completely removed winegstreamer from wine, and had the AI agent look at the current code and convert what it could so that quartz used winedmo instead.
Next, about 80% of the games in the video rework list used the quartz path and relied on protonfixes with winedll overrides for quartz, lavfilters, amstream, dshow, wmp9, wmp11, and so on. This was GREAT because it meant I was able to get winedebug logs with valid, working instances. Once I gathered those logs for each game, I them removed the protonfixes, created a clean prefix, then ran and logged the broken instance. After that I fed a working log and a broken log into the AI agent for comparison to see what WINE was doing when the overrides were in place and working, versus when it was broken natively. I found that in pretty much every instance the agent was quickly able to identify the difference and either correct or implement the missing native code needed to make the videos work as if the overrides were in place, given a small amount of trial and failure retries. Additionally if the game provided the video files I would point the AI agent to those files so that it could properly analyze what kind of files they were in order to implement into wine the ability to play them. There were very very few games that needed fixing "from scratch" and needed a lot more trials and failures before getting a successful fix -- examples being Darksiders Warmastered Edition and Nukitashi 2. I also in the process managed to get rid of a few game-specific hacks that were used and implement solutions that did not break other games -- such as audio fixes that were previously in place for The Medium and Metal Gear Solid V. You will also see a lot of VN (Visual Novel) games have been fixed, as many of those games use the same few engines and fixing one or two fixed the rest of the games that used the same engine. In fact, we even found a bug with steam runtime 4 missing some required libraries for 32 bit video playback that we were able to report upstream to get fixed (you will see liblzma and xz added to the build for this reason).

Here is a detailed breakdown of old quartz behavior versus new:

• Current Quartz Flow
For a game using quartz / DirectShow now:

Game calls IGraphBuilder::RenderFile() or manually builds a graph.

quartz/filesource.c identifies the media:
Extension/registry if available.
ASF header sniffing for extensionless ASF files, e.g. Persona 4 Arena Ultimax.

For ASF files, RenderFile() now tries:
AsyncReader first.
Falls back to WMAsfReader if async rendering fails.

FilterGraph2_Render() autoplugs the graph.

Before generic filtermapper enumeration, Quartz now explicitly tries known-good paths:
MPEG stream -> MPEG-I Stream Splitter
MPEG video -> Wine MPEG video decoder
AC3 audio -> winedmo AC3 decoder
WMA audio -> DMOWrapperFilter around winedmo WMA decoder

If none of those apply, it falls back to normal IFilterMapper2_EnumMatchingFilters().

Decoding is now mostly routed through winedmo, backed by FFmpeg, instead of winegstreamer.

Audio renderer now rejects compressed audio and only accepts PCM / float PCM, forcing the graph to insert a decoder first.

DirectSound buffer creation is delayed until stream start instead of happening at connect/filter creation time.

Video output still lands in the normal Quartz video renderer path: DDraw / VMR-style surfaces depending on what the graph builds.

Previously
Before the rework, Quartz relied much more on the stock Wine DirectShow path:

Source filter selection was mostly extension/registry driven.
ASF files generally went straight to WMAsfReader.
Filter insertion relied more heavily on generic filtermapper enumeration.
Some compressed audio could incorrectly reach DSoundRender, causing failed buffer creation or partial render failures.
A lot of media handling still depended on winegstreamer / GStreamer behavior.
Game-specific workarounds and external overrides were needed more often: lavfilters, quartz, wmp11, dgvoodoo2, etc.

Practical Difference
The new flow is more deterministic:

Game -> Quartz RenderFile
-> source detection / ASF sniffing
-> AsyncReader or WMAsfReader
-> explicit known decoder/splitter choices
-> winedmo/FFmpeg decode
-> PCM audio to DSoundRender
-> decoded video to Quartz video renderer

Previously it was closer to:

Game -> Quartz RenderFile
-> registry-selected source
-> generic filtermapper search
-> Wine/GStreamer/native override behavior
-> renderer

So the current design tries to keep legacy DirectShow games inside Wine’s own Quartz graph while using winedmo/FFmpeg for the media formats that Wine’s older Quartz
path handled poorly.

Q. Are there currently any known issues?

A. Some older WMV videos can occasionally start playback distorted/pixelated, but they will correct themselves after a few seconds. This is most noticeable in the skill videos in Ghosts N' Goblins Resurrection. WRC 4 Also has some intro logo videos that have a weird frame-splitting issue. Apart from that most games should work, especially if they are in the Verified working test list below:

Godfall
Akiba's Trip: Undead & Undressed
Nukitashi
Nukitashi 2
Ys Origin
Darksiders Warmastered Edition
Breath of Fire IV
Watch Dogs
Dark Souls: Prepare to Die Edition
Silent Hill 3
Full Metal Daemon Muramasa
Bloodstained: Ritual of the Night
Blops 3
Final Fantasy XIV
RE 0
RE1 Remaster
RE2 Remake
RE3 Remake
RE4 Remake
RE4
RE7
RE8
Nioh 2
Nioh 3
Ninja Gaiden Sigma
Ultimate Marvel Vs. Capcom 3
Ghosts 'n Goblins Resurrection
Halo Infinite
soul calibur vi
age of empires II: Definitive edition
age of empires III
age of empires IV: Anniversary Edition
The Great Ace Attorney Chronicles
Memento Mori
Devil May Cry HD Remaster
Mortal Kombat 11
Injustice
Injustice 2
Endless Space 2
oddworld: munch's oddysee
Oddworld: Abe's Oddysee
Fable - The Lost Chapters
tokyo xanadu ex+
Ghostwire tokyo
Tokyo Necro
Order of Battle: World War II
Not For Broadcast
Blue Protocol: Star Resonance
Ryse: Son of Rome
Life Makeover
Street Racing Syndicate
Juarez: Gunslinger
BlazBlue Centralfiction
BlazBlue Chronophantasma Extend
Tree Of Savior
Record of Agarest War Mariage
Agarest: Generations of War 2
Agarest: Generations of War
Agarest Zero
Atelier Ryza 3: Alchemist of the End & the Secret Key DX
Atelier Ryza 2: Lost Legends & the Secret Fairy
Atelier Ryza: Ever Darkness & the Secret Hideout
Atelier Rorona The Alchemist of Arland DX
Atelier Marie Remake: The Alchemist of Salburg
Riddle Joker (should also fix other NekoNyan VNs: Senren*Banka, Sanoba Witch FHD Edition, Sabbat of the Witch, Cafe Stella, Dracu-riot, Parquet, Angelic Chaos: RE-BOOT!)
Seven: Enhanced Edition
Catherine Classic
Spyro Reignited Trilogy
Borderlands 3
Ceville
Grandia HD
Grandia II HD
Sky: Children of the Light
Trials of Mana
Secret of Mana
Legend of Mana
ARK: Survival Evolved
Power Rangers: Battle for the Grid
Persona 3 Reload
Persona 4 Golden
Persona 4 Arena Ultimax
Persona 5 Royal
Persona 5 Strikers
WRC 4
Nekopara Vol.1 (KiriKiri engine games)
Guilty Gear Accent Core Plus R
我打不过漂亮的她们 I Can't Win Against Those Pretty Girls
神都不良探 Underdog Detective
UberSoldier
The Medium
Liminal Border Part III
YOU and ME and HER: A Love Story
Mojika - Truth Rears Its Ugly Head
Moero Chronicle
Megadimension Neptunia VII
BLUE REFLECTION
Hell Yeah!
Bully: Scholarship Edition
Nine Witches: Family Disruption
Gabriel Knight 3: Blood of the Sacred, Blood of the Damned
ONE PIECE: PIRATE WARRIORS 4
Alternativa
Arcania (Gothic 4)
Arcania: Fall of Setarrif
Legend of Heroes: Trails in the Sky
Legend of Heroes: Trails in the Sky SC
Legend of Heroes: Trails in the Sky the 3rd
Umineko: Golden Fantasia
Tex Murphy: Overseer

With all of that work done, I am happy to say all of the games listed above now have functional video playback with NO winetricks needed and NO dll overrides needed. No quartz,no dshow, no amstream, no lavfilters, no klite, no rsx3d, no wmp9, no wmp11, etc. -- All the functionality previously needed from those overrides is now patched directly into wine for the listed games that needed them, and the protonfixes that were previously added have now been removed since they are no longer needed.

Many of these games I did not originally own and did have to purchase in order to get working correctly -- so I would like to send a very big thank you to my patreon/ko-fi supporters for helping me every month with things like this. Of course the patreon/ko-fi is not limited to games, many times it also goes to hardware for Nobara as well, but in this case there were a lot of game purchases made to get this working.

If a game you play has video that is not playing, please open a GE-Proton issue.

Protonfixes updates:

d7vk protonfix added for tex murphy overseer
d7vk protonfix added but temporarily disabled for Gabriel Knight 3 (d7vk has a flicker problem with this game)
font fix for Ground Control 2 (CommandMC)
protonfix added for Senren * Banka (R1kaB3rn)
protonfixes added for several older ID tech games: Medal of Honor: Allied Assault War Chest, Soldier of Fortune: Platinum Edition, Quake, Hexen II, Star Wars Jedi Knight/Jedi Knight II, Return to Castle Wolfenstein (SinnohConfirmed)
protonfix added for The Fruit of Grisaia (R1kaB3rn)
protonfix added for Need for Speed Underground 2 (MatthiasDillen)
protonfix added for GOG version of Quake II (SinnohConfirmed)
protonfix added for Zero Zone (XargonWan)
protonfix added for Gray Zone Warfare (ProjectSynchro)
protonfix added for Persona 5: The Phantom X (NelloKudo)
protonfix added for MONGI: Star Drive (NelloKudo)
protonfix added for cxbx-reloaded (BlueInterlude)
protonfix added for Assassin's Creed 1 (CommandMC)

TLDR: GloriousEggRoll spent four months wrestling against Proton's shitty media implementation, ultimately used an LLM agent to test code logic against using an FFMPEG backend instead of the current GStreamer one, FFMPEG worked out way better, but this monumental modification probably won't get upstreamed into Wine because of Codeweavers' anti-LLM code contribution stance.

CATHERINE CLASSIC IS ONE OF THESE GAMES LISTED AS FULLY WORKING. IT ACTUALLY FUCKING DOES. NO LAUNCHER ARGS, NO MEDIA PATHWAY CRAP, NONE OF THAT. SET IT AND FORGET IT. I know! I can't believe it either! That's why I tested it, and can attest to its functionality!
 
I was poking around in the SteamOS source/customization files and found an interesting little sysctl tweak Valve ships:

Bash:
# Prevents intentional slowdowns in case games experience split locks
# This is valid for kernels v6.0+
kernel.split_lock_mitigate = 0

From my understanding, some Windows programs love to abuse "split locks", and the kernel on Linux intentionally slow them down to protect the rest of the system. That makes sense for general computing, servers, multi-user systems, etc but for gaming, especially Windows games through Proton, the practical result can be that the game just runs terribly. Turning off mitigation does not necessarily mean split lock detection is completely gone, it just means the intentional performance punishment is disabled. Phoronix actually wrote about this a while back when God of War on Linux had insanely bad performance because of split lock mitigation: Linux Adding New Control Since Its Splitlock Detector Is Wrecking Some Steam Play Games

I have also seen reports around Street Fighter 6, and some people mention other games too. For Cyberpunk 2077, I have seen user reports claiming that this helped a lot, while for others its around the same so YMMV.

Run this to check if you have it on or off on your distro by default:

Bash:
cat /proc/sys/kernel/split_lock_mitigate

If it prints 1 then mitigation is enabled. You can disable it by default like on SteamOS or manually.
This is standard on Linux TKG by the way.
 
ive heard some absolute NIGGERS slandering vim here
vim is the PINNACLE of text editing, better than "nano" (name which ironically perfectly describes the penis size of its users) or Eight Megabytes and Constantly Swapping ("hey if you dont want your editor to take 0.5s to start up have a session running in the background")

want to delete some text up to a certain character? dt{character} (so dte to delete everything up to the nearest 'e')
want to increment a value? <C-a>, it also works for hex and bin values
want to decrement a value? <C-x>
macros? we have macros
regex based find and replace? we got it
want to edit a BLOCK of text? <C-v> {select the text} c
want to move to some C header? gf (something you'll never have)

want to duplicate a line 5 times and increment a value in that line each time?
make a macro!
qa (start recording macro into the register a)
yyp (yank (or kill if youre an em*cs nigger) whole line and paste (or yank if youre an em*cs nigger) it)
<C-a> (move to the nearest number and increase it by one)
q (stop recording)
4@a (play the macro in register a 4 times)
or in one sequence qayyp<C-a>q4@a - ezpz!

one thing want to have from emacs though is transpose word, but i lowkey use mini.operators as the replacement
 
Last edited:
Back
Top Bottom