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
- Helix - Master branch with a use of official Helix flake cache
- 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
I also declare configuration as packages that you can try with nix run github:Ladas552/Nix-Is-Unbreakable#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
- 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
Config is modular in a way that depending on host, the changes for programs can change. Like For
FullHD screen and 4K screen - font size is 13 and 11 respectively. This is dependent on meta
attribute, which is inherited by all modules, even standalone ones.
Which makes my Nix Packages interchangeable depending on the host they are running under. meta
is declared in flake.nix
as a boilerplate and in each individual host as a specialty.
Also, you don't need to add imports to hosts, just custom.helix.enable = true;
to download the package and a config for any individual host. More info on this structure in Vimjoyer's Video
I declare overlays in Overlays file. They change and add stuff to the main nixpkgs
, like adding custom
prefixes to scripts, or defining neovim-nightly
.
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.
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, thanks to everyone in nix-community for being so awesome, wouldn't be there without ya