# This file (and the global directory) holds config that i use on all hosts { lib, inputs, outputs, pkgs, config, ... }: { imports = [ inputs.home-manager.nixosModules.home-manager inputs.sops-nix.nixosModules.sops ]++ (builtins.attrValues outputs.nixosModules); ###dotfiles path variable options._dotfiles = lib.mkOption { type = lib.types.str; default = "${inputs.self}/home-manager/dotfiles"; description = "Path to the dotfiles in this repository"; }; ###secrets path variable options._secrets = lib.mkOption { type = lib.types.str; default = "/run/user/1000/secrets"; description = "Path to the Secrets runtime"; }; ###secretstore path variable options._secretstore = lib.mkOption { type = lib.types.str; default = "${inputs.self}/secrets"; description = "Path to the Secrets storage"; }; config = { system.stateVersion = "23.05"; sops = { # defaultSopsFile = ./secrets.yaml; defaultSopsFile = "${config._secretstore}/host-secrets.yaml"; age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; }; home-manager = { useUserPackages = true; extraSpecialArgs = { inherit inputs outputs; }; sharedModules = [ inputs.sops-nix.homeManagerModules.sops ]; }; nixpkgs = { #overlays = builtins.attrValues outputs.overlays; config = { allowUnfree = true; }; }; programs.fuse.userAllowOther = true; security.sudo.wheelNeedsPassword = false; # nixpkgs.overlays = overlays; # Enable nix flakes nix.package = pkgs.nixFlakes; nix.extraOptions = '' experimental-features = nix-command flakes ''; nix.nixPath = [ "nixpkgs=${inputs.nixpkgs}" ]; # nix.nixPath = [ "nixpkgs=pkgs.outPath" ]; environment.systemPackages = [ pkgs.git pkgs.home-manager pkgs.sops pkgs.ssh-to-age pkgs.age ]; }; }