135 lines
3.4 KiB
Nix
135 lines
3.4 KiB
Nix
# NixOS Configuration
|
|
# Path: results/configuration.nix
|
|
#
|
|
# This file was generated based on the system reconnaissance phase.
|
|
# Review and edit this file carefully before installation.
|
|
|
|
{ config, pkgs, ... }:
|
|
|
|
{
|
|
imports =
|
|
[ # Include the results of the hardware scan.
|
|
# Path to this file will be /mnt/etc/nixos/hardware-configuration.nix
|
|
# after the installation script generates it.
|
|
./hardware-configuration.nix
|
|
];
|
|
|
|
# Bootloader.
|
|
boot.loader.systemd-boot.enable = true;
|
|
boot.loader.efi.canTouchEfiVariables = true;
|
|
|
|
# ---
|
|
# NETWORKING ---
|
|
# ---
|
|
networking.hostName = "nixos-desktop"; # Define your hostname.
|
|
networking.networkmanager.enable = true;
|
|
# networking.wireless.enable = true; # Uncomment for WiFi support.
|
|
|
|
# Set your time zone.
|
|
time.timeZone = "Australia/Sydney"; # CHANGE THIS to your time zone, e.g. "Europe/Berlin"
|
|
|
|
# ---
|
|
# USER ACCOUNTS ---
|
|
# ---
|
|
users.users.sam = {
|
|
isNormalUser = true;
|
|
description = "Sam";
|
|
extraGroups = [ "networkmanager" "wheel" ]; # "wheel" allows sudo
|
|
packages = with pkgs;
|
|
[ # User-specific packages can be listed here.
|
|
];
|
|
};
|
|
|
|
# ---
|
|
# SOFTWARE PACKAGES ---
|
|
# ---
|
|
# List packages you want to install system-wide.
|
|
# Based on docs/02_software_migration_plan_filled.md
|
|
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 # Consider specifying a version, e.g., nodejs-20_x
|
|
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;
|
|
# If you want to use JACK applications, uncomment the following.
|
|
#jack.enable = true;
|
|
};
|
|
|
|
# Enable CUPS to print documents.
|
|
services.printing.enable = true;
|
|
|
|
# ---
|
|
# DESKTOP ENVIRONMENT ---
|
|
# ---
|
|
# Enable the GNOME Desktop Environment.
|
|
services.xserver.enable = true;
|
|
services.xserver.displayManager.gdm.enable = true;
|
|
services.xserver.desktopManager.gnome.enable = true;
|
|
|
|
# ---
|
|
# DISK MOUNTS ---
|
|
# ---
|
|
# This is where we will mount your existing data drives.
|
|
# The device paths (e.g., "/dev/disk/by-uuid/...") must be correct.
|
|
# Use the output of `lsblk -f` on the live USB to get the right UUIDs.
|
|
fileSystems."/mnt/ubuntu_storage_3TB" = {
|
|
device = "/dev/disk/by-uuid/037a542c-6aa9-4b1f-ab2f-4b6922ab371f"; # This is sdd1 (ubuntu_storage_3)
|
|
fsType = "ext4";
|
|
};
|
|
|
|
fileSystems."/mnt/windows-storage" = { # Renaming `/mnt/storage` to be clearer
|
|
device = "/dev/disk/by-uuid/063E316A3E315441"; # This is sdb2
|
|
fsType = "ntfs-3g";
|
|
options = [ "rw" "uid=1000" "gid=100" "umask=007" ]; # Makes files user-writable
|
|
};
|
|
|
|
# Add more entries here for other disks like sdc2 if needed.
|
|
|
|
# Allow unfree packages
|
|
nixpkgs.config.allowUnfree = true;
|
|
|
|
# System state version.
|
|
system.stateVersion = "24.05"; # Or whatever version you install.
|
|
|
|
}
|