{ config, pkgs, lib, inputs, ... }: { imports = [ ./hardware-configuration.nix inputs.home-manager.nixosModules.default inputs.sops-nix.nixosModules.sops ]; nixpkgs.config = { allowUnfree = true; }; # Bootloader. boot = { loader = { systemd-boot.enable = true; efi.canTouchEfiVariables = true; }; kernelParams = [ "snd-intel-dspcfg.dsp_driver=1" ]; }; systemd.extraConfig = "DefaultLimitNOFILE=2048"; hardware = { graphics.enable = true; nvidia = { modesetting.enable = true; powerManagement.enable = true; powerManagement.finegrained = false; open = false; nvidiaSettings = true; package = config.boot.kernelPackages.nvidiaPackages.stable; prime = { # Make sure to use the correct Bus ID values for your system! intelBusId = "PCI:0:2:0"; nvidiaBusId = "PCI:1:0:0"; # WARNING: sync and offload are mutually exclusive. # You can only pick one!! #sync.enable = true; offload = { enable = true; enableOffloadCmd = true; }; }; }; #enable bluetooth bluetooth.enable = true; }; services.pulseaudio.enable = false; virtualisation.docker.enable = true; environment.systemPackages = with pkgs; [ docker docker-compose alsa-utils ]; sysconfig.opts = { sddm.enable = true; openssh.enable = false; steam.enable = true; pipewire.enable = true; ags.enable = true; hyprland.enable = true; git.enable = true; nh.enable = true; netbird.enable = true; ollama.enable = true; wyoming = { enable = false; satelliteOnly = false; }; virtualization.homeassistant = { enable = false; configvol = "/etc/homeassistant/config:/config"; }; }; home-manager = { backupFileExtension = "backup"; extraSpecialArgs = { inherit inputs; }; users = { "nathan" = lib.mkMerge [ { config.homeconfig = { host = "laptop"; minimal = false; impermanence.enable = false; hyprland.enable = true; swaylock.enable = true; wal.enable = true; wayvnc.enable = false; mpd.enable = true; ags.enable = true; calcurse.enable = true; rofi.enable = true; firefox.enable = false; }; } inputs.nathan-home-manager ]; }; }; # Enable the X11 windowing system. services.xserver = { enable = true; videoDrivers = ["nvidia"]; }; services.displayManager.enable = true; services.avahi = { enable = true; ipv4 = true; ipv6 = true; openFirewall = true; nssmdns4 = true; wideArea = true; }; environment.shells = with pkgs; [ zsh ]; # Enable CUPS to print documents. services.printing.enable = true; programs.adb.enable = true; users.defaultUserShell = pkgs.zsh; programs.zsh.enable = true; system.stateVersion = "23.05"; # Did you read the comment? # Set your time zone. time.timeZone = "America/Chicago"; # Select internationalisation properties. i18n.defaultLocale = "en_US.UTF-8"; i18n.extraLocaleSettings = { LC_ADDRESS = "en_US.UTF-8"; LC_IDENTIFICATION = "en_US.UTF-8"; LC_MEASUREMENT = "en_US.UTF-8"; LC_MONETARY = "en_US.UTF-8"; LC_NAME = "en_US.UTF-8"; LC_NUMERIC = "en_US.UTF-8"; LC_PAPER = "en_US.UTF-8"; LC_TELEPHONE = "en_US.UTF-8"; LC_TIME = "en_US.UTF-8"; }; networking = { hostName = "laptop"; nameservers = [ "1.1.1.1" "1.0.0.1" ]; networkmanager.enable = true; #firewall.allowedTCPPorts = [ 22 80 443 ]; }; users.users."nathan" = { isNormalUser = true; initialPassword = "7567"; #hashedPasswordFile = config.sops.secrets."nathan/pass".path; extraGroups = [ "wheel" "podman" "docker" "networkmanager" ]; # Enable ‘sudo’ for the user. openssh.authorizedKeys.keys = []; }; nix = { nixPath = [ "nixpkgs=${inputs.nixpkgs}" ]; settings = { experimental-features = [ "nix-command" "flakes" ]; }; }; fonts.packages = with pkgs; [ nerd-fonts.fira-code ]; }