{ config, lib, pkgs, inputs, ... }: { imports = [ inputs.home-manager.nixosModules.default ]; # Set default user lunita users.users.lunita = { isNormalUser = true; description = "Lunita"; extraGroups = [ "networkmanager" "wheel" "syncthing" ]; 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 = ""; }; enviroment.systemPackages = with pkgs; [ git ]; # Zsh programs.zsh.enable = true; # Browser programs.firefox.enable = true; # Flatpak services.flatpak.enable = true; # Tailscale services.tailscale.enable = true; # GPG programs.gnupg.agent = { enable = true; enableSSHSupport = true; }; # OpenSSH services.openssh.enable = true; # Hardware acceleration support hardware.graphics.extraPackages = with pkgs; [ intel-media-driver ]; # Enable udisks2 for removable media support services.udisks2.enable = true; # Disable sudo security.sudo.enable = false; # Setup doas security.doas = { enable = true; extraRules = [{ users = ["lunita"]; keepEnv = true; noPass = true; }]; }; }