![](https://infosec.pub/pictrs/image/0b420a0f-339d-4572-a0a3-70d358a898cb.png)
![](https://lemmy.world/pictrs/image/80c24909-8a49-4cb6-9bdd-4b8621b8cf1d.jpeg)
Nix, git, and alacritty.
Plutus, Haskell, Nix, Purescript, Swift/Kotlin. laser-focused on FP: formality, purity, and totality; repulsed by pragmatic, unsafe, “move fast and break things” approaches
AC24 1DE5 AE92 3B37 E584 02BA AAF9 795E 393B 4DA0
Nix, git, and alacritty.
nixpkgs has been working on adding it for a month now but it uses “surfer” for compilation. It’ll be interesting to see how they end up building it in the Nix style. Looks like it’ll have to involve pnpm.
Don’t worry. NixOS users are spiritual brothers to Arch users, IMO, and we’ll eventually get to the point where it’ll be easier with canonical examples. 🤝
In the meantime, try out the nix package manager while still using Arch to build a package here or there if you’re so inclined.
Thanks for the crypto hate. It’s highly relevant to this discussion. /s
Nix is also a package manager and works on almost every OS and piece of hardware imaginable.
Totally agreed. That’s a big ask, though, because Arch’s docs are the gold standard.
I’m working on converting to impermanence mode this week and let’s just say I’d be done by now if the answers were even close to the quality found in Arch’s wiki.
I find it actually incredible that you don’t know anyone in DEVOPS that uses it. Either you’re at a giant company with a custom stack that replicates its functionality (Meta employees that I asked didn’t know about it) or you don’t talk to other devs. It’s like THE devops tool nowadays (only taking a second place to Docker/OCI).
It does, in fact, work on Mac, FreeBSD, Windows, and actually almost anywhere that SSH can be run.
This comment has a closed source license.
I don’t really care to be honest. Clearly, I’m not as smart as you and would be in hell with maintaining my version-controlled flake that provisions rock-solid stable nix-configs for 8 different machines on a variety of vastly different architectures if I had your 10x dev brain.
🙄
Did you just post a license for your humblebrag soapbox rant about NixOS?
Edit: I’ll leave some points where I agree since you’re very fixated on/preoccupied with who won this debate (or something). In the long run, most Nix users are wishing for a complete rewrite of NixOS with Nix’s modern approach codified as standard. After all, to your point, Nix is just a massive pile of Perl and Bash under the hood. It could unquestionably be more capable if they had the benefit of hindsight (or a proper type system built into the language) like GUIX which uses Scheme as their DSL has. AFAIK, though, Nix flakes are a feature that GUIX badly needs.
For GUIX: Does anyone know about content-addressed derivations in GUIX? I figure that might also be a place where Nix bests GUIX but perhaps some GUIX(pronounced geeks) can correct me before I search for answers.
Tutorials and teaching materials
for those with a limited vocabulary and an unwavering need to correct someone that isn’t necessarily wrong.
They’re the company that created Cardano. They’re well-respected for their code quality and the use of formal methods and academic peer review to develop their software. They started out an enemy of most Haskell devs then won many over with their massive open source contributions to the Haskell developer experience. Their Nix based Haskell dev environment is THE best way to use Haskell with Nix.
They used to be called IOHK or Input Output Hong Kong which is still reflected on their GitHub.
It’s finally ready for mass adoption, IMO. Also, things take a long time to catch on and now that flakes are fairly stable and a lot of pedagogy is popping up in the form of other people’s configs (and the documentation is being actively improved to hopefully someday meet the high standards of Arch), people feel empowered to try it out.
IOG uses it for their entire stack which is packed with incredibly solid (IMO) software engineering decisions from top to bottom.
I tried it because I wanted to run a Cardano stake pool and develop DApps for the Cardano ecosystem. Their build-from-source instructions made me realize how much better it would be to install it with Nix instead of the cargo cult/curse of the current era, a Docker container.
Thanks for your massive contribution to this growing community!
You guys will probably groan but lots of people in this comment section should look into NixOS. My old Ubuntu machine was loaded with hacks I got from stack overflow to get certain things working (a script that runs at boot and shutdown to mount and unmount some network drives I wanted to appear natively). But now, I just use NixOS and there’s nothing on my machines that is even remotely hackey now. I just declare the drives as I want them and when I boot they are there and work as needed.
I absolutely adore xmonad. You can do ANYTHING you dream up in it. Additionally, it helped make Haskell less intimidating for me.
I have high hopes for their Wayland port called Waymonad. But it’s a long way off.
Little known fact: xmonad is the only WM that has a formally-verified base.
I run an xmonad community here: https://infosec.pub/c/xmonad
Perhaps you’re tired of hearing it but this is very close to exactly how NixOS works with home manager.
I do this in combination with Nix-Darwin for one of my machines. I also have some Kubernetes clusters and RISC-V machines running bare metal executables using NixOS-Anywhere and some other stuff.
This is REALLY cool. This is how public funding should be allocated.
It’s still fairly challenging and the documentation is probably, at best, dogshit (if I may be so blunt) at the moment.
OCI is probably a more worthy goal anyway, IMO. And it is unsurprisingly much more well-supported.
I think some of these replies have perhaps missed the powerful idea that made me fall in love with Eelco Dolstra’s idea. Here’s what won me over.
For example: THE main feature is that you could have a different version of say Python (for the sake of this example) installed for each dependency in your system. Let’s say you had Brave working with one version of Python and another piece of software needed a previous version of Python. In an FHS style system, this would be challenging and you’d have to manually patch things to make sure the dependencies didn’t step on eachother. When you updated, your patches would likely have to be changed as well. So, system administration and updating can really break things.
In a Nix store where things can be content-addressed and linked by symlinks to their specific dependencies, they would just work alongside each other due to their unique, hash based folder locations. Each folder in the Nix store is named based on the sha256 hash of that piece of software’s ENTIRE dependency graph, which has powerful implications.
Because of this hash, they’re effectively hermetically sealed from each other and cannot step on each other. The software in the Nix store talks to eachother through symlimks that were made upon compilation of the system.
This is the very definition of Nix and taken far enough to define a whole OS is SUPER powerful concept.
NixOS
😉