# NixOS Configuration: /results/configuration.nix # This file configures the core NixOS system. { config, pkgs, ... }: { imports = [ # Include the results of the hardware scan. # This file will be generated by the NixOS installer. ./hardware-configuration.nix ]; # Bootloader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; # --- # NETWORKING # --- networking.hostName = "nixos-desktop"; networking.networkmanager.enable = true; # Set your time zone. time.timeZone = "Australia/Sydney"; # --- # USER ACCOUNTS # --- users.users.sam = { isNormalUser = true; description = "Sam"; extraGroups = [ "networkmanager" "wheel" ]; # "wheel" allows sudo }; # --- # GRAPHICS & DESKTOP ENVIRONMENT # --- services.xserver = { enable = true; # Enable KDE Plasma 5 Desktop Environment desktopManager.plasma5.enable = true; # Enable SDDM as the display manager displayManager.sddm.enable = true; # Use the proprietary NVIDIA drivers videoDrivers = [ "nvidia" ]; }; # Enable OpenGL and Vulkan support hardware.opengl = { enable = true; driSupport = true; driSupport32Bit = true; }; # Configure NVIDIA drivers for Hybrid Graphics (Intel + NVIDIA) hardware.nvidia = { modesetting.enable = true; # Use the stable proprietary driver package package = config.boot.kernelPackages.nvidiaPackages.stable; # Configure PRIME Render Offload prime = { sync.enable = true; # Set the PCI bus IDs for your GPUs (from lspci output) intelBusId = "PCI:0:2:0"; nvidiaBusId = "PCI:1:0:0"; }; }; # --- # SOFTWARE PACKAGES # --- environment.systemPackages = with pkgs; [ # --- Tier 1: Critical Applications & Services --- firefox thunderbird kitty neovim nushell vscode telegram-desktop # --- Tier 2: Development & CLI Tools --- git rustc cargo nodejs python3 gcc gnumake btop eza bat fzf ripgrep zoxide # --- Tier 3: Desktop & GUI Applications --- libreoffice flameshot vlc spotify timeshift ]; # --- # SERVICES # --- # 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; }; # Enable CUPS for printing. services.printing.enable = true; # --- # DISK MOUNTS # --- fileSystems."/mnt/ubuntu_storage_3TB" = { device = "/dev/disk/by-uuid/037a542c-6aa9-4b1f-ab2f-4b6922ab371f"; fsType = "ext4"; }; fileSystems."/mnt/windows-storage" = { device = "/dev/disk/by-uuid/063E316A3E315441"; fsType = "ntfs-3g"; options = [ "rw" "uid=1000" "gid=100" "umask=007" ]; }; # Allow installation of unfree packages (like NVIDIA drivers) nixpkgs.config.allowUnfree = true; # Set the system state version. system.stateVersion = "24.05"; }