this post was submitted on 18 Jan 2024
762 points (99.1% liked)
Linux
48333 readers
915 users here now
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I was like you using arch packages for everything until ferdium was hit by a terrible bug that broke its zoom function and wont be fixed in months since it is an issue with electron. Now I use the appimage version of it to downgrade to an older version.
And then there are the rust programs that you can only find as aur git packages which means installing a bunch of dependencies and all the crap that cargo puts into my home dir just to build one binary, for that I just instead take the appimage version or sometimes the binary if they release it and place it in ~/.local/bin.
Another good thing is that the appimages get compressed and take less disk space, for example the libreoffice package in arch is 600 MiB while the appimage is 300 MiB.
And the great thing is that I can just drop my homedir into any distro and as long as I make sure that fuse is installed everything will work out of the box.
It sounds like NixOS would solve all your problems. And it makes coffee too!
Still figuring out Nix for my daily driver (too many fun customizations moving away from gnome), but love it so far and built my last self-hosted box with it. So easy to redeploy after the initial learning curve. Boot from ISO, partition with disko, upload SSH key to decrypt sops, install.
Oh and since practically everything can be overridden, its easy to get bleeding edge using existing packages!
Nix is objectively a bad language. Glancing past the syntax (which is atrocious and the parser is completely unhelpful) it's just a bad idea to mix lazy evaluation and dynamic typing, the only way to get understandable error messages with nix is to put asserts all over the place, hoping one of them gets triggered by the evaluator.
That said I still love the system to bits and fixing the language actually wouldn't be that hard: Add static typing, with inference most stuff should just run as-is. Exception are the two or three uses of the y-combinator (yes, seriously, that's how you recurse in nix) deep in the bowels of nixpkgs, e.g. during stdenv bootstrap. Just make
fix
a primitive, or maybe a plain fold I don't think nix even needs to be Turing-complete. Reason it's not being done is that there's enough other stuff to work on and, well, Stockholm syndrome. Good news: Nix doesn't support constructing import paths dynamically, that would have been a nightmare to sort out in a static setting.I don't mind most of the language having FP experience, but I agree the lack of static typing just sucks. I'm using the repl a lot to try and track down why things aren't aligning quite right when trying different techniques to keep things DRY and organized. Documentation is also a headache as a newb with the multiple ways of structuring a repo while trying to grok all the implicits and how it all gets merged.
Is NixOS xdg base dir compliant? that is one of the reasons I don't use flatpak.
Yes, all the environment variables are set automatically and programs respect them.