Personally I haven’t. While Linux is imperfect, choosing the right distro makes the rest of the experience straightforward. And with it’s whole complexity, I find Linux more user friendly than Windows. Even driver issues, broken shadow file ownership and KDE specifics only made me more confident about my choice to use Linux after I solved everything.


I’m a bit disappointed with packaging/updates. Specifically Arch, I have slow-ish shared internet and didn’t update frequently enough now my system is too outdated (1050Ti, them moving legacy nVidia drivers to AUR is another reason I haven’t updated in a while).
Looking at alternatives.
Void (I still might want something more user-friendly) musl? (but optional and interesting for creating static binaries)
Tumbleweed/Slowroll might be perfect if it weren’t for patterns (and I wish update structure were smarter* than just scheduling).
NixOS is a fun idea but not with declarative desktop settings (I have my own XFWM window theme not uploaded anywhere) and extra mess when it comes to compiling/exporting also running non-packaged executables (especially if I decide to stop using Steam, running what library I can w/o client)
User packaging is also generally questionable, too. I know not to rely on it too much, but I’m also not going to be inspecting package scripts especially not every update.
Other package distribution is a neat idea, but needing to download another graphics driver for Flatpack sort of ruins the point for me (redundant data too). That, and less integration+more manual updates.
* it probably doesn’t exist, but I’d like something that has some sort of awareness of compatibility (be it simple/explicit versioning, build bot troubles, user reports etc). If I haven’t updated in a while, give me a safer update (hold more Major.Minor.newest packages to known-good). If I’m updating regularly, tell me if an update on tuesday might not be great and remind me on friday if it seems better. Let me mark software with some general issues (stability, rendering, features) and alert based on potential fixes.
You don’t have to use patterns on Tumbleweed (and maybe Slowroll also?), if you don’t like them. It’s just a handy shortcut to get most, but not all, relevant packages.
It’s annoying (compared to anything similar on Arch) and will reinstall things you’ve removed. There is conflicting information on the best way to deal with this, either way more complicated than ‘off’. It’s a problem that shouldn’t be a problem, and it seems to be a common issue people have.
Give NixOS another look. It’s no problem to run a declarative system as a base, and plain old dotfiles on top if you want, especially for user stuff. Not sure what you mean by “non-packaged executables” exactly, but I don’t see how NixOS would give you a disadvantage here. Heoric works fine as a Steam alterntative.
I’m not the type to put my dotfiles in git, though. A lot of things I just plan on starting fresh and configuring in-session.
Pre-compiled, non-system binaries.Typically, stuff downloaded from GoG and itch without a client (also the odd thing like BrogueCE). I don’t know if this is always an issue, but it is for anything that uses dynamic linking (checking with
lddis a thing, though can be misleading with runner scripts).I’ve never been interested in the Epic store even for free games. I’m sure there are 10 ways to “solve” this each with their own benefits/drawbacks, but I feel like this is a philosophy issue that creates more problems than it solves for me. And this is without the ability to create static binaries (out of the box) like I’d get with void-linux musl.
That, and seeing talk about how great Nix is but also people having trouble later on too (major updates? bleeding edge woes?).
That’s what I’m saying, you don’t have to! Just install the package (like
neovimor whatever) through NixOS and it will use your ad-hoc dotfiles like it would on any other distro. For a lot of stuff you can make use of declarative NixOS options (programs.neovim = { ... };), but you don’t have to, except for really basic system stuff like networking I guess.Gotcha. There’s several ways do do this on NixOS (
steam-runworks like a charm!), but I’ll concede that there’s an extra step involved here that you don’t have to do on other distros.There’s a learning curve for sure, but I haven’t looked back or experienced any major issues (where I hadn’t shot myself in the foot) since 22.11.
And changes will last on reboot, y’know with the whole immutable thing?
Absolutely! I’ll give you an example. In the NixOS config for my desktop I have the lines:
{ environment.systemPackages = with pkgs; [ firefox ... ]; }So Firefox is installed every time I build a system with this config. This is just like
apt-get install firefoxin that very user can use it after installation. The config lives in the respective user’s dotfiles (.config/mozilla/firefox) and will of course survive reboots.What I chose to do additionally (but this is in no way required!) is a
home-managerconfig for my main account with the lines:{ programs.firefox = { enable = true; policies = { DisableFirefoxAccounts = true; DisablePocket = true; DisableTelemetry = true; DownloadDirectory = "${config.home.homeDirectory}/tmp"; OfferToSaveLogins = false; ... } ... }This is a declarative configuration that basically handles my dotfiles (profiles, extensions, themes, …) for me. I think you have the impression that this is mandatory, but it is really a very specific behavior through the home-manager module, but you can absolutely run NixOS without it.