Adding all files and folders

This commit is contained in:
2026-02-01 12:08:31 +11:00
parent 892f3f2418
commit 1fb54400b4
24 changed files with 63803 additions and 0 deletions

117
results/configuration.nix Normal file
View File

@@ -0,0 +1,117 @@
# 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";
}

View File

@@ -0,0 +1,145 @@
# NixOS Configuration Template
# Path: results/configuration.nix.template
#
# This is a starting point for your new NixOS configuration.
# Review and edit this file carefully.
# You will use this file during the NixOS 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" "docker" ]; # "wheel" allows sudo
packages = with pkgs;
[ # You can install user-specific packages here, but it's often better
# to manage them system-wide below unless you have multiple users.
];
};
# ---
# SOFTWARE PACKAGES ---
# ---
# List packages you want to install system-wide.
# Refer to docs/02_software_migration_plan.md
environment.systemPackages = with pkgs;
[ # ---
# Essentials ---
# ---
git
wget
curl
# ---
# Desktop & GUI ---
# ---
firefox
thunderbird
libreoffice
flameshot
# ---
# Terminal & CLI Tools ---
# ---
kitty
neovim
nushell
btop
eza
bat
fzf
# ---
# Development ---
# ---
gcc
gnumake
nodejs # Consider specifying a version, e.g., nodejs-20_x
rustc
cargo
python3
];
# ---
# SERVICES & VIRTUALIZATION ---
# ---
# Enable the Docker daemon.
virtualisation.docker.enable = true;
# 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.
}

View File

@@ -0,0 +1,144 @@
# NixOS Configuration - AUTO-GENERATED DRAFT
# Path: results/generated_configuration.nix
#
# This file was auto-generated on $(date) based on system reconnaissance.
# !!! IMPORTANT !!!
# This is a DRAFT and a starting point. It WILL require manual review and editing.
# - Verify all package names against the Nixpkgs repository.
# - Check service options and configurations.
# - Double-check all hardware and disk mount settings.
{ config, pkgs, ... }:
{
imports =
[ # This will be generated by the NixOS installer.
./hardware-configuration.nix
];
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# --- NETWORKING ---
# See logs/06_netplan_config.log for details.
networking.hostName = "nixos-desktop"; # Set your desired hostname.
networking.networkmanager.enable = true;
# The scan found Tailscale running. You will likely want to enable it here.
# services.tailscale.enable = true;
# Set your time zone.
time.timeZone = "Australia/Sydney"; # Please verify this is correct.
# --- USER ACCOUNTS ---
users.users.sam = {
isNormalUser = true;
description = "Sam";
extraGroups = [ "networkmanager" "wheel" "docker" ]; # "wheel" allows sudo. Add other groups if needed.
};
# --- SOFTWARE PACKAGES (DERIVED FROM RECON LOG) ---
environment.systemPackages = with pkgs; [
# --- Essentials & CLI Tools (from history and manual install logs) ---
git
wget
curl
htop # btop is an alternative available in nix
neovim
zsh
zoxide
ripgrep
fzf
tree
# --- Rust & Go Environment ---
rustc
cargo
go
# --- Python Environment ---
python3
# --- Node.js Environment ---
nodejs # Consider specifying a version, e.g., nodejs-20_x
# --- Desktop & GUI Applications ---
firefox
thunderbird
vlc
gimp
inkscape
obs-studio
# --- Manually Installed Tools (verify package names) ---
arduino-cli
lazygit
ollama
scrcpy
# --- Snap Packages (find equivalents in nixpkgs) ---
# The following were installed as snaps. Find their NixOS equivalents.
# - code (vscode)
# - mqtt-explorer
# - notepad-plus-plus (likely use notepadqq or similar)
# - spotify
# - telegram-desktop
# --- Other APT Packages (selection of common tools found) ---
# A full list is in logs/04_nixos_recon.log. Add what you need.
nmap
minicom
screen
net-tools # for ifconfig, etc.
gnome.gnome-tweaks
];
# --- SERVICES & VIRTUALIZATION ---
# Docker was found to be in use.
virtualisation.docker.enable = true;
# Ollama service was running.
# services.ollama.enable = true; # Find the correct module for Ollama on NixOS
# RustDesk service was running.
# services.rustdesk.enable = true; # Find the correct module for RustDesk on NixOS
# 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;
jack.enable = true;
};
# Enable CUPS to print documents.
services.printing.enable = true;
# --- DESKTOP ENVIRONMENT ---
services.xserver.enable = true;
services.xserver.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome.enable = true;
# --- DISK MOUNTS ---
# !!! CRITICAL !!!
# Update these with the correct UUIDs from your `lsblk -f` output
# once you have booted the NixOS installer.
fileSystems."/data" = {
device = "/dev/disk/by-uuid/PLEASE_REPLACE_ME"; # UUID of Integral300 drive
fsType = "ext4";
options = [ "defaults" ];
};
# --- MISC ---
# Allow unfree packages for things like Chrome, Spotify, etc.
nixpkgs.config.allowUnfree = true;
# System state version. This should be set to the version of NixOS you install.
system.stateVersion = "24.05";
}

120
results/generated_home.nix Normal file
View File

@@ -0,0 +1,120 @@
# NixOS Home Manager Configuration: /results/generated_home.nix
# This file declaratively manages your user environment based on the discovered .zshrc.
{ config, pkgs, ... }:
{
# Set a state version for compatibility
home.stateVersion = "24.05";
programs.home-manager.enable = true;
# ---
# 1. ZSH SHELL & POWERLEVEL10K PROMPT
# ---
programs.zsh = {
enable = true;
enableAutosuggestions = true;
enableSyntaxHighlighting = true;
oh-my-zsh = {
enable = true;
plugins = [ "git" ]; # zsh-autosuggestions & syntax-highlighting are enabled above
theme = "powerlevel10k/powerlevel10k";
};
shellAliases = {
ls = "eza --icons --git";
ll = "eza -l --icons --git";
la = "eza -la --icons --git";
tree = "eza --tree";
# Note: 'batcat' from your .zshrc is typically packaged as 'bat' in NixOS
cat = "bat --color=always --paging=never";
};
};
# Set Zsh as the default shell
home.shell = pkgs.zsh;
# Enable Powerlevel10k theme
programs.powerlevel10k = {
enable = true;
# Your Powerlevel10k config (~/.p10k.zsh) should be linked here if you have one.
# For example: home.file.".p10k.zsh".source = ./p10k.zsh;
};
# ---
# 2. SHELL TOOLS & INTEGRATIONS
# ---
programs.atuin = {
enable = true;
enableZshIntegration = true;
};
programs.fzf = {
enable = true;
enableZshIntegration = true;
};
programs.zoxide = {
enable = true;
enableZshIntegration = true;
};
programs.nvm = {
enable = true;
};
# ---
# 3. EDITORS & TERMINAL
# ---
programs.neovim = {
enable = true;
defaultEditor = true; # Sets EDITOR and VISUAL to nvim
};
programs.kitty = {
enable = true;
};
programs.zellij = {
enable = true;
};
# ---
# 4. PACKAGES & LANGUAGES
# ---
home.packages = with pkgs; [
# Core Utilities
unzip zip p7zip htop wget curl nmap minicom screen tree
# Modern CLI Enhancements (from .zshrc and recon logs)
eza bat lazygit yazi tealdeer navi carapace-bin
# Language Toolchains
rustup go nodejs python3
];
# ---
# 5. ENVIRONMENT & API KEYS
# ---
# WARNING: Storing secrets in plain text is a security risk.
# Consider using a tool like sops-nix for production environments.
home.sessionVariables = {
OPENAI_API_KEY = "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";
TAVILY_API_KEY = "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";
DEEPSEEK_API_KEY = "sk-26c66e4dd5b34017bd66f7aef748c625";
};
# Add custom binary paths to your environment
home.sessionPath = [
# For the 'opencode' CLI tool
"$HOME/.opencode/bin"
];
# ---
# AI TOOLS
# ---
programs.gemini-cli = {
enable = true;
};
# ---
# 6. DOTFILE MANAGEMENT
# ---
# This section is a placeholder for linking config files from a Git repo.
# e.g., home.file.".config/nvim/init.vim".source = ./config/nvim/init.vim;
}