{ config, lib, pkgs, ... }: { imports = [ ./hardware-configuration.nix ./bootloader-configuration.nix ./surfacebook-configuration.nix ./application-configuration.nix ./software-development-configuration.nix ./school-configuration.nix ./virtualisation-configuration.nix ]; # Enable networking and bluetooth networking.networkmanager.enable = true; systemd.services.NetworkManager-wait-online.enable = false; #disable wait online since it is broken networking.hostName = "surface"; hardware.bluetooth.enable = true; # Set time zone. time.timeZone = "America/New_York"; # 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"; }; # Enable opengl hardware.opengl = { enable = true; driSupport = true; driSupport32Bit = true; }; # Allow unfree and insecure packages nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "vista-fonts" "corefonts" "steam" "steam-original" "steam-run" "vscode-extension-ms-vscode-cpptools" "vscode-extension-ms-vscode-remote-remote-ssh" "nvidia-x11" "nvidia-settings" "nvidia-persistenced" "cudatoolkit" "vscode" "code" "Oracle_VM_VirtualBox_Extension_Pack" ]; # Enable the X11 windowing system. services.xserver.enable = true; services.xserver.videoDrivers = [ "nvidia" ]; # Enable the KDE Plasma Desktop Environment. services.xserver.displayManager.sddm.enable = true; services.xserver.desktopManager.plasma5.enable = true; # fonts fonts.packages = with pkgs; [ vistafonts corefonts nerdfonts # nvcahd dependency ]; # Enable sound with pipewire. sound.enable = true; hardware.pulseaudio.enable = false; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; }; # Define a user account. Don't forget to set a password with ‘passwd’. users.users.caleb = { isNormalUser = true; description = "caleb"; extraGroups = [ "networkmanager" "wheel" ]; hashedPassword = "$y$j9T$v6EDyPW8C/K.Th4xg8MHL/$tA67k6U0kLtafTNNW2DM7j.xObjPSaZFQ4e/beBX7g2"; packages = with pkgs; [ # spellcheck hunspell hunspellDicts.en-us hunspellDicts.en-us-large ]; }; # disable sudo password for wheel security.sudo.wheelNeedsPassword = false; # List packages installed in system profile: environment.systemPackages = with pkgs; [ cudaPackages.cudatoolkit appimage-run git protontricks steam-run wget winetricks wineWowPackages.stable ripgrep # nvchad dependency ]; #neovim programs.neovim = { enable = true; defaultEditor = true; viAlias = true; vimAlias = true; configure = { packages.nvchad-complete = with pkgs.vimPlugins; { start = [ nvchad nvchad-ui ]; }; }; }; # enable mac address randomization networking.networkmanager.wifi.macAddress = "random"; # Enable CUPS to print documents. services.printing.enable = true; services.printing.drivers = [ pkgs.brlaser ]; # remote build nix.buildMachines = [ { hostName = "talos"; system = "x86_64-linux"; protocol = "ssh-ng"; speedFactor = 4; supportedFeatures = [ "nixos-test" "benchmark" "big-parallel" "kvm" ]; mandatoryFeatures = [ ]; } { hostName = "january"; system = "x86_64-linux"; protocol = "ssh-ng"; speedFactor = 3; supportedFeatures = [ "nixos-test" "benchmark" "big-parallel" "kvm" ]; mandatoryFeatures = [ ]; } { hostName = "pubnix"; system = "x86_64-linux"; protocol = "ssh-ng"; speedFactor = 2; supportedFeatures = [ "nixos-test" "benchmark" "big-parallel" "kvm" ]; mandatoryFeatures = [ ]; } ]; nix.distributedBuilds = true; # optional, useful when the builder has a faster internet connection than yours nix.extraOptions = '' builders-use-substitutes = true ''; # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave # this value at the release version of the first install of this system. # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "23.11"; }