{ config, lib, pkgs, userName, ... }: { imports = [ ../../graphics ../../pwrMgmt ../../networking/core.nix ../../networking/dns.nix ../../virtualization/podman.nix ]; # Enable flakes for NixOS nix.settings.experimental-features = ["nix-command" "flakes"]; # Custom kernel/boot stuff boot.kernelPackages = pkgs.linuxPackages_latest; boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; # Enable Bluetooth if present hardware.bluetooth.enable = true; # Set your timezone time.timeZone = "America/Detroit"; # Install packages to be installed system-wide environment.systemPackages = with pkgs; [ vim neovim git patchelf nix-ld ]; # Set the EDITOR global environment variable to neovim environment.variables.EDITOR = "nvim"; # Enable OpenSSH services.openssh.enable = true; # Enable keyring services.gnome.gnome-keyring.enable = true; # Enable GnuPG programs.gnupg.agent = { enable = true; enableSSHSupport = true; }; # Enable SUID wrappers (some programs need them) programs.mtr.enable = true; # Enable Polkit security.polkit.enable = true; # Graphics module (../../graphics/default.nix) graphics = { enable = true; gpuVendor = "intel"; wayland.enable = true; vulkan.enable = true; }; # Power management (see ../../pwrMgmt/default.nix) pwrMgmt = { enable = true; cpuFreqGovernor = "performance"; powertop.enable = false; }; # Podman module (see ../../virtualization/podman.nix) podman = { enable = true; extraPackages = with pkgs; [ docker-credential-helpers toolbox cosign crane podman-tui podman-desktop ]; }; # Core networking module (see ../../networking/core.nix) network = { firewall = { enable = true; tcpPorts = { allowedPorts = [8123]; }; }; networkManager.enable = true; }; # DNS module (see ../../networking/dns.nix) dns = { technitium.enable = true; }; # Add username to groups "wheel" and "video" - more may be added here later users.users.${userName} = { extraGroups = ["wheel" "podman" "network"]; openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFV9eSc9L+aJLoKoexq2f/jb5rpyZnhuGiyhS8YQAbaS wyatt@wyattjmiller.com" ]; }; users.users.root.openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFV9eSc9L+aJLoKoexq2f/jb5rpyZnhuGiyhS8YQAbaS wyatt@wyattjmiller.com" ]; # Add Home Assistant service services.home-assistant = { enable = true; extraComponents = [ "esphome" "met" "radio_browser" "homeassistant_hardware" "zha" "group" "mikrotik" ]; config = { # Includes dependencies for a basic setup # https://www.home-assistant.io/integrations/default_config/ default_config = {}; }; }; security.sudo.wheelNeedsPassword = false; system.stateVersion = "24.11"; }