118 lines
2.9 KiB
Nix
118 lines
2.9 KiB
Nix
# 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";
|
|
}
|