# Configuration pieces included on all (nixos) hosts { inputs, lib, config, outputs, ... }: let # {{{ Imports imports = [ # {{{ flake inputs # inputs.hyprland.nixosModules.default inputs.disko.nixosModules.default inputs.stylix.nixosModules.stylix inputs.nur.nixosModules.nur inputs.slambda.nixosModule inputs.sops-nix.nixosModules.sops # {{{ self management # NOTE: using `pkgs.system` before `module.options` is evaluated # leads to infinite recursion! inputs.smos.nixosModules.x86_64-linux.default inputs.tickler.nixosModules.x86_64-linux.default # }}} # }}} # {{{ global configuration ./cli/fish.nix ./cli/htop.nix ./services/openssh.nix ./services/tailscale.nix ./nix.nix ./locale.nix ./persistence.nix ./wireless ../../../../common # }}} ]; # }}} in { # Import all modules defined in modules/nixos imports = builtins.attrValues outputs.nixosModules ++ imports; # Tell sops-nix to use the host keys for decrypting secrets sops.age.sshKeyPaths = [ "/persist/state/etc/ssh/ssh_host_ed25519_key" ]; # {{{ ad-hoc options # Customize tty colors stylix.targets.console.enable = true; # Reduce the amount of storage spent for logs services.journald.extraConfig = lib.mkDefault '' SystemMaxUse=256M ''; # Boot using systemd boot.initrd.systemd.enable = true; # }}} nixpkgs = { # Add all overlays defined in the overlays directory overlays = builtins.attrValues outputs.overlays ++ lib.lists.optional config.satellite.toggles.neovim-nightly.enable inputs.neovim-nightly-overlay.overlay; config.allowUnfree = true; }; }