···11+# to quite an opinionated stance i think all these options help create a more
22+# modern nixos feel this happens by removing parts of the system i don't really
33+# like i.e. perl, mutable /etc, activation scripts etc. a lot of these options
44+# are also directly needed by each other to work.
55+#
66+# WARNING: some of these options are experimental meaning they will and can
77+# break things. so use at your own risk
88+{
99+ # We enable Systemd in the initrd so we can use it to mount the root
1010+ # filesystem this will remove Perl form the activation
1111+ boot.initrd.systemd.enable = true;
1212+1313+ # Declarative user management
1414+ # either use this or systemd-sysusers :D
1515+ services.userborn.enable = true;
1616+1717+ system = {
1818+ # nixos-init will going to make our system more robust in principal
1919+ # see <https://github.com/NixOS/nixpkgs/blob/9bf13c9c35c9e80fab6fa3161ec0a09c1ec9a3be/pkgs/by-name/ni/nixos-init/README.md>
2020+ nixos-init.enable = true;
2121+2222+ # mount /etc as a read-only overlay filesystem
2323+ etc.overlay.enable = true;
2424+ };
2525+}
-15
modules/nixos/system/size.nix
···33 inherit (lib) mkForce;
44in
55{
66- boot = {
77- # this can break things, particularly if you use containers
88- # personally I don't so it should be fine to disable this
99- enableContainers = false;
1010-1111- # We enable Systemd in the initrd so we can use it to mount the root
1212- # filesystem this will remove Perl form the activation
1313- initrd.systemd.enable = true;
1414- };
1515-1616- # Declarative user management
1717- services.userborn.enable = true;
1818-196 environment = {
207 # disable stub-ld, this exists to kill dynamically linked executables, since they cannot work
218 # on NixOS, however we know that so we don't need to see the warning
···2512 # this list normally includes things like perl
2613 defaultPackages = mkForce [ ];
2714 };
2828-2929- system.etc.overlay.enable = true;
30153116 programs = {
3217 # this is on by default. but i don't use nano