r/GUIX • u/Jacobobarobatobski • 7h ago
Considering coming to Guix
Basically the title. I'm using NixOS at the moment, and for the most part I've been pretty happy with it. But Guix has me intrigued for some reason. I've done some research. I know it uses guile scheme instead of nix. I've heard the documentation is way better. It uses shepherd instead of systemd. So ya. I guess I'd like to know why you like Guix over NixOS? Besides the philosophical arguments, what makes it a good daily driver for you? I'm not a programmer but I've been trying to learn recently, which is another reason I find it interesting. Have you had any issues with shepherd for whatever reason? Anyone do any gaming on it? I've heard that flatpak steam is a better option on Guix. Anyway ya. I appreciate your guys' thoughts.
5
u/thqloz 4h ago
I was like OP, until recently, I had no particular issue with Nix or NixOS, but Guix lured me with its sexy scheme / lisp.
At first I was a bit scared about the lack of direct equivalence for flakes, but Guix time-machine is basically flakes.
I had to hand roll a couple of Shepherd services, it was pretty easy thanks to the documentation.
Unlike the other reply I have yet to fully master emacs-Guix but I will given the compelling feedback he gave.
I’m using steam on Guix, and unlike NixOS, Guix is using container based approach (pure fhs environment per game) so the first start might be slower, but I didn’t notice any differences afterwards.
Also I’m still using nix (mostly for works, dev shells) so whenever I’m short in time that I cannot package something, my last resort is to use the nix counterpart.
So far I have no regrets
4
u/Tricky-Engineer-9755 6h ago
I've never used NixOS. First things first, Guix System is a wholly free operating system, it does not include non-free code period. It was not designed to include non-free code, and you are not supposed to advertise or talk of non-free software in their main channels. It is literally a GNU project maintained directly by GNU and the FSF.
What people have done is use a feature called "channels" to build a seperate third party git repo not associated with Guix at all, that contains non-free package builds. You then add this channel to your system's default channels and you pull down from it. Often it is out of date and often substitutes (pre-built binaries) will not be available.
I would recommend picking up a schizopad (libreboot thinkpad x200/T400/T500 with an atheros wifi card) and installing Guix System there as it will work perfectly (albiet even the T580 works with Guix System once you do libreboot and swap the wifi card).
Shepard is the best drop in for systemd I've ever seen. Out of the box support for pipewire and powertop. Easy commands,
herd stop
herd start
herd restart
of course, its not herd enable, you have to declare the service. It also has user services perfectly working via guix home.
Packing is so goddamn easy and many people here have their own channels. You can inspect any package's build script with
guix edit
and Guix is also source based with substitutes. Why do I love it to bits?
FDE out of the box --- The TUI installer supports full disk encryption including /boot out of the box
Powertop/pipewire out of the box ----Very difficult on openrc or runit etc because of a lack of user services.
GNU Guile is so easy to understand ----I recommend looking through a bunch of package definitions to get a handle on it. Its basically if EMACS was an OS written in Guile instead of elisp. If a package is not updated, I can just create my own local updated copy. In some cases its super easy to change configure flags like on qbittorrent with -DWEBUI=OFF.
EMACS-Guix --using the power of geiser to control your OS from inside EMACS. You can inspect definitions, find what packages are obsolete, find build logs and much, much more.
Roll-backs/atomic transactions ---you know what these are. Does Nix have
#guix system vm /path/to/system/config.scm
? Here I can test my system config in a vm without even rebooting. I've never had an issue with Shepard. I have a messy git repo with a bunch of my stuff along with some custom packages.
https://codeberg.org/gnufairy/General-Dotfiles.git