{ pkgs, inputs, primaryUser, ... }: { imports = [ ./fonts.nix ./sops.nix ./regreet.nix ./plymouth ./audio.nix ./ssh.nix ./locale.nix ./tailscale.nix ./virt.nix ./webcam.nix ]; # nix config nix = { settings = { experimental-features = [ "nix-command" "flakes" ]; max-jobs = "auto"; cores = 0; substituters = [ "https://hyprland.cachix.org" "https://nix-community.cachix.org" ]; trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" ]; }; # Garbage collection gc = { automatic = true; dates = "weekly"; options = "--delete-older-than 30d"; }; }; # Disable Docs documentation = { enable = true; doc.enable = false; # Skip large documentation man.enable = true; # Keep man pages info.enable = false; # Skip info pages }; nixpkgs.config = { allowUnfree = true; }; home-manager = { useGlobalPkgs = true; useUserPackages = true; users.${primaryUser} = { imports = [ ../home ]; }; extraSpecialArgs = { inherit inputs primaryUser; }; }; programs = { fish.enable = true; hyprland = { enable = true; package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; }; steam.enable = true; dconf.enable = true; appimage = { enable = true; binfmt = true; }; }; security = { pam.services.swaylock = { }; polkit.enable = true; apparmor.enable = true; }; users.users.${primaryUser} = { home = "/home/${primaryUser}"; shell = pkgs.fish; isNormalUser = true; openssh.authorizedKeys.keyFiles = [ ./ssh-key ]; extraGroups = [ "wheel" "video" "audio" "libvirtd" ]; }; }