{ config, lib, pkgs, inputs, ... }: { imports = [ inputs.home-manager.nixosModules.default ]; # Set default user lunita users.users.lunita = { isNormalUser = true; description = "Lunita"; extraGroups = [ "networkmanager" "wheel" ]; packages = with pkgs; [ neovim firefox ]; shell = pkgs.zsh; }; home-manager = { extraSpecialArgs = { inherit inputs; }; users = { "lunita" = import ./home.nix; }; }; # Enable automatic system updates system.autoUpgrade = { enable = true; flake = inputs.self.outPath; flags = [ "--update-input" "nixpkgs" "-L" # print build logs ]; dates = "weekly"; randomizedDelaySec = "45min"; }; # Automate Nix garbage collection nix.gc = { automatic = true; dates = "weekly"; options = "--delete-older-than 7d"; }; # Allow non-free software (RMS will be mad at me :<) nixpkgs.config.allowUnfree = true; # Enable nix-command and flakes nix.settings.experimental-features = [ "nix-command" "flakes"]; # using piprewire cuz embrace muh modernity services.pipewire = { enable = true; pulse.enable = true; }; # Basic configuration stuff - WiFi, Xserver keyboard layout, Stylix networking.networkmanager.enable = true; time.timeZone = "America/St_Thomas"; # Timezone => AST i18n.defaultLocale = "en_US.UTF-8"; services.xserver.xkb = { layout = "us"; variant = ""; }; # Zsh programs.zsh.enable = true; # Browser programs.firefox.enable = true; # Tailscale services.tailscale.enable = true; # Syncthing services.syncthing.enable = true; # GPG programs.gnupg.agent = { enable = true; enableSSHSupport = true; }; # OpenSSH services.openssh.enable = true; }