diff --git a/README.md b/README.md index 9286dee..5b03565 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,11 @@ My all-inclusive nix flake to solve all my problems. + +> [!WARNING] +> Do not just use this repo out of the box since it will not work for your setup (or at least it probably wont work) +> Feel free to copy any parts you find interesting or useful, but I would recommend building your flake up from scratch as it will allow for easier bughunting. + ![hyprlock_screenshot](./modules/nixos/desktop/addons/hyprlock/hyprlock_preview.png) @@ -22,36 +27,78 @@ My all-inclusive nix flake to solve all my problems. - [shells](#shells) - [systems](#systems) +Starting your nix journey can be daunting and understanding how the whole ecosystem works takes some time. +For me starting with snowfall-lib was both a blessing and a curse, it took away so many problempoints by being easy, but it also hampered my learning because I never had to do things from scratch and sometimes translating a "normal" flake to a snowfall-lib setup was not trivial. +Luckily for me Jake (the creator of snowfall-lib) was so kind and helped me bugfix and learn how to solve my own Problems. + ### homes -- user@system syntax -- home manager config possible +The homes folder is home to all your homemanager configuration that is specific to that system (and user) and that system only. +If you want generic home manager configuration then look into [modules/home](moddules/home/README.md). + +- home/system/user@hostname syntax + +I dont really use this besides for testing out some apps, most of the things get turned into generic modules so I can eventually reuse them later. + +For more extensive explainations checkout [snowfall-lib/homes](https://snowfall.org/guides/lib/homes/)! ### lib - extending lib +- any things defined here can be accessed vial `inherit (lib.${namespace})` + +Mine is straight ripped from [here](https://github.com/jakehamilton/config/blob/main/lib/module/default.nix), as I have not found much use for this outside of these options, maybe at some point. + +For more extensive explainations checkout [snowfall-lib/lib](https://snowfall.org/guides/lib/library/)! ### [modules](./modules/README.md) -- nixos -- home -- darwin +This is the most interesting section of the flake, here I (and other users of snowfall-lib) define the packages that are available to your configuration. +there are 3 main categories + +- nixos `general system packages` +- home `general homemanager packages` +- darwin `general mac packages (tho at this point in time I do not have a mac)` + +Most of my configuration happens in this section and this is also where the different snowfall-lib repos diverge, some aspects are still fairly close to Jakes as that is what I started with, but some areas are more mature and now more my own style. +For more concrete information abotu my system specific setup read [here](/modules/nixos/README.md). + +For more extensive explainations checkout [snowfall-lib/modules](https://snowfall.org/guides/lib/homes/)! ### [overlays](./overlays/README.md) - overlays provided by this flake +For more extensive explainations checkout [snowfall-lib/overlays](https://snowfall.org/guides/lib/overlays/)! + ### secrets - secrets used currently only one file + +> [!IMPORTANT] +> This uses [sops-nix](https://github.com/Mic92/sops-nix) to encrypt sensitive information you need in your flake, never have secrets or password unencrypted in your repo, not even if it is private + + ### [shells](./shells/README.md) +This is also fairly interesting and a section I have not delved in too much, currently I only have a rust flake for [screeps-rust](https://github.com/Daholli/screeps-rust) in here. +I think thi sis great to have quick access to a out of the box dev shell, but generally you probably want a project specific flake. + +You can access these flakes either using `self#rust` or in my case `github:Daholli/nixos-config#rust`. + + +For more extensive explainations checkout [snowfall-lib/shells](https://snowfall.org/guides/lib/shells/)! ### systems - all the systems that can be built with the flake +- systems/system/hostname syntax +This is the heart piece of the flake, this is what is being targeted if you call `nixos-rebuild switch --flake .#` I try to only have very system specific config in here and try to cover all the other things in the [generic part of the flake](/modules/nixos/README.md). +If you want to start piecing together how my config works this is where you would start. + +For more extensive explainations checkout [snowfall-lib/systems](https://snowfall.org/guides/lib/systemns/)!