The Linux Thread - The Autist's OS of Choice

  • 🔎 If you see an alert for analytics.usips.org, this is a self-hosted system I am running as a test. It is GDPR compliant and collects no invasive information.
  • 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
Omarchy now uses quickshell
I forgot that I'm a massive retard and also converted from waybar to Noctalia, which also functions a an entire DE, lol. Pardon my brain homerage. I switched mostly because I got jealous of all the ricing faggots showing off that they can have a live soundwave pattern when music is playing. All the stupid shit like "showing the weather" in Noctalia is retarded.
 
I basically have 0 use for Omarchy because I already use Arch + Hyprland + Alacritty + Waybar + Vim + Gaming software. Is there even any reason to install it for someone like me? I doubt a different greeter like sddm will make my entire experience completely different.
From my first impressions it is opinionated. This makes sense, as it is from the same guy that did Ruby on Rails, which is an opinionated server-side web framework.
 
EDIT: you may be asking how making tranny commies screech is going to crush them. Eventually people will realize that Omarchy is really nice, and wonder how it got made. They will realize that the answer is a strong man who has the will to come up with great solutions. And they’ll start modeling their own projects like Omarchy.
The best way to defeat all the screetching manics is for people to actually just build stuff and make sure it is good.
The vast majority of people don't give a shit about the politics (and shouldn't have to).
 
Modern macs cant run Linux/Windows because drivers need to be made, not that Apple is inherently stopping it from running. No ones telling people they aren't allowed to use Linux on a mac, if anything, Apple has support it for their entire lifespan.

They could have easily made it so that Macs are so locked down you cant even fathom installing a new OS, but they didn't, they just aren't creating drivers for other OS, which is fine, it's not their job to support something they don't want to support.
Eh ... kinda. They don't directly "stop" it from running, but they also don't just "not publish drivers for other OSes" (which, as you say, is their right), but also don't publish specs or relevant hardware information that would allow others to more easily write those drivers themselves. This has been a constant throughout Linux's entire existence -- "oh we're not stopping you using it on our hardware, wink wink, we're just not giving you any help whatsoever, not even documentation we already have and could easily provide, because fuck you" -- and most drivers early on were the result of reverse-engineering (which I note is happening again with whatever the Ahasi replacement is called since the Ahasi fags declared "no AI lol" and someone else fed an AI agent a fucking mirror and webcam access on a MacBook to figure that shit out instead :story:).

IIRC there's some fairly nasty bootloader shenanigans you have to deal with to get a modern Mac to boot anything besides MacOS off internal storage; it'll begrudgingly boot from a USB flash drive but actually replacing MacOS on the built-in storage can be a complete pain in the (mutilated) dick depending on which revision you've been "blessed" with. Some "Safeboot"-tier signed image bullshit or something like that. Naturally they don't sign just any image and the hardware doesn't trust your keys by default, etc.
 
A strange restriction (on libreboot's part). Can the EFI (i.e. vfat/fat32) partition be used instead just to stash a functional boot loader, kernel image and initrd?
Its because Leah Rowe (power word: Francis) is a stupid impotent faggot who openly decried the Omarchy crowd's efforts to boot on Libreboot. IIRC it was something to do with the specific Limine EFI flavor that Omarchy uses somehow being incompatible with the SeaGRUB flavor of Libreboot. Poosted about it here.
 
Its because Leah Rowe (power word: Francis) is a stupid impotent faggot who openly decried the Omarchy crowd's efforts to boot on Libreboot. IIRC it was something to do with the specific Limine EFI flavor that Omarchy uses somehow being incompatible with the SeaGRUB flavor of Libreboot. Poosted about it here.
Yeah, I figured it had to be troon-related. Fucking assholes. Why they can't just cornhole each other in private and leave technology out of it is beyond me.
 
Yeah, I figured it had to be troon-related. Fucking assholes. Why they can't just cornhole each other in private and leave technology out of it is beyond me.
A lot of people need reminders that prioritising social politics over common goals is exactly what big corporations want.
Shit being divided into left wing extremists, centrists, and right wing extremists is how "divide and conquer" works.
 
That's what pisses me off most about Apple. When they actually do innovate, they smear it in so much bullshit, lock it down so tight, and mark up the price so hard it buries the innovation in retardation.
Pretty much this. They can do some great innovations. But they can do some of the most anti consumer innovations and the industry will follow in their footsteps. Like removing the headphone jack, batteries that aren’t removable, and locking down your ecosystem. It’s just bananas.
But they're far too arrogant for that and have been huffing their own farts for far too long to ever consider doing it. They're addicted to charging their "shiny plastic" premium and locking down their gear. They should have been laughed off the world's stage for that ridiculous $1,000 non-adjustable plastic monitor stand, but they weren't, and that's the moment I think they were irretrievably lost as a company.
I really blame the people buying their shit and turning Apple
into the cult of Apple. Anyone but Apple would of been laughed off the stage.

But Apple also has Mac Pro wheels that cost over $500. These people buying these are brain dead.

A lot of people need reminders that prioritising social politics over common goals is exactly what big corporations want.
Shit being divided into left wing extremists, centrists, and right wing extremists is how "divide and conquer" works.

It really all started with Occupy Wallstreet. Big corps saw they were getting so much bad press that they went heavy into identity politics.

Now you got people celebrating corporations and treating them like a sports team. It’s gross
 
I just want my far-right NS-OS. 💔
Rust free aryan pilled 1488 OS. Donation page towards Iran and North Korea. Custom lightweight environment where every icon is hand painted pixel art. System sounds that don't come from a free audio site. Loading cursor is a black sun spinning .
 
I don't care how good "Apple Silicon" is as a computing platform is under the hood, because I know I can only ever get it from one very shitty company who engages in obnoxious anti-consumer practices
so whats cool is apple is not magic and theyre not the only ones working on arm. im expecting boutique linux workstation vendors to offer arm systems with comparble performance sooner rather than later
 
Rust free aryan pilled 1488 OS. Donation page towards Iran and North Korea. Custom lightweight environment where every icon is hand painted pixel art. System sounds that don't come from a free audio site. Loading cursor is a black sun spinning .
I tried OpenMandriva with XLibre and SonicDE, but trying to set that up would get me a bad trip to Dependency Hell.

Now, while it's not NS-OS, Chris Titus has done the DHH (kinda). 37 minutes in, he shows off the details (livestream, so no timestamp):

 
I tried OpenMandriva with XLibre and SonicDE, but trying to set that up would get me a bad trip to Dependency Hell.

Now, while it's not NS-OS, Chris Titus has done the DHH (kinda). 37 minutes in, he shows off the details (livestream, so no timestamp):
He already showed off this during his video reviewing omarchy right around the 9:30 mark. The tldr is "Not for me, but it has ideas I like and will steal."

 
Just a fair heads-up: this was a massively autistic project that I've undertaken with roots that go back to ~September 2024 when I jumped from W11 to Mint 22.2.

A persistent problem I've had with daily driving Linux in the Proton age is that Proton logs are gargantuan textfiles where like... ~500ish lines at most have the information you're really looking for, and it's spread out across 25,000+ lines of repetitive noise. I've made a dent in mitigating the troubleshooting headache over the last couple of years, but it's always something I struggled with.

LLMs like Claude and ChatGPT definitely help, but chucking raw Proton logs and wasting free tokens is hideously inefficient. Now that I have a machine with local AI capabilities, I've tried and basically failed for months on end to make models like Llama3.1:8b, qwen2.5-coder:14b, deepseek-r1:14b "work" but it never quite did. The reason why was patently obvious: a combination of "skill issue" and "hard technical limits."

Today, I have excellent news. I've made substantial progress in having a local AI agent properly assist with troubleshooting! A few caveats:

a) The game being tested Hollow Knight (Steam ID: 367520) against Proton Experimental v. 11.0-20260910b and GE-Proton11-7. Hollow Knight is being directly invoked via umu-launcher. Launcher script below.
b) Proton Experimental has a known, persistent failure mode: not playing any of the FMVs. GE-Proton11-7 has a substantially different media stack which does succeed in rendering the FMVs.
c) The game was played for, at most, 10 minutes. Skip no FMVs if they play, make a mad dash for the Forgotten Crossroads Stag Station, ride back to Dirtmouth, save, and quit out.
d) I am 100% using the same WINEPREFIX for both GE-Proton and Proton Experimental. I know it's better to start with a vanilla prefix each time, but I don't have the patience to wipe the prefix every single time.
e) The local AI agent in question for this exercise is Gemma4:12b (--think=false). To make a painfully long story short: Llama3.1:8b unfortunately wasn't good enough no matter how much I tried. Qwen3.5:9b kept ignoring the --think=false flag I kept passing and it kept happening at irregular intervals. Qwen3:14b did come close, but it persistently missed stuff that Gemma picked up on.
f) I'm deliberately disabling think because I don't wanna waste tokens on circular reasoning loops because one data point contradicts its internal knowledge base (cough Qwen3.5:9b cough).

Code:
#!/usr/bin/env bash

set -euo pipefail

PREFIX="/games/umu-cli/HK/Prefix"
GAME="/games/umu-cli/HK/Prefix/drive_c/GOG Games/Hollow Knight/Hollow Knight.exe"
#PROTON="/games/SteamLibrary/steamapps/common/Proton - Experimental"
PROTON="/home/dfirst/.local/share/Steam/compatibilitytools.d/GE-Proton11-7"

export WINEPREFIX="$PREFIX"
export GAMEID=umu-367520
export STORE=gog
export PROTONPATH="$PROTON"
export DXVK_FRAME_RATE=60
export MANGOHUD=1
export PROTON_LOG=1
export PROTON_NO_ESYNC=1
export PROTON_NO_FSYNC=1

exec umu-run "$GAME" "$@"

The method is... not really "simple" but "good enough for a turbosped like me to smush it together and get it 'working.'" Anyone else who's curious and with similar hardware to me (re: @wew lad) can give this a try if they so choose, and hopefully come up with a more elegant solution than what I got.

FIRST: You need to trim the raw steam log. This is unavoidable. You don't wanna eyeball it either. The below script is something that I started with GPT-o4, it worked reasonably well, and then Perplexity had a go at tweaking it, until most recently, Sonnet 5 Medium had its go. Claude made the most substantial revisions. I've always kept the below script in $HOME/.local/bin and invoked it thusly: proton-summarise steam-367520.log > 367520-proton-version-goes-here-summary.txt. Screw around with it if you want to.

Code:
#!/usr/bin/env bash

# ============================================================
# proton-summarise.sh
#
# Extracts the most useful sections from a Proton log
# for analysis by an LLM or a human troubleshooter.
#
# Usage:
#   proton-summarise <log_file>
#       Combined output on stdout (original behavior).
#
#   proton-summarise --split <log_file> <steam_id>
#       Writes each slice to its own file:
#         <steam_id>-summary-slicea.txt
#         <steam_id>-summary-sliceb.txt
#         ... through sliceg.txt
#       for feeding one slice at a time to a small model.
# ============================================================

SPLIT_MODE=0
if [[ "$1" == "--split" ]]; then
    SPLIT_MODE=1
    shift
fi

if [[ "$SPLIT_MODE" -eq 1 ]]; then
    if [[ $# -ne 2 || ! -f "$1" ]]; then
        echo "Usage: $0 --split <path_to_proton_log> <steam_id>"
        exit 1
    fi
    RAW_LOG_FILE="$1"
    STEAM_ID="$2"
else
    if [[ $# -ne 1 || ! -f "$1" ]]; then
        echo "Usage: $0 <path_to_proton_log>"
        echo "       $0 --split <path_to_proton_log> <steam_id>"
        exit 1
    fi
    RAW_LOG_FILE="$1"
fi

TEMP_OUT=$(mktemp)
TEMP_LOG=$(mktemp)

cleanup() {
    rm -f "$TEMP_OUT" "$TEMP_LOG"
}
trap cleanup EXIT

# ============================================================
# GLOBAL PRE-FILTER
#
# Wine/Proton logs contain several independent families of
# mechanical register/address-dump noise, emitted by different
# subsystems (trace:unwind:, trace:seh:, etc.) during exception
# unwinding. On a typical log trace:unwind: alone is 95%+ of
# total line volume. These lines carry no narrative content -
# they're raw CPU register values, not descriptions of what
# happened - so they're stripped once here by SHAPE (not by
# naming every subsystem) so every slice below is filtered
# consistently:
#   1. The entire trace:unwind: subsystem (always dump-shaped)
#   2. Any line that is itself a register dump, regardless of
#      subsystem - e.g. "rax=... rbx=..." or "r8=... r9=..." -
#      identified by two or more NN=hexvalue pairs on one line.
# This deliberately does NOT strip narrative exception lines
# like "sigsys_handler SIGSYS" or "dispatch_exception code=6ba
# (RPC_S_SERVER_UNAVAILABLE)" - only their register-dump
# continuation lines.
# ============================================================

grep -v 'trace:unwind:' "$RAW_LOG_FILE" \
| grep -vE '([a-z0-9]{2,3}=[0-9a-fA-Fx]+[[:space:]]+){2,}' \
> "$TEMP_LOG"
LOG_FILE="$TEMP_LOG"

# ============================================================
# Helper: slice_target <slice_letter>
#
# In split mode, returns a dedicated per-slice file path.
# In combined mode, returns the shared TEMP_OUT accumulator.
# The grep pipelines below are unchanged either way - only
# where they write differs.
# ============================================================

slice_target() {
    local letter="$1"
    if [[ "$SPLIT_MODE" -eq 1 ]]; then
        echo "${STEAM_ID}-summary-slice${letter}.txt"
    else
        echo "$TEMP_OUT"
    fi
}

if [[ "$SPLIT_MODE" -eq 0 ]]; then
    echo "=== SECTIONS FOR AI AGENT ===" > "$TEMP_OUT"
    echo "" >> "$TEMP_OUT"
fi

# ============================================================
# A. GRAPHICS INITIALIZATION
# ============================================================

TARGET=$(slice_target a)
[[ "$SPLIT_MODE" -eq 1 ]] && : > "$TARGET"
[[ "$SPLIT_MODE" -eq 0 ]] && echo "--- SLICE A: GRAPHICS & DXVK INITIALIZATION ---" >> "$TARGET"

grep -Ei \
'vulkan|dxvk|d3d11|adapter|device|vkCreate|swapchain|gpu' \
"$LOG_FILE" \
| grep -viE \
'radv is not a conformant|\[MANGOHUD\]|loaddll:(build_module|free_modref).*winevulkan' \
| head -60 \
>> "$TARGET" 2>/dev/null

[[ "$SPLIT_MODE" -eq 0 ]] && echo "" >> "$TARGET"

# ============================================================
# B. HARD CRASHES / EXCEPTIONS
# ============================================================

TARGET=$(slice_target b)
[[ "$SPLIT_MODE" -eq 1 ]] && : > "$TARGET"
[[ "$SPLIT_MODE" -eq 0 ]] && echo "--- SLICE B: CRITICAL CRASH & UNHANDLED EXCEPTIONS ---" >> "$TARGET"

grep -C 4 -Ei \
'unhandled exception|page fault|access violation|err:seh|stack overflow|crash|assert|fatal' \
"$LOG_FILE" \
| grep -v 'info:GameThread' \
>> "$TARGET" 2>/dev/null

[[ "$SPLIT_MODE" -eq 0 ]] && echo "" >> "$TARGET"

# ============================================================
# C. EARLY WARNING TIMELINE
# First suspicious events are often more useful than the crash.
# ============================================================

TARGET=$(slice_target c)
[[ "$SPLIT_MODE" -eq 1 ]] && : > "$TARGET"
[[ "$SPLIT_MODE" -eq 0 ]] && echo "--- SLICE C: EARLY WARNING TIMELINE ---" >> "$TARGET"

grep -nEi \
'err:|warn:|failed|exception|fault|assert|dxvk|vulkan|d3d11|mfplat|winegstreamer|dxva2' \
"$LOG_FILE" \
| grep -viE \
'threadname|OutputDebugString|fixme:heap|fixme:ntdll|openxr:get_vulkan_extensions|radv is not a conformant|winebth|scmdatabase_autostart_services.*winebth' \
| head -120 \
>> "$TARGET" 2>/dev/null

[[ "$SPLIT_MODE" -eq 0 ]] && echo "" >> "$TARGET"

# ============================================================
# D. LATE WARNING TIMELINE
# What was happening immediately before exit?
# ============================================================

TARGET=$(slice_target d)
[[ "$SPLIT_MODE" -eq 1 ]] && : > "$TARGET"
[[ "$SPLIT_MODE" -eq 0 ]] && echo "--- SLICE D: LATE WARNING TIMELINE ---" >> "$TARGET"

grep -nEi \
'err:|warn:|failed|exception|fault|assert|dxvk|vulkan|d3d11|mfplat|winegstreamer|dxva2' \
"$LOG_FILE" \
| grep -viE \
'threadname|OutputDebugString|fixme:heap|fixme:ntdll|openxr:get_vulkan_extensions|radv is not a conformant|winebth|scmdatabase_autostart_services.*winebth' \
| tail -200 \
>> "$TARGET" 2>/dev/null

[[ "$SPLIT_MODE" -eq 0 ]] && echo "" >> "$TARGET"

# ============================================================
# E. MEDIA FOUNDATION / VIDEO PLAYBACK
# Catherine Classic and many JP games love to die here.
# ============================================================

TARGET=$(slice_target e)
[[ "$SPLIT_MODE" -eq 1 ]] && : > "$TARGET"
[[ "$SPLIT_MODE" -eq 0 ]] && echo "--- SLICE E: MEDIA FOUNDATION & VIDEO PIPELINE ---" >> "$TARGET"

grep -Ei \
'mfplat|winegstreamer|gstreamer|wmv|decoder|dxva2|quartz|mf\.dll|evr:' \
"$LOG_FILE" \
| grep -viE \
'^[0-9.]+:[0-9a-f]+:[0-9a-f]+:trace:loaddll:' \
>> "$TARGET" 2>/dev/null

[[ "$SPLIT_MODE" -eq 0 ]] && echo "" >> "$TARGET"

# ============================================================
# F. REPEATED ERROR COUNTS
# Helps identify recurring offenders.
# ============================================================

TARGET=$(slice_target f)
[[ "$SPLIT_MODE" -eq 1 ]] && : > "$TARGET"
[[ "$SPLIT_MODE" -eq 0 ]] && echo "--- SLICE F: REPEATED ERROR COUNTS ---" >> "$TARGET"

grep -Ei \
'err:|failed|exception|fault|assert' \
"$LOG_FILE" \
| sed 's/^[0-9:.]*://' \
| sort \
| uniq -c \
| sort -nr \
| head -30 \
>> "$TARGET" 2>/dev/null

[[ "$SPLIT_MODE" -eq 0 ]] && echo "" >> "$TARGET"

# ============================================================
# G. PRE-MORTEM EXECUTION TRAIL
# Last meaningful lines before shutdown.
# ============================================================

TARGET=$(slice_target g)
[[ "$SPLIT_MODE" -eq 1 ]] && : > "$TARGET"
[[ "$SPLIT_MODE" -eq 0 ]] && echo "--- SLICE G: PRE-MORTEM EXECUTION TRAIL ---" >> "$TARGET"

grep -vEi \
'pid|process|tid|ExitCode|terminate|shutdown|info:GameThread|trace:mscoree:(DllMain|_CorDllMain)' \
"$LOG_FILE" \
| tail -60 \
>> "$TARGET"

[[ "$SPLIT_MODE" -eq 0 ]] && echo "" >> "$TARGET"

# ============================================================
# OUTPUT
# ============================================================

if [[ "$SPLIT_MODE" -eq 1 ]]; then
    echo "Wrote 7 slice files:"
    for letter in a b c d e f g; do
        echo "  ${STEAM_ID}-summary-slice${letter}.txt"
    done
else
    cat "$TEMP_OUT"
fi

SECOND: It's not enough to have that log summary. You need to split it out into chunks. The script itself has a --split function, I prefer to do it by hand. Either way, you should have seven distinct chunks of information. Those chunks are what you'll feed to the model in question.

THIRD: Make sure you have a good prompt waiting for Gemma4:12b. This is a small model. Don't treat it like ChatGPT or Claude where you just say "YOU ARE SUCH AND SUCH ASSISTING WITH BLAH BLAH BLAH." Role playing like that don't work at a scale this small. Treat it like you're training a new hire you're deliberately trying to avoid overwhelming. You explicitly tell the new hire "don't think too hard about it. I'm gonna review what you tell me anyway. Just do your best." When you approach the prompting like that, and seriously scale back the amount of information you feed it at a time, Gemma does wonderful things!

Code:
PROTON LOG SLICE TRIAGE

You are given one section of a pre-filtered Proton/Wine compatibility log. Mechanical noise has already been removed by a script.

Check this section for any of the following:
- Codec / media / decoder failures (missing plugins, missing decoders, failed media pipeline calls)
- Wow64 / architecture / ELF class mismatches (32-bit vs 64-bit library conflicts, wrong ELF class)
- A named crash or exception: a specific exception code, fault type, or "unhandled"/"access violation"/"page fault" event only
- Anything else that looks like a genuine, rare error rather than routine startup or shutdown activity

Do NOT report any of the following, even though they contain words like "error", "warn", or "fail":
- SEH/exception-unwind mechanics: virtual_unwind, RtlUnwindEx, call_seh_handlers, call_vectored_handlers, RtlRestoreContext, or any line that is only reporting a backtrace address or "returned N"
- Known-boilerplate warnings: "radv is not a conformant Vulkan implementation", any OpenXR/OpenVR "Unable to get required extensions" message
- Routine DLL load/unload trace lines

If a single line could fit more than one category above (for example, an ELF class error is both a media-plugin failure and an architecture mismatch), report it ONCE, under Wow64 / architecture / ELF class mismatches only — that category takes priority.

For each finding, write one line: category, then the exact error text.

If this section contains none of the above, write exactly: "Nothing relevant in this section."

Do not add commentary, explanation, or a summary. Do not describe the section. Just the findings or the one-line negative.

SECTION:

FOURTH: Now you need to feed each slice into Gemma, and see what happens next. I handle it via command substitution with Ollama, you can theoretically do this with a GUI, but self-hosted AI GUIs are a productivity treadmill I've wasted way too much time on in the past. These are the series of commands I'm running in more or less rapid succession. The first seven handle the Proton Experimental log summary, the latter seven handle GE-Proton.

Code:
cat 367520-experimental-summary-a.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
cat 367520-experimental-summary-b.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
cat 367520-experimental-summary-c.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
cat 367520-experimental-summary-d.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
cat 367520-experimental-summary-e.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
cat 367520-experimental-summary-f.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
cat 367520-experimental-summary-g.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
cat 367520-geproton-summary-a.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
cat 367520-geproton-summary-b.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
cat 367520-geproton-summary-c.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
cat 367520-geproton-summary-d.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
cat 367520-geproton-summary-e.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
cat 367520-geproton-summary-f.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
cat 367520-geproton-summary-g.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"

FIFTH: Then you do it, and see what happens! Let's start with Proton Experimental.

Code:
dfirst@devil-summoner:/games/umu-cli/HK/Logs$ cat 367520-experimental-summary-a.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
Nothing relevant in this section.

dfirst@devil-summoner:/games/umu-cli/HK/Logs$ cat 367520-experimental-summary-b.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
Nothing relevant in this section.

dfirst@devil-summoner:/games/umu-cli/HK/Logs$ cat 367520-experimental-summary-c.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
Codec / media / decoder failures: decodebin7: ../src-gst_base/gst/playback/gstdecodebin2.c(4704): gst_decode_bin_expose (): /GstBin:bin4/GstDecodeBin:decodebin7:
Codec / media / decoder failures: ERROR   protonmediaconverter videoconv.c:455:video_conv_change_state: Failed to create video conv state, ret -11.
Codec / media / decoder failures: ERROR   protonmediaconverter videoconv.c:603:video_conv_dump_upstream_data: Failed to open video dump fozdb, ret -11.
Codec / media / decoder failures: ERROR   protonmediaconverter videoconv.c:663:video_conv_init_transcode: Failed to dump upstream data, ret -11.
Codec / media / decoder failures: ERROR   protonmediaconverter videoconv.c:603:video_conv_dump_upstream_data: Failed to open video dump fozdb, ret -11.
Codec / media / decoder failures: ERROR   protonmediaconverter videoconv.c:663:video_conv_init_transcode: Failed to dump upstream data, ret -11.
Codec / media / decoder failures: ERROR   protonmediaconverter videoconv.c:603:video_conv_dump_upstream_data: Failed to open video dump fozdb, ret -11.
Codec / media / decoder failures: ERROR   protonmediaconverter videoconv.c:663:video_conv_init_transcode: Failed to dump upstream data, ret -11.

dfirst@devil-summoner:/games/umu-cli/HK/Logs$ cat 367520-experimental-summary-d.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
Codec / media / decoder failures: decodebin7: ../src-gst_base/gst/playback/gstdecodebin2.c(4704): gst_decode_bin_expose (): /GstBin:bin4/GstDecodeBin:decodebin7:
Codec / media / decoder failures: ERROR   protonmediaconverter videoconv.c:455:video_conv_change_state: Failed to create video conv state, ret -11.
Codec / media / decoder failures: ERROR   protonmediaconverter videoconv.c:603:video_conv_dump_upstream_data: Failed to open video dump fozdb, ret -11.
Codec / media / decoder failures: ERROR   protonmediaconverter videoconv.c:663:video_conv_init_transcode: Failed to dump upstream data, ret -11.
Codec / media / decoder failures: ERROR   protonmediaconverter videoconv.c:603:video_conv_dump_upstream_data: Failed to open video dump fozdb, ret -11.
Codec / media / decoder failures: ERROR   protonmediaconverter videoconv.c:663:video_conv_init_transcode: Failed to dump upstream data, ret -11.
Codec / media / decoder failures: ERROR   protonmediaconverter videoconv.c:603:video_conv_dump_upstream_data: Failed to open video dump fozdb, ret -11.
Codec / media / decoder failures: ERROR   protonmediaconverter videoconv.c:663:video_conv_init_transcode: Failed to dump upstream data, ret -11.

dfirst@devil-summoner:/games/umu-cli/HK/Logs$ cat 367520-experimental-summary-e.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
Wow64 / architecture / ELF class mismatches: (wine:158146) GStreamer-WARNING **: 06:43:00.919: Failed to load plugin '/games/SteamLibrary/steamapps/common/Proton - Experimental/files/lib/i386-linux-gnu/gstreamer-1.0/libgstlibav.so': 
/games/SteamLibrary/steamapps/common/Proton - Experimental/files/lib/i386-linux-gnu/gstreamer-1.0/libgstlibav.so: wrong ELF class: ELFCLASS32
Codec / media / decoder failures: winegstreamer error: decodebin1: Your GStreamer installation is missing a plug-in.
Codec / media / decoder failures: winegstreamer error: decodebin1: ... Missing decoder: MPEG-4 AAC (audio/mpeg, mpegversion=(int)4, framed=(boolean)true, stream-format=(string)raw, level=(string)2, base-profile=(string)lc, 
profile=(string)lc, codec_data=(buffer)119056e500, rate=(int)48000, channels=(int)2)
Codec / media / decoder failures: winegstreamer error: decodebin4: Your GStreamer installation is missing a plug-in.
Codec / media / decoder failures: winegstreamer error: decodebin4: ... Missing decoder: MPEG-4 AAC (audio/mpeg, mpegversion=(int)4, framed=(boolean)true, stream-format=(string)raw, level=(string)2, base-profile=(string)lc, 
profile=(string)lc, codec_data=(buffer)119056e500, rate=(int)48000, channels=(int)2)
Codec / media / decoder failures: winegstreamer error: decodebin7: Your GStreamer installation is missing a plug-in.
Codec / media / decoder failures: winegstreamer error: decodebin7: ... Missing decoder: MPEG-4 AAC (audio/mpeg, mpegversion=(int)4, framed=(boolean)true, stream-format=(string)raw, level=(string)2, base-profile=(string)lc, 
profile=(string)lc, codec_data=(buffer)1190, rate=(int)48000, channels=(int)2)

dfirst@devil-summoner:/games/umu-cli/HK/Logs$ cat 367520-experimental-summary-f.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
Wow64 / architecture / ELF class mismatches: 1 (wine:158146) GStreamer-WARNING **: 06:43:00.919: Failed to load plugin '/games/SteamLibrary/steamapps/common/Proton - 
Experimental/files/lib/i386-linux-gnu/gstreamer-1.0/libgstlibav.so': /games/SteamLibrary/steamapps/common/Proton - Experimental/files/lib/i386-linux-gnu/gstreamer-1.0/libgstlibav.so: wrong ELF class: ELFCLASS32
Codec / media / decoder failures: 1 (wine:158146) GStreamer-WARNING **: 06:43:00.918: Failed to load plugin '/games/SteamLibrary/steamapps/common/Proton - Experimental/files/lib/x86_64-linux-gnu/gstreamer-1.0/libgstlibav.so': 
libavfilter.so.7: cannot open shared object file: No such file or directory
Codec / media / decoder failures: 1 48.831800663 158146 0x7f812c00f450 ERROR   protonmediaconverter videoconv.c:663:video_conv_init_transcode: Failed to dump upstream data, ret -11.
Codec / media / decoder failures: 1 48.831789213 158146 0x7f812c00f450 ERROR   protonmediaconverter videoconv.c:603:video_conv_dump_upstream_data: Failed to open video dump fozdb, ret -11.
Codec / media / decoder failures: 1 44.817432682 158146 0x7f8134001450 ERROR   protonmediaconverter videoconv.c:663:video_conv_init_transcode: Failed to dump upstream data, ret -11.
Codec / media / decoder failures: 1 44.817421212 158146 0x7f8134001450 ERROR   protonmediaconverter videoconv.c:603:video_conv_dump_upstream_data: Failed to open video dump fozdb, ret -11.
Codec / media / decoder failures: 1 44.816062121 158146 0x7f8134001450 ERROR   protonmediaconverter videoconv.c:663:video_conv_init_transcode: Failed to dump upstream data, ret -11.
Codec / media / decoder failures: 1 44.816050071 158146 0x7f8134001450 ERROR   protonmediaconverter videoconv.c:603:video_conv_dump_upstream_data: Failed to open video dump fozdb, ret -11.
Codec / media / decoder failures: 1 44.813758626 158146 0x7f8134001450 ERROR   protonmediaconverter videoconv.c:455:video_conv_change_state: Failed to create video conv state, ret -11.
Codec / media / decoder failures: 1 09.4251800663 158146 0x7f812c00f450 ERROR   protonmediaconverter videoconv.c:663:video_conv_init_transcode: Failed to dump upstream data, ret -11.
Codec / media / decoder failures: 1 09.425137593 158146 0x7f812c00f450 ERROR   protonmediaconverter videoconv.c:603:video_conv_dump_upstream_data: Failed to open video dump fozdb, ret -11.
Codec / media / decoder failures: 1 04.607988699 158146 0x7f812c00f450 ERROR   protonmediaconverter videoconv.c:663:video_conv_init_transcode: Failed to dump upstream data, ret -11.
Codec / media / decoder failures: 1 04.607988699 158146 0x7f8134001450 ERROR   protonmediaconverter videoconv.c:603:video_conv_dump_upstream_data: Failed to open video dump fozdb, ret -11.
Codec / media / decoder failures: 1 04.604012976 158146 0x7f812c00f450 ERROR   protonmediaconverter videoconv.c:663:video_conv_init_transcode: Failed to dump upstream data, ret -11.
Codec / media / decoder failures: 1 04.604001336 158146 0x7f8134001450 ERROR   protonmediaconverter videoconv.c:603:video_conv_dump_upstream_data: Failed to open video dump fozdb, ret -11.
Codec / media / decoder failures: 1 04.596838432 158146 0x7f8134001450 ERROR   protonmediaconverter videoconv.c:455:video_conv_change_state: Failed to create video conv state, ret -11.
Codec / media / decoder failures: 1 04.118168274 158146 0x7f812c00f450 ERROR   protonmediaconverter videoconv.c:663:video_conv_init_transcode: Failed to dump upstream data, ret -11.
Codec / media / decoder failures: 1 04.118148194 158146 0x7f8134001450 ERROR   protonmediaconverter videoconv.c:603:video_conv_dump_upstream_data: Failed to open video dump fozdb, ret -11.

dfirst@devil-summoner:/games/umu-cli/HK/Logs$ cat 367520-experimental-summary-g.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
Nothing relevant in this section.

dfirst@devil-summoner:/games/umu-cli/HK/Logs$

Holy fucking shit! It actually followed all the instructions, and correctly returned the media pipeline errors! Now let's do the same for GE-Proton. Spoiler alert: the logs are much cleaner because of the FFmpeg media stack rewrite that GloriousEggRoll did for the multimedia stack as of GE-Proton11-1. I tested on 11-7, and lo: the only things that it warns about are media stubs. Note, however, that there aren't any ELFCLASS mismatch errors. You don't even need me telling you all of that nonsense because I can attest that GE-Proton played without a hitch. All the cutscenes loaded here, whereas they didn't with Proton Experimental.

Code:
dfirst@devil-summoner:/games/umu-cli/HK/Logs$ cat 367520-geproton-summary-a.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
Nothing relevant in this section.

dfirst@devil-summoner:/games/umu-cli/HK/Logs$ cat 367520-geproton-summary-b.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
Nothing relevant in this section.

dfirst@devil-summoner:/games/umu-cli/HK/Logs$ cat 367520-geproton-summary-c.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
Codec / media / decoder failures: 3350:43808.071:01d4:0404:err:dmo:create_placeholder_file Env STEAM_COMPAT_TRANSCODED_MEDIA_PATH not set.
Codec / media / decoder failures: 3654:44140.769:01d4:0404:err:dmo:create_placeholder_file Env STEAM_COMPAT_TRANSCODED_MEDIA_PATH not set.

dfirst@devil-summoner:/games/umu-cli/HK/Logs$ cat 367520-geproton-summary-d.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
Nothing relevant in this section.

dfirst@devil-summoner:/games/umu-cli/HK/Logs$ cat 367520-geproton-summary-e.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
Codec / media / decoder failures: 43777.195:01d4:0270:fixme:mfplat:media_source_IMFGetService_GetService Unsupported service {dd0ac3d8-40e3-4128-ac48-c0add067b714} / riid {26afea53-d9ed-42b5-ab80-e64f9ee34779}
Codec / media / decoder failures: 43808.072:01d4:0270:fixme:mfplat:media_source_IMFGetService_GetService Unsupported service {dd0ac3d8-40e3-4128-ac48-c0add067b714} / riid {26afea53-d9ed-42b5-ab80-e64f9ee34779}
Codec / media / decoder failures: 44140.769:01d4:0270:fixme:mfplat:media_source_IMFGetService_GetService Unsupported service {dd0ac3d8-40e3-4128-ac48-c0add067b714} / riid {26afea53-d9ed-42b5-ab80-e64f9ee34779}

dfirst@devil-summoner:/games/umu-cli/HK/Logs$ cat 367520-geproton-summary-f.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
Codec / media / decoder failures: 01d4:0404:err:dmo:create_placeholder_file Env STEAM_COMPAT_TRANSCODED_MEDIA_PATH not set.
Codec / media / decoder failures: 01d4:0404:err:dmo:create_placeholder_file Creating tag file h264-used.
Codec / media / decoder failures: 01d4:03f8:err:dmo:create_placeholder_file Env STEAM_COMPAT_TRANSCODED_MEDIA_PATH not set.
Codec / media / decoder failures: 01d4:03f8:err:dmo:create_placeholder_file Creating tag file h264-used.

dfirst@devil-summoner:/games/umu-cli/HK/Logs$ cat 367520-geproton-summary-g.txt | ollama run gemma4:12b --think=false "$(cat /data/projects/prompts/proton-log-triage.txt)"
Nothing relevant in this section.

dfirst@devil-summoner:/games/umu-cli/HK/Logs$

Honestly? I'm psyched that I even managed to get this far... and actually have an LLM at a purported size function for the intended purpose! We've come a long way from shoving raw Proton logs directly into Alpaca, Chatbox, and Open WebUI. I just wanted to share because... holy fucking shit, this is like... a genuine fucking breakthrough for me.
 

Attachments

Pretty much this. They can do some great innovations. But they can do some of the most anti consumer innovations and the industry will follow in their footsteps. Like removing the headphone jack, batteries that aren’t removable, and locking down your ecosystem. It’s just bananas.
IIRC someone mentioned here a while back that the state of Asahi Linux is pretty good right now, there should be ways to bootstrap Gentoo and NixOS up on apple silicone from there. Needless to say the firmware is pr*prietary, but if DHH really does manage to at least partially detransition its core dev base, that might lead it to even greener pastures.
 
IIRC someone mentioned here a while back that the state of Asahi Linux is pretty good right now, there should be ways to bootstrap Gentoo and NixOS up on apple silicone from there. Needless to say the firmware is pr*prietary, but if DHH really does manage to at least partially detransition its core dev base, that might lead it to even greener pastures.
asahi omarchy would probably make hector suicide ngl
imagine how extreme that humiliation would be lmao
 
Back
Top Bottom