This was originally a Mastodon thread, but, due to popular demand (lies), I am going to rehash the whole thing here.
So, please allow me to go on about what I've been doing to get a little less dependent on the whims of billionaires, surveillance capitalism, and “tech giants”. As the enshittification (see @pluralistic for more) marches on, and rich folks plan on extracting even more from everything and everyone, you're no longer just the product: you are the product AND the paying customer. Fuck. That.
Let me preface all this by saying that this is not a “mY tHrEaT mOdEL iS dIfFeReNt” situation. Thankfully, no one's threatening me. What IS different, though, is that I am extremely privileged in many ways, and I can do this kind of stuff without breaking a sweat or the bank. Goes without saying that this is not the reality for the vast majority of people, so take what I'm saying with a huge pile of salt.
Ahoy, cola gangsters! Previously… We were doing a little messing around with rc.lua, and I remember that I did promise you we were going to take this thing from this…
Now that the situation with Grafana has normalized somewhat, let’s get a quick look at how to get node_exporter setup in NixOS. If you don’t know what that is, worry not. We’ll get to it right after the jump!
Cola Gangsters! Holy shit, friends… I just spent some 3 hours fighting with Grafana on the old homelab dojo, and I wanted to get this ode to dumbassery preserved for posterity.
In Part III, we got rid of Hyprland, and installed AwesomeWM. It worked, but it was not looking good at all: we've got the default look and feel, and that's most definitely not what we want. We want to customize this thing, and make it look nice. More importantly, though: we want to Nixify it because we want to be able to clone the repo on a new computer, and get everything installed in 3 minutes flat. What we won't do is call the customization of graphical environments what people usually call it. That shit's racist.
Anyway, let's start getting our AwesomeWM a little bit better. Baby steps. First, we'll need to figure out where the main config file is. AwesomeWM is configured via a Lua file called rc.lua, so let's see how we can go about messing with that.
Previously... We pretty much got a very barebones Hyprland install going, and we did it by using a flake within a flake. Pretty cool. You can run with that if you want, but that's no fun. Really, you can find a bunch of Hyprland config examples across the internet. What we are going to do, however, is get rid of it because fuck that project.
Okay! What do we do, then? Let's go with the Awesome WM, shall we? “But I wanted Hyprland... whyyy?” Because, dear reader, Hyprland doesn't play well with some monitors over HDMI. Specifically, my monitor. Long story short, after a set time, the screen should lock and the monitor should turn off. It doesn't, the screen lock is bypassed, and a new workspace is created out of nowhere. I did open an issue on the project's GitHub, and other folks seem to have the same problem. It won't get fixed, I don't give a shit, and there are alternatives. So, AwesomeWM.
Ahoy! It is time for us to get fancy. In order to do so, we're going to do the most ill-advised thing there is: We're installing and configuring Hyprland. Nothing like some experimental, beta shit to keep us in our toes. Did it crash because of something we did? Did it crash because this thing is as stable as one of them rope bridges you find in the middle of the jungle? We might never know. But, hey! Fuck it. Let's do it anyway.
Okay! First, thank you for swinging by, and I do hope you find this helpful. Second, many thanks to the /r/NixOS peeps for the feedback. Third, even though we are all children of Chaos, fighting high entropy is in our nature. In order to bring a smidge of order to this thing, the damn files were pushed to the Codeberg repo. Every time we finish a part of the series, I’ll push the final configs to Codeberg so you can just clone or copy. I am following along myself with a fresh NixOS install, so the code (can you call that code?) is known to work. I guess. Obviously, if I do something stupid, you are more than welcome to open a pull request.
The configs we’re written so far are in the part1 directory for your viewing pleasure(?). I did some refactoring, and I'll change the previous posts to reflect that.