kibasnowpaw
Reaction score
395

Profile posts Latest activity Postings About

  • Picked up a Havit KB496L mechanical Bluetooth keyboard for 50 kr

    Today I grabbed a used Havit KB496L mechanical keyboard for only 50 Danish kroner, which is roughly €6.7 / $7.8 USD. For that price, it was hard to say no.

    The keyboard itself works, but getting it working properly on Linux was a bit of a pain.

    I am running Kubuntu on my gaming PC, and at first Bluetooth looked like it was working. The service was running, BlueZ saw my Bluetooth controller, and bluetoothctl show reported:

    Code:
    Powered: yes
    Pairable: yes
    Discovering: yes

    But the keyboard did not show up in normal scanning.

    The keyboard reacted to the pairing commands, though:

    Code:
    Fn + Q = Bluetooth slot
    Fn + P held for a few seconds = pairing mode

    The keyboard started blinking, and my phone could see it, so I knew the keyboard itself was not dead.

    The useful breakthrough was using btmgmt instead of only relying on bluetoothctl:

    Code:
    sudo btmgmt find

    That finally showed the keyboard:

    Code:
    DC:2C:26:31:15:94 type BR/EDR
    name KB496L

    After that, I went back into bluetoothctl and paired it manually by address:

    Code:
    bluetoothctl
    power on
    agent KeyboardOnly
    default-agent
    pairable on
    pair DC:2C:26:31:15:94
    trust DC:2C:26:31:15:94
    connect DC:2C:26:31:15:94
    info DC:2C:26:31:15:94

    Once paired, Linux reported it correctly:

    Code:
    Name: KB496L
    Icon: input-keyboard
    Paired: yes
    Bonded: yes
    Trusted: yes
    Connected: yes
    UUID: Human Interface Device

    So yes, it works now.

    The annoying part was that it did not clearly appear at first in the normal Bluetooth UI or basic bluetoothctl scan. It looked like the dongle or Linux Bluetooth was broken, but the lower-level scan showed the keyboard as a BR/EDR device with the name KB496L.

    For 50 kr, I cannot really complain. It was cheap, mechanical, and now it works on Linux. But this was definitely one of those classic Linux moments where the hardware works, the system works, but you still have to dig through the stack manually before everything finally connects.

    ❄️ Audiobook Shelf Manager ❄️
    My Linux Audiobook Gallery, Editor, and Tracker

    Project PageGitHub Repo

    2026-05-16-20-32.png


    I built my own Linux audiobook manager because I could not find anything that handled local audiobook collections the way I wanted.

    Most audiobook software focuses on playback.

    Mine focuses on managing the whole collection.

    This is not just an audiobook player. It is a full audiobook library tool built for people who actually maintain their own files, folders, covers, metadata, series progress, and review tracking.



    What it can do

    • Audiobook gallery — browse authors and series visually with cover tiles.
    • Metadata editor — edit MP3 tags directly from the app.
    • Cover manager — use folder covers, artist covers, sidecar covers, and embedded artwork.
    • File renamer — rename tracks cleanly based on metadata.
    • Read / watched tracker — track what has already been read or listened to.
    • Ownership tracker — see what you own and what is missing from a series.
    • Goodreads tracker — track whether Goodreads has been updated.
    • Audible review tracker — track whether an Audible review is done.
    • Multi-folder library support — scan multiple audiobook folders into one combined gallery.
    • Portable tracking — the newer local version can store tracking data inside MP3 files using custom ID3 fields.



    Why I think this is different

    There are audiobook players.

    There are tag editors.

    There are media servers.

    There are file renaming tools.

    But I wanted one Linux tool that could handle the actual work of managing an audiobook collection:

    • Covers
    • Metadata
    • Clean filenames
    • Series progress
    • Read status
    • Ownership status
    • Goodreads status
    • Audible review status
    • Multiple library folders

    That is why I made Audiobook Shelf Manager.

    It is not made to be another media player. It is made to be a library-control tool.



    Current status

    This is still alpha software.

    The GitHub version may not always be as new as the version I currently have installed on my own OS, but the core idea is already working.

    For my own use, this is honestly the best audiobook manager I have found — because I had to build it myself.



    Links

    Project page:
    https://kibasnowpaw.blog/2026/05/16/audiobook-shelf-manager/

    GitHub:
    https://github.com/kibasnowpaw/AudiobookShelfManager



    If people are interested, check it out, give feedback, star it, open an issue, or just let me know.

    If enough people care about it, I may put more time into cleaning it up and pushing the newer version properly.


    #Linux #Audiobooks #AudiobookManager #AudiobookShelfManager #Python #Qt #PySide6 #Flatpak #OpenSource #FOSS #MetadataEditor #LinuxApps #LocalFirst #KibaSnowpaw
    Dungeon Keeper has always been one of my favorite games.

    I just installed it again on Linux, this time using KeeperFX, and honestly it runs the way it should. That is always the best feeling with old games. Not just “it launches,” not “it works after five hacks and half the game is broken,” but actually playable.

    Dungeon Keeper is still one of those games that feels different from almost anything else. It is not just a strategy game where you build rooms underground. You are managing a living dungeon full of creatures with bad attitudes. You dig out rooms, build your economy, attract monsters, train them, slap imps when they are being useless, defend against heroes, and slowly turn the map into your own evil little kingdom.

    What makes it special for me is the personality. The game has that old Bullfrog humor and atmosphere that modern games almost never get right. It is dark, funny, weird, and still has that “evil manager simulator” feeling where half the game is strategy and the other half is just controlled chaos.

    I played through the first four levels again and streamed it. It took me almost two hours, which says a lot about the gameplay. Dungeon Keeper is not really a game you rush through if you are actually playing it properly. You build, expand, train, defend, explore, and sometimes just sit there planning what part of the dungeon to improve next.

    KeeperFX also adds a lot more than I expected. It is not just a compatibility fix. It has extra missions and improvements too, so this is probably the best way to play Dungeon Keeper today if you still love the original.

    My plan is to go through the original campaign again, then maybe move into the extra missions after that. This is one of those games I do not just want installed for nostalgia. I actually want to complete it again.

    First 4 levels live stream, about 2 hours:

    Getting there slowly, one game at a time.

    This is my little Wine/Lutris shelf right now, and everything you see here works.

    Code of Honor 2: Conspiracy Island from disk works.
    Conflict: Desert Storm 2 from disk works.
    Delta Force: Black Hawk Down from disk works.
    Dungeon Keeper Gold from GOG works, and I also installed KeeperFX.
    Of Orcs and Men from disk works.
    StarCraft from disk works.
    StarCraft with cnc-ddraw works.
    Epic Games Store works in Wine.
    TextAloud 3 works in Wine.
    Winamp works in Wine.

    I have even live streamed most of them for about an hour each just to prove they are not only launching, but actually playable. The only one I have not streamed this time around is Dungeon Keeper, because I just installed it again, but I do have an old stream from the last time I played it.

    It has not all been plug and play. Some of the old games have needed the usual Linux/Wine fighting: DXVK off, MangoHud off, old resolution handling, Wine virtual desktop, sound fixes, old installers, broken online registration junk, dead services, and all the other classic old PC game nonsense. But that is also kind of the fun part for me. I grew up with PC games on disk, and I like getting them running again instead of just letting them sit on a shelf doing nothing.

    My plan is to slowly build up a proper old-game setup on Linux with as many of the games I played through the years as I can get working. I also want to install all the physical disk games I still own. If I fall over more old PC games at a price I actually want to pay, I may pick them up too.

    I am not trying to make the cleanest or most modern setup. I am trying to rebuild my own old PC gaming history, but running on Linux.

    One game at a time.
    2026-05-09-06-16.png
    Old PC game installer tries to speedrun contract law

    So I was installing Code of Honor 2 in Wine, and the installer does something I have to laugh at.

    On the first setup screen there is an option called:

    Express Install

    Sounds normal enough, right? Just a quick install option.

    But under it, the installer says:

    Choosing the “Express install” mode is equivalent to accepting the license.

    And the best part?

    It is ticked by default.

    So according to this installer, I did not click “I accept the license agreement.” I did not get a proper license screen. I did not actively agree to anything. The installer just put a default tick in a box called “Express Install” and then said, “Congratulations, you agreed.”

    That is not consent. That is the installer doing legal parkour.

    There is a reason most companies use wording like:

    I accept the terms of the license agreement

    or make you press an actual I Agree button.

    They do that because it is much cleaner legally. The user can see that they are accepting a license, and the company can later say, “You clicked accept.” It is not hidden inside some default install option that most people would understand as “install this faster.”

    If companies could safely get away with “we pre-ticked a setup option, therefore you accepted the contract,” far more of them would do it. They love removing friction when it benefits them.

    But this one is just funny.

    Express Install: installs the game faster.
    Also Express Install: apparently makes me sign a legal agreement by existing near the Next button.

    Old PC gaming really had everything:
    bad DRM, weird installers, questionable DirectX errors, and now legally ambitious checkboxes.

    2026-05-07-19-38.png
    • Like
    Reactions: CaffeineAddict
    CaffeineAddict
    CaffeineAddict
    You have a point, but software licenses are meaningful only if software vendor wants to sue you, e.g. because you cracked and redistributed it without their consent.
    In that case you could say something like "I wasn't present a license".

    In all other cases they're pretty much moot point, nobody reads them and nobody verifies what users do.
    kibasnowpaw
    kibasnowpaw
    You are right but I still find it funny.
    CaffeineAddict
    CaffeineAddict
    yes, it's not correct, license should be displayed and user forced to explicitly agree.
    My first gameplay test had sound problems, because for some reason when I started streaming with OBS, the sound would mess up and just disappear.

    So I finally set up my dedicated streaming PC, something I had not gotten around to doing before. That ended up taking about 4 hours, mostly because making a bootable Windows 10 USB from Linux turned into way more pain than it should have been. Ventoy gave me problems, the ISO/USB setup caused issues, and I ended up having to do it the manual way with the Windows ISO, FAT32, and split install files before it would finally boot and install.

    But I got Windows 10 installed, got the NVIDIA driver working, got the AVerMedia 4K PCIe capture card working, and got OBS running on the streaming PC.

    I also had to clone the screen instead of using passthrough through the capture card. I think that is part of why things got a little messy, or maybe it is because I could only clone the screen properly on X11, at least with the method I know. For some reason X11 also gives me problems with fullscreen in some games. Some games just do not want to behave properly in fullscreen, and that is not something I want to fight with right now.

    So for now I am just playing in windowed mode and letting the streaming PC handle OBS. It was annoying to set up, but it works.



    Old multi-disc Windows games in Wine can still be a pain.

    I was installing Conflict: Desert Storm II through Lutris/Wine from the original physical CDs. Disc 1 installed fine, but when the installer asked for Disc 2, Wine seemed to keep the optical drive busy. Because of that, Linux could not properly unmount/remount the drive in a way the installer would accept.

    The system could see Disc 2, but the installer still refused to continue. The mount path also got messy, where it still looked like the old Disc 1 mount even though the label showed Disc 2.

    Instead of fighting Wine and the physical CD drive, I worked around it by making an ISO of Disc 2 and mounting that manually. That way Wine could keep using what it thought was the same CD drive, but the content was actually Disc 2.

    Basically:

    1. Install from Disc 1.
    2. When the installer asks for Disc 2, create/mount a Disc 2 ISO.
    3. Point Wine/Lutris at the mounted ISO path.
    4. Continue the installer.

    It is one of those classic Linux/Wine moments where the game itself is not really the problem — the old installer and disc swapping are.

    Still, I got around it. Physical old PC games can be annoying under Wine, but with Lutris, ISO mounting, and a bit of manual work, they can still be made to run.
    2026-05-06-09-03.png
    Running old programs through Lutris is honestly one of the reasons I still keep messing with Linux.
    Some of my older programs still work fine, but only if I go back far enough in Wine.

    That’s also why I’m using Wine 8 in Lutris for some of them.
    A lot of the newer Wine setups moving over to WOW64 is not something I’m a fan of at all. I hate WOW64. For newer stuff it may be fine, but for old programs that already barely work, it just becomes one more thing that can break them.

    So yeah, while others move forward, I’m over here dragging myself back to Wine 8 just to keep my old programs alive and running the way I want.

    At the moment I’ve got stuff like TextAloud 3, Winamp, Epic Games Store, and Of Orcs and Men sitting in Lutris, and honestly it feels a bit stupid and a bit beautiful at the same time.
    If it works, it works.

    Sometimes Linux is not about using the newest thing.
    Sometimes it’s about finding the one old setup that still does the job and refusing to let it die.

    2026-05-06-07-51.png
    When i was on vacation in my own contra i fall over Of Orcs and Men on original Disk never been a fan of games like this really but i don't mind try new kind of games so i installed it on wine and it worked.
    Small update on my Audiobook Shelf Manager project.

    I made some big changes to the app and it is finally starting to work the way I wanted.

    What changed:
    • Moved the old “Set Library Root” action out of the main toolbar
    • Added a real Settings menu
    • Built a proper Settings window with left-side navigation, kind of like a game settings screen
    • Added support for multiple library folders instead of only one
    • The app now remembers those folders when I open it again
    • Multiple folders are scanned into one combined gallery
    • Added better support for duplicate artist names across different roots
    • Artist grouping now works better for albums with multiple authors/artists
    • Albums can show under more than one artist when the metadata has multiple names
    • Grouping now prefers Album Artist, then falls back to Artist, then folder names if tags are missing
    This was a pretty big quality-of-life upgrade for me because I had been jumping back and forth between folders before. Now I can keep things like my homemade audiobooks and other audiobook folders together in one place.

    I’m running it as a Flatpak on Ubuntu 26.04 with KDE X11, and it’s feeling a lot closer to how I wanted the app to behave from the start.

    Still more I want to improve, but this was a huge step forward.



    Hi everyone,

    I wanted to share a small update on my app, Audiobook Shelf Manager.

    This is still a work-in-progress audiobook metadata app, but I made some nice improvements to the UI.

    The biggest update is the artist view. I changed the artist cards so they now show series completed out of total series directly on the card in a cleaner way. Before, the artist tiles felt more cluttered and repeated information. Now the layout is tighter, easier to read, and fits the style of the rest of the app much better.

    I also updated the app name to Audiobook Shelf Manager, which reflects what the app does a lot better.

    Right now the app is focused on:
    • editing audiobook metadata
    • cover/gallery handling
    • tracking progress
    • organizing audiobook libraries better
    Tracking is still going to improve over time, but the UI is starting to come together in a way I am much happier with.

    Here is what I worked on in this update:
    • renamed the app to Audiobook Shelf Manager
    • improved the artist card layout
    • added a cleaner series completed X/Y display on artist cards
    • tightened spacing so the artist view looks less loose and more polished
    • kept the album/series cards working the way I wanted while only tightening the artist UI
    It is still under development, but it is getting closer to the look and feel I wanted.

    Feedback is welcome.
    Github
    2026-03-30-19-48.png
    What I am sick of is not change by itself. It is things being forced before they are ready for the people still using what already worked.

    Wine is the best example I have right now. Wine 10 introduced the new WoW64 architecture as experimental, and Wine 11 moved further in that direction by saying pure WINEARCH=win32 prefixes are deprecated and not supported in the new WoW64 mode. On top of that, the separate wine64 loader is gone in favor of one wine loader. That may look clean on paper, but for older 32-bit software and older install chains it is not a harmless change. It breaks assumptions people have been relying on for years.

    I ran straight into that with TextAloud and an old NextUp/Acapela voice. My old working setup only worked because I had already built a real 32-bit prefix the old way. That was not some random lucky install. It took time to get right, and once it worked, it worked because it was a proper 32-bit environment. With the newer WoW64 path, I could still get TextAloud itself to launch, but the setup no longer behaved the same. I had to force-install speechsdk, and even then it only half-worked. The built-in voices showed up, but my own installed voice did not register properly, so the program could not use it the way it did before. That is not a real replacement. That is a partial workaround that breaks exactly where it matters.

    And what makes it worse is the mixed messaging. Winetricks will throw warnings like “You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages,” and there is a current issue specifically about speechsdk still insisting on a WIN32 prefix. That is exactly the sort of thing that tells users the transition is not finished, no matter how much people want to pretend it is. If the new path was actually ready, it would not be tripping over old 32-bit speech components and old verbs like this.

    I tried more than just one thing. I tested the newer WoW64 route. I forced speechsdk. I compared the registry from the old working prefix with the new one. I copied over the parts that were obviously missing. I manually added Acapela-related registry entries. I got far enough that TextAloud opened and the default Microsoft voices appeared, but the custom voice still would not come through properly. In the end, the only thing that actually worked for me was launching the app through Lutris with Wine-GE 8-26 x86_64. That is the only path I found that got me back to something usable. Everything else on the new forced path either failed outright or only half-worked.

    That is why I hate this kind of forced transition. I do not care how nice it sounds in release notes if the real effect is that older working setups get turned into debugging projects. If something worked before, and the replacement still cannot cover the same ground, then it is being pushed too early. That is not “fear of change.” That is people being told to accept regressions because the project wants to move on.

    And it is not just Wine. KDE has already said Plasma 6.8 will be Wayland-only, with the Plasma X11 session supported only into early 2027 through the Plasma 6.7 line. So the same pattern is showing up there too: the old path is being shut down, and users are expected to move whether their use case is fully covered or not.

    So my view is simple. If developers are going to force people off an old path, the new path needs to be ready first. Not “good enough for most users.” Not “fine unless you use older 32-bit software, old voices, old speech components, or old workflows.” Ready. If it is not ready, then they should not force it yet. And if enough real use cases break, then people should keep filing bugs, keep making noise, and keep pushing back until the replacement actually does the job.

    Wine Bug Report

    Chat-GPT-Image-28-mar-2026-21-25-26.png
    Just finished setting up Jellyfin on my own Linux network fully self-hosted, local-first, and locked down

    I recently deployed Jellyfin inside Docker on my home server and got it running exactly how I want: LAN-only access, no WAN exposure, and controlled outbound traffic. The goal wasn’t just “it works” it was understanding and controlling every layer.

    What I did:
    • Installed Jellyfin in Docker
    • Mounted multiple large local drives into the container
    • Configured nftables firewall manually
    • Allowed LAN → Jellyfin (port 8096)
    • Blocked WAN → Jellyfin completely
    • Carefully allowed Docker → WAN only for required outbound traffic (metadata, plugins)
    • Verified everything through logs and container shell access
    I also run a Pi-hole setup handling DNS and DHCP, placed logically between my switch and upstream router/fiber box. That gives me:
    • Full visibility into DNS queries
    • Network-wide ad and tracker blocking
    • Control over device resolution and behavior
    • A central point for filtering and logging
    Why I do it this way:

    I’m very strict about what I allow in and out. Even if I’m not a “target,” that doesn’t mean I should run an open network. When you actually have control over your infrastructure, it makes sense to use it.
    • Inbound traffic = real exposure → keep it blocked unless needed
    • Outbound traffic = controlled, not unrestricted
    • Local services = stay local unless there is a clear reason otherwise
    Most people rely entirely on consumer routers and default configs. That works, but it also means:
    • no visibility
    • no control
    • no understanding of what’s happening on your network
    What surprised me is how not hard this actually is once you start:
    • Docker simplifies deployment
    • nftables is consistent once you understand flow (input/forward/output)
    • Tools like ChatGPT help you learn while doing, not just copy commands blindly
    Why more people should consider this:

    Running your own router/firewall + DNS layer:
    • improves privacy (you decide what leaves your network)
    • improves security (reduced attack surface)
    • improves reliability (no dependency on external services for local media)
    • builds actual understanding of your system
    You don’t need enterprise hardware. You need:
    • a Linux box
    • some time
    • willingness to learn
    And honestly, that last part is the only real barrier.

    I wish more people realized this isn’t out of reach. It just sounds harder than it is.

    85926798-ae74-4d91-9e8d-b7bd62173087.png
    L
    LlNUX
    It certainly is very impressive, sounds rather complex to a newbie such as I . Here to learn so I will try to understand the technology and terminology via screenshot and searching.
    Thanks for posting this .
    kibasnowpaw
    kibasnowpaw
    Thanks, and yeah I get why it sounds complex from the outside.

    The Jellyfin part itself is not really that bad. Docker makes that fairly simple once you understand mounts, ports, and where the config lives.

    The part that makes my setup sound more complex is that I am not just running Jellyfin. I also built my own router/firewall setup with DHCP and Pi-hole handling DNS for the network. So I am controlling more layers myself instead of just letting a normal consumer router do everything in the background.

    So the setup is more like:

    Jellyfin = media server
    Docker = container running Jellyfin
    nftables = firewall rules
    Pi-hole = DNS filtering / ad blocking
    DHCP = handing out IP addresses
    Linux router/firewall = controlling traffic between my LAN and the outside

    Once you split it up like that, it becomes easier to understand. It is not one giant magic thing. It is just several small systems working together.

    Also small side note: you may want to think about changing your username a little. “LlNUX” with the letters looking like Linux can make some people think it is a bot/spam account, even if you are real. Just saying it so people don’t ignore you by mistake.
    • Like
    Reactions: LlNUX
    L
    LlNUX
    Thanks for the reply.
    Appreciate what you say about the name, being ignored suits me.
    I went from Ubuntu Server 25.10 to 26.04 prerelease. 26.04 comes out next month while I’m on vacation, so I just jumped on it early and took the hit now instead of later. I already knew I was going to run into problems, and I did almost right away.

    The first thing that broke was internet after boot. I had no connection until I manually ran sudo systemctl restart NetworkManager. After checking logs, it looked like some boot-order mess involving NetworkManager, netplan-configure, nss-user-lookup.target, and winbind. I was not really using winbind for anything useful, so it was just pointless baggage on my system, and after disabling/removing it, the network side started acting normal again.

    Then came the Steam and gaming side. I also had old Flatpak Steam leftovers still hanging around, like com.valvesoftware.Steam.Utility.gamescope and com.valvesoftware.Steam.CompatibilityTool.Proton, both throwing end-of-life warnings even though I do not even use Flatpak Steam anymore. Not a fatal issue, but still more leftover junk causing noise.

    Wine on 26.04 prerelease has also been a mess so far. It behaved badly, especially when I tried to run Steam through it. It spent way too much time on locale-related nonsense, and some .exe installers that used to work fine just started hanging or acting wrong. I also had to deal with old Wine cleanup, reinstall confusion, and the usual “is this Flatpak Wine, native Wine, or just old broken leftovers?” mess. Lutris and glxinfo were part of that confusion too, because what the system saw and what I expected it to use were not always the same thing.

    Then I hit the MangoHud and GOverlay problem, and that one was the most obvious because it straight up wrecked the image in-game. Bright Memory: Infinite started looking completely broken, with blown-out reflections, giant light bloom, and pixelated garbage all over reflective surfaces. Wayland made it even worse. X11 fixed part of it, especially the “light source looks like the sun exploding in my face” issue, but not all of it. In the end, it turned out my old manually installed MangoHud and GOverlay were part of the problem. I removed the old installs, wiped the old configs so nothing stale got reused, then recompiled both on the new system. After that, the game started looking normal again.

    I also had to install missing 32-bit libraries along the way, because Linux gaming still loves to remind you that one missing library can be the difference between “works fine” and “why is this broken now?” The ones I ended up installing were: libgtk2.0-0:i386, libpipewire-0.3-0:i386, libxcb-res0:i386, libc6:i386, libstdc++6:i386, libgcc-s1:i386, libgl1:i386, libvulkan1:i386, libx11-6:i386, libxext6:i386, libxrandr2:i386, libxrender1:i386, libxfixes3:i386, libxi6:i386, libxcb1:i386, libxss1:i386, libasound2:i386.

    That is one of the reasons Linux gaming still annoys me sometimes. Two people can have what looks like the same distro, same hardware, same desktop, and still get a very different result just because one system has the right libs, the right rebuilds, the right leftovers cleaned out, or the right bits installed by accident. Once it works, it can work great. But getting there can still be stupid.

    To be fair, not everything I hit was a real 26.04 fault. The phased cloud-init update message was just Ubuntu doing phased rollout stuff. The broken audiobook-manager.service was just an old user systemd service pointing to a deleted Python virtualenv, so that was cleanup, not really an Ubuntu bug. But the actual 26.04 problems I hit first were definitely network boot issues, Wine acting badly, Steam/runtime leftovers, MangoHud/GOverlay breaking visuals, and missing libraries.

    There will probably be more problems I have not hit yet. These were just the first ones.

    Chat-GPT-Image-16-mar-2026-04-41-47.png
    I just got done troubleshooting a really stupid graphics issue in Bright Memory: Infinite on my Linux setup, and it turned out to be a good reminder that sometimes the problem is not the game itself, not Proton itself, and not even Vulkan itself sometimes it is the stuff around it.

    In my case, MangoHud was the main problem.

    The first video shows how broken it looked before. Reflections were completely messed up, bright light sources looked like the sun exploding in my face, and a lot of surfaces turned into a pixelated mess. On top of that, the whole image looked far worse than it should. X11 helped with part of it compared to Wayland, especially with the insane blown-out reflection/light effect, but it did not fix the full problem. The really ugly pixel mess and broken look turned out to be tied to MangoHud on my system.


    What fixed it for me was doing a proper cleanup and rebuild instead of just poking at random settings. I removed my old manually installed MangoHud and GOverlay, wiped the old configs so nothing stale got reused, then recompiled both on my current setup. I also ended up installing some missing 32-bit libraries while cleaning up the system:

    libgtk2.0-0:i386
    libpipewire-0.3-0:i386
    libxcb-res0:i386
    libc6:i386
    libstdc++6:i386
    libgcc-s1:i386
    libgl1:i386
    libvulkan1:i386
    libx11-6:i386
    libxext6:i386
    libxrandr2:i386
    libxrender1:i386
    libxfixes3:i386
    libxi6:i386
    libxcb1:i386
    libxss1:i386
    libasound2:i386

    After that, the game started looking the way it should. That is what the second video shows. The broken lighting, the weird pixelated reflections, and the “what the hell am I even looking at” image quality were gone. After that I was mostly left with the usual kind of stutter I have seen from this game before under VKD3D/DX12, and I also ran out of VRAM because I was playing on max settings while livestreaming from the same machine at the same time, so that part is on me.


    This is also one of the reasons Linux gaming can be frustrating. Two people can run what looks like the same distro, same desktop, same GPU, and still get very different results because one system has the right libs, the right rebuilds, the right runtime, or just less old junk left behind from upgrades. Once it works, it can work great. But getting there can still be way more annoying than it should be.

    For reference, this was on my own setup, not some clean prebuilt gaming distro. I run Ubuntu Server with KDE on top, and because I tinker, compile things, and upgrade over time, I know full well that old builds and old configs can come back and bite me later. That is pretty much exactly what happened here.

    First video: broken mess
    Second video: fixed after cleanup, rebuild, and library cleanup

    If anyone else on Linux gets bizarre overblown reflections, pixelated lighting, or graphics that suddenly look far worse only when MangoHud is active, do not just assume the game is dead. Check your MangoHud build, your config, and whether you are dragging old installs across distro upgrades.
    So yeah, I ended up installing Winamp in Wine on my Linux setup just to see if it would still work, and it actually does.

    I am running Ubuntu Server 25.10 with KDE Plasma, made a dedicated Wine prefix for Winamp, installed it there, and it started up without much drama. Classic skin, playlist editor, media library, the whole old-school setup. It plays fine and honestly looks exactly like it should.

    The weird part is not that it works.
    The weird part is how instantly familiar it feels.

    The second I saw that layout again, it was like getting punched in the face by pure early-2000s nostalgia. Same buttons, same playlist window, same look, same whole vibe. And now I am sitting here on a modern Linux system using Winamp through Wine like some time traveler that missed the exit ramp back to 2004.

    It works, and I am not even going to pretend it is the most logical thing I have installed on Linux.
    But damn, I feel old as fox using this again.

    Still, there is something kind of beautiful about seeing Winamp alive and working on Linux in 2026.

    2026-03-11-11-31.png
    • Like
    Reactions: Rocketing-warp9
    KGIII
    KGIII
    It really whips the llama's arse.
    KGIII
    KGIII
    Also, you reminded me of my favorie player from back in the day. It was JetAudio (COWON), which I actually paid for -- even though it was meant for people who used their MP3 players.

    They made MP3 players pretty early on and made some great hardware. It looks like they still do.
    kibasnowpaw
    kibasnowpaw
    I remember jetaudio just never really used it.
    571498228_1309126411225903_6683223687257329601_n.jpg
    • Like
    Reactions: KGIII
    I should probably not have started making AI album art for my audiobook series cards… because now it turned out so good that I feel like I have to do it for all of them

    But honestly, the default “series cover” for audiobooks is usually just Book 1 reused, and it doesn’t always look that great when you’re trying to build a clean overview.

    So this is probably what I’ll do:
    slowly, series by series, I’ll make custom album art for them over time.

    The nice part is that my homemade BookLibConnect setup now gives me a much better overview anyway:
    • Read
    • Own/in Album
    • Goodreads Review
    So even before everything gets custom art, it already works way better for tracking progress.

    It’s one of those “I made the system better… and now I accidentally created more work for myself” moments
    But honestly, I like how it looks now.

    Also, I own almost all of Daniel Schinhofen’s books. I thought I was only missing 2 series, but I didn’t notice he had started a new one, so I’m actually missing 3 series now.

    I’m also missing the last book in Aether’s Revival, because it came out shortly after I finished the series, so I never got around to it. I still need to buy it and listen to it.

    But yeah I’m really close to having finished almost all of his books by now.


    990d171b-654a-43a0-9bf1-580e843e8880.png
    Been up since 4 AM and still going.

    Worked more on BookLibConnect today, and it’s starting to come together in a way I can actually use.

    A few things I’m really happy with now:
    • R = Read (so R3/14 means I’ve read/listened to 3 out of 14)
    • 14/14 = how many tracks/files are there out of how many I own/expect for that album
    • The metadata box is more or less done now
    • The artist view shows progress too:
      • one number = how many completed
      • the other number = how many I have total
    That kind of visual overview is exactly what I wanted. I don’t want to dig through menus every time just to see what’s finished and what’s missing.

    It’s still a lot of testing, rescanning, checking metadata, fixing UI stuff, and doing small adjustments over and over, but that’s the part that makes it usable instead of just “it runs.”

    Been a long day already, but this is the kind of progress that feels worth it.
    2026-02-24-12-06-1.png
    2026-02-24-12-06.png

    2026-02-24-12-06-2.png
    BookLibConnect – Development Progress (PySide6 / Wayland / Metadata Handling)

    Quick dev update on BookLibConnect.

    Stack:
    • Python 3
    • PySide6 (Qt 6)
    • mutagen for audio metadata
    • Native Linux target (Wayland-first, X11 fallback)
    • Flatpak packaging in progress
    What’s currently stable:

    • Album view with cover detection (folder + per-track sidecar fallback)
    • Embedded cover writing
    • Metadata editing (title, artist, album, album artist, year, genre, track #)
    • Track progress tracking (14/14 indicator)
    • Auto-rename on save (optional)
    • Selection model behavior mostly normalized

    Recent fixes:
    • QTableWidget selection signal loop causing metadata pane desync
    • First-item selection not loading metadata unless re-selected
    • Signal blocking cleanup with QSignalBlocker
    • Wayland rendering alignment inconsistencies
    • Horizontal scroll + dynamic column width behavior
    Still refining:
    • Edge-case selection state after rescan
    • Metadata reload consistency vs. in-memory state
    • Model/view refactor consideration (may migrate away from QTableWidget)
    • Performance under large libraries
    • Better separation between UI state and file state
    The goal isn’t to build “another media player.”
    It’s a Linux-native metadata control tool for audiobook libraries that doesn’t fight the filesystem.

    No Electron. No cloud dependency. No subscription model. Just files, metadata, and control.

    Closer than it was last month. Not done yet.

    2026-02-22-20-03.png
    2026-02-22-20-02.png
  • Loading…
  • Loading…
  • Loading…
Top