The Linux Thread - The Autist's OS of Choice

  • 🐕 I am attempting to get the site runnning as fast as possible. If you are experiencing slow page load times, please report it.
I've been fucking around with NixOS lately, but I guess I don't understand what I'm getting vs using Podman/Ansible. Look, I get the that I can have "repeatable" images down to the very last dependency, and a rollback option, but that's honestly never been a problem for me. Is there something I'm missing that would really make or break this OS? Is it worth using nix as a package manager along side others?
 
I've been fucking around with NixOS lately, but I guess I don't understand what I'm getting vs using Podman/Ansible. Look, I get the that I can have "repeatable" images down to the very last dependency, and a rollback option, but that's honestly never been a problem for me. Is there something I'm missing that would really make or break this OS? Is it worth using nix as a package manager along side others?
given the direct comparison to podman (and thus docker) its worth noting that nixos has much less overhead comparatively. Other solutions exist in the application space, and thus have more separation. This means you will have additional virtualization components, whereas nix builds this into the base OS, and thus requires less dependencies at runtime. The Nix language is also completely functional, which sets it firmly apart from ansible which is mostly imperative, but this going deep into programming paradigm autism and is difficult to explain beyond "this is why all the Haskell spergs love it". Reproducibility doesn't always matter but is pretty phenomenal in dev environment contexts (hence the popularity of dev containers), as well as certain types of servers (anything where you want to create many replicas at scale). Its still kind've immature for some of these use cases but has real potential.
 
Does xlibre add anything over the standard xserver for preventing tearing?
I haven't seen what the actual changes they made are to do it. But it seems to work better than the normal xorg package when I use tearfree. Usually when I do that, I can still very slightly see some tearing like when I scroll in a browser. It seems to be just as good as Wayland with xlibre in respect to screen tearing.

The thing I'm actually really interested in with xlibre though is xnamespaces. Which I actually do need to look into. To see where the progress is with it. I'm not sure if it's implemented yet or is going to be implemented in the future at some point.

The ability to sandbox applications into their own namespaces is something that should have been added to xorg a decade ago. I definitely want to mess around with it for sure. I'm interested to see how they get handled and what the work around are for allowing communication between applications when they do need to talk to each other.

I've been fucking around with NixOS lately, but I guess I don't understand what I'm getting vs using Podman/Ansible. Look, I get the that I can have "repeatable" images down to the very last dependency, and a rollback option, but that's honestly never been a problem for me. Is there something I'm missing that would really make or break this OS? Is it worth using nix as a package manager along side others?
Nix is way overrated. Especially for a normal desktop user. Way too much effort, for what you get. The repeatability isn't actually something a normal use case benefits from.

For developers, or some kind of deployment thing where you need to have a ton of systems all the same . It's probably a good choice.

Otherwise, you really aren't gaining anything.
 
I've been fucking around with NixOS lately, but I guess I don't understand what I'm getting vs using Podman/Ansible. Look, I get the that I can have "repeatable" images down to the very last dependency, and a rollback option, but that's honestly never been a problem for me. Is there something I'm missing that would really make or break this OS? Is it worth using nix as a package manager along side others?
With Docker, in your Dockerfile you're probably going to do something like apt update or dnf update or whatever package manager you use. This will literally give you an entirely different docker image each time you build. When you rebuild, you get the latest dependencies.

Now say you're deploying your app one day and everything breaks. You roll back your app version, but still rebuild the image and something is still broken. It's a dependency apparently. Which dependency? What updated in that base distro that broke everything?

Now if you have a pipeline that forces every image to be saved to a container registry, you can use that old image. You don't have to rebuild it. But not all devops/CI people are smart enough to do that. So now you're a bit fucked.

With nix, you have a hash that represents the entire state of the package tree at some point in time. What if you wanted Ubuntu 24 specifically from March 2nd 2025. Good luck figuring out all the packages from that exact date using their git source. But with Nix, you can build your entire setup off that hash. Each time the nix team pushes updates, the entire source tree has a new unique hash. You can build nix containers tied to a hash. You can update that hash and make sure your app works with the new base OS every once in a while too. Nix has a buildLayeredImage function and most of the parameters look exactly like a Dockerfile but in the nix expression language.

You can also package a shell.nix in your git repo, add in niv, and now all the developers on your team are using the exact same version of every dependency if they run nix-shell (or you can setup direnv+nix to do it automatically). Now you don't have to worry about Bob running Postgres 14.3 on macOS while Jared runs Postgres 14.4 on Ubuntu. If you force your team to use nix-shell, you're all use the same versions for all your dependencies directly from /nix/store. Run niv update every once in a while and commit it, and that's like everyone getting a distro update. (Niv creates a sources.json and you can see the exact hash there. You can even have multiple sources for stable/unstable if you want).

I've only used nix-shell/direnv and nix containers. The shell thing worked great at my last job for all our devs. We never got around to using containers there. The containers are less than ideal cause you gotta write all the startup scripts and crap. I've never tried NixOS because fuck systemd.
 
I haven't seen what the actual changes they made are to do it. But it seems to work better than the normal xorg package when I use tearfree. Usually when I do that, I can still very slightly see some tearing like when I scroll in a browser. It seems to be just as good as Wayland with xlibre in respect to screen tearing.
Interesting - the way it works under wayland its very binary. I assume the X server uses a different mechanism entirely if its "doesn't tear, most of the time". As far as I'm aware, tearing can occur as an application flips its display buffer into the display server, or the display server flips it into the gpu during a draw. Maybe tearfree prevents one of those but not the other?
Using a compositor or not might affect it as well, as without a compositor I'm fairly sure you draw directly into the frontbuffer.
The thing I'm actually really interested in with xlibre though is xnamespaces. Which I actually do need to look into. To see where the progress is with it. I'm not sure if it's implemented yet or is going to be implemented in the future at some point.

The ability to sandbox applications into their own namespaces is something that should have been added to xorg a decade ago. I definitely want to mess around with it for sure. I'm interested to see how they get handled and what the work around are for allowing communication between applications when they do need to talk to each other.
I'm interested in this as well because its a deceptively complex undertaking. Hopefully it will be more fine grained than simply separating windows into groups that can't talk to each other.

If its done as dumb isolated groups, things like your window manager, task bar, etc won't be able to see the windows which is obviously terrible UX. Even if those clients are given special namespace-crossing privileges or namespaces are nested (one way barrier), some operations need to support bidirectional communication, such as the clipboard and drag&drop. As a bonus (if I'm remembering correctly) both of those things are add-on standards that the X server itself is unaware of.

Then we have things like global shortcuts which probably won't work at all in a namespace. Not really a way to fix that in a backwards compatible manner without whitelisting specific keys or using the (awful) dbus protocol wayland uses.

Edit to avoid doublepost:
I've only used nix-shell/direnv and nix containers. The shell thing worked great at my last job for all our devs.
Nix and NixOS are absolutely great. Unless you use python or something (I deal with this by not using python). Community is a pity but it luckily doesn't matter most of the time.
 
Last edited:
/ourguy/ dropped another banger.

>MICROSOFT and NVIDIA should be WORRIED!
Ah yes, the company whose operating system is used by 95% of Steam users, and the company with a three billion dollar market cap that mainly deals with AI datacenter hardware, should be WORRIED, that SteamOS is 5-10% better performance on a midrange machine that can't hold steady 60FPS in most games on neither Windows or Linux. Yeah, Satya and Jensen are totally shitting their pants right now, fucking hell this sensationalism is so gay.

I'd like to see a more in-depth comparison that isn't full of emotional fuckery that makes it seem like Linux is 2000% better in games than Windows, even though you'll have benchmark results by the end of the video where in some games Windows will absolutely thrash Linux, Windows will be tied with Linux, and Windows will be beaten by Linux by 10% depending on the specific edge case.

Mainly:
-how much does Windows' default bloat and various settings affect performance?
-how much of Linux's gains in FPS and frametimes stem from it's reliance on DXVK?
-how many of those games can be ran via DXVK under Windows?
-can these games get similar performance gains under Windows thanks to DXVK?

That's the kind of objective, technical Windows vs Linux gaming comparisons I'd like to see since 99% of the Linux gaming magic is DXVK, and DXVK itself is a Windows binary ran under Wine, that also works natively under Windows, and can give major performance benefits in some games, and even fix various issues. For example, Saints Row 2, GTA IV and The Sims 2 on Windows benefit from DXVK a lot, but a disingenuous comparison would say that they absolutely suck under Windows but totally rule under Linux just because Linux will run them via DXVK by default, as it has no other way to run DirectX 9 games, completely ignoring that fact in the comparisons and saying it's some major win, as if you can't just download the latest DXVK repo, copy d3d9.dll from the x32 folder, drop it into the game directory and have the same benefits on Windows.

That being said, DXVK won't necessarily work perfectly on all games under Windows, especially when you start moving from DX9 to DX10/11/12, so in some cases it'll outright fail to launch the game. And again, DXVK may be the major part of how Linux gets it's gaming performance uplifts, but there's also the case of how Linux handles Vulkan compared to Windows, knowing that Linux doesn't support DirectX, and Windows may get messy due to prioritizing DirectX over Vulkan, and DXVK being primarily written for Linux use cases. Still, it would be a way fairer comparison than doing a handful of benchmarks on a system that already struggles on Windows, with the uplifts only looking good in Cyberpunk 2077 and TLOU2 which, you need to be a special kind of faggot to even consider "playing", then doing a sensational "wow" title that doesn't hold up to the test results at all.

Microsoft and Nvidia would be fucking terrified if Linux gaming managed to double FPS on average, but in reality it's a mish-mash of uplifts, ties and degradation. What's impressive is that Linux gaming is actually a thing now, when just a few years ago you couldn't run shit without doing arcane terminal voodoo and ending up with a worse experience than on Windows. Being averagely acceptable is a massive accomplishment, and that's what should be celebrated. Not some made up BS of Linux finally destroying Microsoft or whatever.

Also:
1751885507228.webp
Page 666.
 
Since you mentioned it, what is the best compositor for X? It seems like all the standalone ones (picom, compton, compiz, compipicom picompi pipipicomcomcom) are abandoned or deprecated or who-knows-what.
As near as I can tell, the only workable options are "whatever the X defaults are" or "Borrow KWin out of KDE".
I've found Compton still works fine for me whether it is "depreciated" or not. I don't really need a compositor though, but transparency and such are neat features to have.
 
What is all this 'tearfree' garbage about? I have never seen this imaginary 'screen tearing' on X11. Not even back to when I was using fancy opaque window dragging with WindowMaker on a 486 20 years ago.

TearFree is enabled by default on many Linux distributions. The Arch wiki mentions disabling TearFree if you want to prolong the battery life of your laptop. How much this actually matters, however, I do not know as I haven't used Linux on a laptop for more than a few hours in totality. The issue on Intel systems from my experience is that TearFree works until you exit full screen video playback and then tearing appears. Tearing has never and won't likely ever render a system unusable, so I suppose it's a matter of priority.
 
Last edited:
  • Agree
Reactions: YoRHa No. 2 Type B
A somewhat interesting benchmark from an article that shows X11 being more performant for the author than Wayland just dropped:

They didn't take it well:
1751924939031.webp

1751924525310.webp
There's the classic devotee "It works for me" post from the KDE dev which is funny because if it doesn't consistently work on similar spec devices if that is not an issue with X11, then that could still be a dig against Wayland and there's also a schizo post to boot. Because over two thousand likes on the Github means that anyone who dislikes Wayland must all be that one guy I hate. It's a conspiracy!

IDK how accurate the tests in the original article are but he sounds sincere to me, I don't doubt the results personally. I have had similar weird performance regressions on Wayland, but it is more sporadic on my end. My issue is more consistency, I can expect more stable behavior on X11 than Wayland and that seems to be an unifying experience.
 
Last edited:
A somewhat interesting benchmark from an article that shows X11 being more performant for the author than Wayland just dropped:
...
I am not sure how accurate the tests in the original article is but he sounds sincere to me. I have had similar weird performance regressions on Wayland, but it is more sporadic on my end. My issue is more consistency, I can expect more stable consistency on X11 than Wayland and that seems to be an unifying experience..
What? Something originally designed to run on systems with 4MB of RAM, a 16MHz CPU and over 10 Mbit networks has better performance than today's pajeetware? You don't say.

I'm shocked, shocked I tell you.
 
What? Something originally designed to run on systems with 4MB of RAM, a 16MHz CPU and over 10 Mbit networks has better performance than today's pajeetware? You don't say.

I'm shocked, shocked I tell you.
Technically, Wayland should be faster because it doesn't need to worry about outputting to VT-100 terminals and the like.
But, these are not your dad's programmers. Even if it's not pajeetware, troon brain fog will gum up the works.
It's a wonder it fucking compiles.
 
As I look into the people defacing the XLibre wiki page (calling it a “Nazi” project and a “Nazi bar”), I am struck by the kind of people they are.

One is a Canonical employee (long time Ubuntu & GNOME developer) named Jeremy Bicha.

Jeremy Bicha is a registered sex offender. He was found guilty of sexual battery of a victim under the age of 12 (his sister).

This is an article detailing his crimes:

Jeremy Bicha, in his X profile (
@jbicha
), describes himself as “Progressive”. And gives his pronoun as “he”.
1000010906.webp
Saw this on Twitter just now.
 
Back