{ pkgs, username, outputs, config, ... }: { imports = [ ../../modules/nixos/sops.nix ]; sops.secrets.tux-password = { sopsFile = ./secrets.yaml; neededForUsers = true; }; nixpkgs = { overlays = [ outputs.overlays.additions outputs.overlays.modifications outputs.overlays.unstable-packages outputs.overlays.nur outputs.overlays.nix-vscode-extensions ]; config = { allowUnfree = true; joypixels.acceptLicense = true; }; }; nix = { settings = { experimental-features = "nix-command flakes"; auto-optimise-store = true; trusted-users = ["${username}"]; }; }; time.timeZone = "Asia/Kolkata"; i18n = { defaultLocale = "en_US.UTF-8"; extraLocaleSettings = { LC_ADDRESS = "en_IN"; LC_IDENTIFICATION = "en_IN"; LC_MEASUREMENT = "en_IN"; LC_MONETARY = "en_IN"; LC_NAME = "en_IN"; LC_NUMERIC = "en_IN"; LC_PAPER = "en_IN"; LC_TELEPHONE = "en_IN"; LC_TIME = "en_IN"; }; }; programs = { zsh.enable = true; nh = { enable = true; clean.enable = true; clean.extraArgs = "--keep-since 5d --keep 5"; flake = "/home/${username}/Projects/nixos-config"; }; }; services = { openssh = { enable = true; settings = { PasswordAuthentication = false; }; }; }; users = { mutableUsers = false; defaultUserShell = pkgs.zsh; users.${username} = { hashedPasswordFile = config.sops.secrets.tux-password.path; isNormalUser = true; extraGroups = ["networkmanager" "wheel" "storage"]; openssh.authorizedKeys.keys = [ ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL+OzPUe2ECPC929DqpkM39tl/vdNAXfsRnmrGfR+X3D 0xtux@pm.me'' ]; }; }; }