First thing driving me up the wall: The caps lock key is acting as the caps lock key (wrong, bad) instead of the control key (pure, good), so I can't type anything without scrabbling at the keyboard like a helpless squirrel.
Changing this one setting requires reconfiguring the entire system. In case I changed something else completely different at the same time, I guess.
Reconfiguring the system requires running `guix pull`, so it knows about the nonguix channel that has the kernel that supports WiFi.
I can't pull because something in nonguix is broken. I have no idea what, or whether I could fix it if I did.
So I keep waiting a day or so and retrying `guix pull` in the hopes that someone has noticed that this is broken, and fixes it, and then I can configure my keyboard.
Okay, so. I was able to log into the Guix install on this laptop, because I reset my password after logging into a virtual terminal as root, which I was allowed to do with no password whatsoever, despite the installer asking me for a root password.
The error I get when I run `guix pull` doesn't tell me anything helpful about what's wrong:
building /gnu/store/zlsavr3sd9wl8i9l9ps0hpk1j0wjkak6-nonguix.drv... |builder for `/gnu/store/zlsavr3sd9wl8i9l9ps0hpk1j0wjkak6-nonguix.drv' failed to produce output path `/gnu/store/sailxjc3lnd9rylm2x9795x0j0cgcgxl-nonguix' build of /gnu/store/zlsavr3sd9wl8i9l9ps0hpk1j0wjkak6-nonguix.drv failed View build log at '/var/log/guix/drvs/zl/savr3sd9wl8i9l9ps0hpk1j0wjkak6-nonguix.drv.gz'. cannot build derivation `/gnu/store/imiaxn32kiv9fdifqgajmm7ggpf8b100-profile.drv': 1 dependencies couldn't be built guix pull: error: build of `/gnu/store/imiaxn32kiv9fdifqgajmm7ggpf8b100-profile.drv' failed
But, so, yeah. I can't change how one key on my keyboard works because some third-party software package is broken, even though that has literally nothing to do with the change I want to make.
Okay, I got some help from #nonguix on Libera, turns out, the System Crafters install image I was using pinned the nonguix channel to a specific commit, and that commit was either broken or had an implicit dependency on the stock guix channel which caused breakage.
Removed the pin and I was able to reconfigure the system. This took several hours, since it downloaded hundreds of megs of... something... and compiled the whole Linux kernel.
But, I have a caps lock key that works like control, which means I can type on this laptop without immediately becoming enraged.
I am not sure it should be so difficult to change one keyboard layout setting.
Alright, so, I'm trying to get Guix into a comfortable, daily-driveable state. This is going to involve packaging some large things that aren't currently in Guix, like Librewolf, my preferred web browser.
I suspect that's going to be a lot.
I decided to start with something simple: my preferred text editor font, Input Mono.
There's a special thing for handling fonts, you basically need ~20 lines of boilerplate to fetch an archive with the .ttf files in, and this code does the rest.
Input Mono is gratis for personal use, but if you publish anything that uses it, you need to pay for a license. It's not freely redistributable.
Not freely redistributable shouldn't be a problem! Guix will download the fonts when someone requests an install, which isn't redistribution.
Except.
The hash of the .zip of the fonts is different every time you download it. I don't know why, but the actual .ttf files are ~6 bytes different in every download. Doesn't seem like enough data for it to be a fingerprint, but, maybe?
Guix has a strong focus on reproduceability, you have to provide the hash of any source material. Which you cannot do if the source material is different every download.
I asked for help, it seems like it's literally impossible to handle this, unless I download a copy and host it elsewhere, then point Guix at that and give it the hash.
Which is redistribution, which is against the license.
So I can either placate Guix by violating the license, or switch my preferred font.
@technomancy Yeah, I've been using it for several years. It's, uh, not great in a bunch of ways, and the original author seems to have abandoned it, so any time Slack pushes an update that breaks shit (frequently!), it's the time of monsters in the Github Issues for the project.
Even with the downsides, it's hugely better than the official client, because I can maintain multiple conversations at once, and I hacked up ERC-style `C-c C-SPC` rotation through any unread channels/threads.
Before I got it working, I was using Slack in Emacs via weechat + wee-slack + weechat.el. Don't really want to switch back, it was kind of a fragile setup and not as good as emacs-slack IMO.
Why do I keep pushing this particular boulder up this particular hill? It comes down to a few things:
- I think packaging stuff for Guix is easier than other distros. At least, there's a huge package-to-contributor ratio I've never seen in other distros, and it has a ton of software for a relatively new (and very niche) distro. - All the packaging and system config is in Scheme, and I like Lisps. - The way you can create profiles of installed software obviates the need for language-specific version & environment manager tools. When the distro natively supports installing/running multiple versions of things side-by-side, you don't have to care about crap like rbenv, nvm, or pyenv. - It's very easy to host your own package repo. It's very difficult to host a Debian package repo.
I put in an Amazon order, but the (virtual) card it's linked to no longer works because my online bank is horrible. Amazon requests that I revise the payment method, but won't let me choose the ACH method I set up, only enter another credit card number. I do not have another credit card number to enter.
So I have to create a new order with the same items, which does let me pick the new payment method, then cancel the old order.
You cannot cancel a whole order, you have to select the items one by one. There is no "select all" button.
The checkboxes to pick the items to cancel are hard up against the right edge of the page, and the scrollbar covers 80% of them as soon as you move the pointer there, making the click target about 4px wide.
If you try to cancel the order without selecting anything (which I did, because the checkboxes are very easy to miss), it resets the reason for cancelation. I didn't fall into this trap, but I bet it resets the checkboxes if you submit without changing the reason.
I installed the official "Firefox Multi-Account Container Tab" extension which "... is an extension developed by Mozilla that fully optimizes Firefox containers and unlocks its full potential[1]..."
It immediately bombarded me with multiple ads for Mozilla VPN, so I uninstalled it just as immediately.
The model here seems to be nerfing the built-in containers and locking away full functionality behind a confusingly similarly named extension to upsell you on paid services.
Today is my birthday. If you'd like to do something for me, you can send a reply with a strange, unsettling, or oddly decontextualized image (or boost this toot).