{ config, pkgs, lib, inputs, ... }: { imports = [ ./hardware-configuration.nix inputs.disko.nixosModules.default (import ./disko.nix { device1 = "/dev/nvme0n1"; device2 = "/dev/nvme1n1"; device3 = "/dev/sda"; }) inputs.sops-nix.nixosModules.sops inputs.home-manager.nixosModules.default ]; boot = { kernelPackages = pkgs.linuxKernel.packages.linux_6_16; loader = { systemd-boot.enable = true; efi.canTouchEfiVariables = true; }; }; hardware = { graphics.enable = true; nvidia = { modesetting.enable = true; open = false; nvidiaSettings = true; package = config.boot.kernelPackages.nvidiaPackages.stable; }; bluetooth.enable = true; }; services = { xserver = { #enable = true; videoDrivers = ["nvidia"]; }; displayManager = { enable = true; defaultSession = "hyprland"; autoLogin = { enable = true; user = "nathan"; }; }; pulseaudio.enable = false; }; systemd.extraConfig = "DefaultLimitNOFILE=2048"; environment.sessionVariables = { WLR_BACKENDS = "headless"; WLR_LIBINPUT_NO_DEVICES = "1"; }; programs.zsh.enable = true; environment.shells = with pkgs; [ zsh ]; users.defaultUserShell = pkgs.zsh; nixpkgs.config.allowUnfree = true; # 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"; }; services.displayManager.sddm.settings.AutoLogin = { User = "nathan"; Session = "hyprland"; Relogin = true; }; networking = { hostName = "homebox"; nameservers = [ "1.1.1.1" "1.0.0.1" ]; networkmanager.enable = true; nftables = {}; nat = { enable = true; internalInterfaces = [ "ve-*" ]; externalInterface = "enp6s0"; }; }; system.stateVersion = "23.05"; # Did you read the comment? users.users."nathan" = { isNormalUser = true; initialPassword = "7567"; #hashedPasswordFile = config.sops.secrets."nathan/pass".path; extraGroups = [ "wheel" "docker" "podman" ]; # Enable ‘sudo’ for the user. openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAsU69CxfQk58CvItPN426h5Alnpb60SH37wet97Vb57 nathan@laptop" ]; }; nix = { nixPath = [ "nixpkgs=${inputs.nixpkgs}" "unstable=${inputs.nixpkgs-us}" ]; settings = { experimental-features = [ "nix-command" "flakes" ]; }; }; virtualisation.docker.enable = true; environment.systemPackages = with pkgs; [ docker docker-compose ]; sops = { age.keyFile = "/home/nathan/.config/sops/age/keys.txt"; defaultSopsFile = ./secrets.yaml; defaultSopsFormat = "yaml"; secrets = { "nathan/pass" = { neededForUsers = true; }; "authentik/pass" = {}; "authentik/secret_key" = {}; "nextcloud/pass" = {}; }; }; programs.fuse.userAllowOther = true; home-manager = { backupFileExtension = "backup"; extraSpecialArgs = {inherit inputs;}; users = { "nathan" = lib.mkMerge [ inputs.nathan-home-manager { config.homeconfig = { host = "homebox"; minimal = false; wayvnc.enable = false; hyprland.enable = true; swaylock.enable = true; wal.enable = true; mpd.enable = true; ags.enable = true; calcurse.enable = true; rofi.enable = true; firefox.enable = true; }; } { home.packages = [ pkgs.wayvnc ]; } ]; }; }; sysconfig = { opts = { sddm.enable = true; openssh.enable = true; pipewire.enable = true; ags.enable = true; hyprland.enable = true; git.enable = true; nh.enable = true; netbird.enable = true; minecraft.enable = true; steam.enable = false; virtualization = { traefik.enable = true; jellyfin.enable = true; "blunkall.us".enable = true; nextcloud.enable = true; ntfy.enable = false; gitea.enable = true; n8n.enable = true; keycloak.enable = true; netbird.enable = true; ollama.enable = true; homeassistant.enable = true; wyoming = { enable = true; piper = true; openwakeword = true; faster-whisper = true; }; rustdesk.enable = false; #broken pihole.enable = false; #broken code-server.enable = false; novnc.enable = true; minecraft.enable = true; #wont connect sandbox.enable = false; }; }; }; fonts.packages = with pkgs; [ nerd-fonts.fira-code ]; }