I kept a list of programs that I had installed and was working on finding a program with which to manage all my meticulously crafted dotfiles while simultaneously jumping down the emacs rabbit hole, specifically Doom Emacs (Thanks DistroTube !) I fell in love with the configuration system of Doom Emacs.
I then started watching System Crafters on YouTube and was introduced to Guix which I tried to install on an older laptop that needed proprietary software in order to have operable WiFi. I looked for something that allowed unfree software and binary blobs out of the box, behold, NixOs.
For the last seven years I had distro hopped: Ubuntu, Debian, Arch, Fedora, Arch again, Manjaro, now my pursuit of sanity is done. I failed. I give up and Nixos is my final computational resting place.
If you are looking at this repo, I don’t think I need to explain what NixOS is. I will warn you, once you take the first step of configuring a system, You Will Never Go Back.
Meletao | Kouphizo | Kerugma | Nephos | Thureos | |
Shell | Fish | Fish | Fish | Bash | Bash |
Desktop Manager | lightdm-slick | lightdm-slick | Gnome (Wayland) | - | - |
Window Manager | Xmonad | Xmonad | Gnome | - | - |
Compositor | Picom-dccsillag | Picom-dccsillag | - | - | |
Bar | Xmobar | Xmobar | - | - | |
Launcher | Rofi | Rofi | - | - | |
Theme | Nord | Nord | - | - | |
Notifications | Dunst | Dunst | - | - | |
Terminal | Alacritty | Alacritty | - | - | |
Editor | Neovim + Doom Emacs | Neovim + Doom Emacs | Neovim | Neovim | |
Web Browser | Qutebrowser | Qutebrowser | Epiphany | - | - |
This configuration uses NixOs Flakes and the Hive library/framework.
It is well worth your time to take a deep dive into nix. Studying the documentation and exploring in the nepl (nix repl). The learning curve is steep, but you already knew that. Go ahead and help yourself, instead of bumping around in the dark, turn on the lights.
Hive is a Nixos system configuration flake with the naming convention around a beehive.
I use hive primarily because of its integration with std.
When I came across Divnix and Digga, I began to switch to it. I liked the organization of Digga and it made sense while holding to the ’traditional’ nix flake layout. At the same time whilst digging around in the Divnix repos I couldn’t help notice Hive and std. As I read the Standard book (more than once) and played with it in ’nix repl’ I decided to skip the Digga config and use Hive, this was further solidified after watching all of the std videos (linked below).
- Daily driver laptop, this is where I do most of my work.
- Desktop server
- Runs cloud services
- Pinebook Pro
- Light in weight and processing …, great for traveling.
- Raspberry Pi Zero W
- Protector of my network via pihole and tailscale.
- Microsoft Surface Go 2
- Used when teaching
These are groups of profiles that can be referenced at once, instead of separately.
These are application specific configurations that can be referenced individually or integrated through suites.
- Home-manager
- Colmena
- Disko WIP
- Devshell I don’t have any devshells declared, but it is there should I want to. (It doesn’t make a lot of sense because I am the only one developing this flake.)
- Nix-colors
- Nixos-hardware
- Flake-utils
- Flake-utils-plus
- Agenix WIP
- https://nixos.org/guides/nix-language.html
- https://book.divnix.com/
- https://nixos.org/manual/nix/stable/introduction.html
- https://github.com/justinwoo/nix-shorts
- https://ianthehenry.com/posts/how-to-learn-nix/introduction/
- https://www.tweag.io/blog/2020-05-25-flakes/
- https://nixos.wiki/wiki/Flakes
- https://github.com/hlissner/dotfiles
- https://www.youtube.com/channel/UC-cY3DcYladGdFQWIKL90SQ
These were what help me understand std the most. It makes sense of Hive’s source code.