This is my multi host, modular Nix config. It declares configs for different programs using Nix language, such as:
- Neovim module to use Rocks.nvim on NixOS with my lua config
- Niri - Scrollable Tilling Wayland Compositor via Community Niri-flake
- And many more with Home-manager, that allows to declare configuration of user programs in Nix language
- Slowly adopting Hjem with set of modules of Hjem-rum
I also declare configuration as packages that you can try with nix run github:Ladas552/Flake-Ocean#app, replace app with:
- nvf - Nix declared Neovim
- nixvim - another Nix declared Neovim
- rofi-powermenu - power menu made of Rofi with a nice theme
- all the other scripts in pkgs directory
- 2 NixOS hosts with Nvidia and Intel, and AMD APU on laptops. Both on ZFS and NixPort is using Impermanence
- Nix-On-Droid on phone, even if unmantained, it still works
- NixOS-WSL for Windows partition
- NixVM for testing, you shouldn't use it unless testing breaking changes
- NixIso for my portable NixOS image
I adopted Dendritic layout for my config. Making all files their own modules that I can import, and if module isn't imported, it doesn't exist. This way most of my config is fairy atomic and you can pop in and out modules as you wish.
Also I made custom.meta options on every host, and depending on host, different variables are used. Options defined in modules/flake-parts/options. And host variables are defined at imports.nix of every host.
I am still working on adding modularity to pkgs, probably make them all flake modules too
I write comments on things, that might explain certain ways of doing things, or leave not working options in comments for people to find. This is to not look up one thing twice, and just look at the nix file itself.
Also, I have Norg document, containing notes and TODO for the config, and folder /docs for containing more specific instructions.
I also plan on writing some blog posts about Nix, so stay tuned!
Yes, it is a JoJo's reference
I take a lot of things from the internet and different configs too. So I credit people in comments to snippets that I stole.
If you want to check every person that I stole things from, go to my List of configs
Also for that one guy who switched to codeberg
Also this post from drupol was huge help in migrating my config to dendritic
Also, thanks to everyone in nix-community for being so awesome, wouldn't be there without ya