Well I ran out of battery halfway through the hand install, so several hours of recovery later I can boot into #guix fsvo. Where are all my other bootable partitions though, and will I be able to tolerate #GNOME long enough to learn to live with it? These are the questions. Stay tuned, rat-fans.
My windows 11 is now bootable too! 🎉 why do I have to open the LUKS container twice? #guix#GNOME is easy on the eye and quite nice until you try and make it do something...
The trick is to use the extra-initrd option in the boot loader configuration and then build an initrd image with a decryption key in it.
You then use a device map type of 'luks-device-mapping-with-options' and pass the path of the key file inside the initrd. All of this is explained in the bootloader configuration documentation.
Thanks to everyone who replied helpfully. #guix#GNOME
The problem I was having was in trying to use the same encryption key from the volume that is protected by my passphrase. In extracting and formatting that I was mangling it.
My solution was to stop doing that and instead use a specifically generated key file , I did not realise LUKS has multiple slots.
Biggest surprise so far, #GNOME web is quite an endearing little thing. I've not tried to configure it any, or use extensions, (does it even?) but it's a few days in and I've not yet installed Firefox #guix
This morning I mostly thought about swap, as a precursor to hibernate. I've got a small partition reserved. My thinking is I can make a LUKS on this, assign the mapped device to swap, using the same initrd with a key file trick to open it at boot. #GNOME#guix
The plan worked! I now have a dedicated swap partition, 2xRAM (that's how old I am), and it's present after boot.
Everything is encrypted save for the UEFI partition, which contains no credentials
I probably could have done this with a single LUKS volume and logical partitioning inside that I expect, or just used a swap file in the root partition, but I had already set up the partitions i'm using, and some sunk cost.
So, apparently power management in #guix is handled by the login manager, which is 'elogind'. What is elogind? Elogind is pretty interesting actually.
"The systemd project's 'logind', extracted to a standalone package"
So in theory, power management logic should be basically the same. Which is great news if so.
I want suspend, then hibernate, ideally, or at least hybrid sleep, and it would be great if I don't have to build a bunch of scripts and timers myself to get there...
Well, "loginctl suspend-then-hibernate" appears to exist. I think I have figured out how to inject configuration to configure it, however I can't test it because I also thought "while I'm here I'll just install Firefox", that was two hours ago and I'm still compiling Firefox and won't be able to test before that completes. 😕#guix
firefox built! and it works. Now I have bitwarden and can lazily log into things, this is my first #guix post from inside guix 🎉
(Next i set up subsititions for nonguix, to minimize further "surprise" recompilations)
I also fixed my keyboard layout, which was still stuck on US because I'd not got around to that yet. So today I will continue to experiment with power management, and see if my suspend+hibernate plan is working out.
Disappointing result in my first organic test of suspend then hibernate, lid close all day resulted in an all-day suspend, with quite a lot of power drain. 🤔
"loginctl suspend-then-hibernate"does the job perfectly though, so I'm left wondering if the desktop environment is assuming complete responsibility and overriding the base settings, or maybe my configuration spec isn't quite working... How to debug this though?
Counting brackets in my config.scm, i fix some nesting and discover that 'suspend-then-hibernate is not a supported option. I've swapped it for 'hibernate for now, I guess I'll have to figure out how to plumb it in myself. #guix
So, #GNOME is resolutely ignoring the login session setting, and just doing it's own suspend thing, quelle suprise. (It doesn't even offer a plain hibernate action)
I presume this might be inhibition locks, and I'll have to figure out if elogind also implements these aspects of systemd-logind. Alternatively, I could find a desktop environment that offers a bit more configuration flex.
Because it's getting a bit annoying just hand hacking my config.scm with 'cp' and 'vim' I have also installed 'git' and, finally 'emacs' in the system packages.
But I also did a 'guix pull' earlier, to get more fresh updates, oops, so I also added an hour or so's compilation to the whole process, maybe my substitution config isn't quite in order, or maybe it just likes compiling emacs and kernels :-/
Add comment