Adding all files and folders
This commit is contained in:
117
results/configuration.nix
Normal file
117
results/configuration.nix
Normal 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";
|
||||
}
|
||||
145
results/configuration.nix.template
Normal file
145
results/configuration.nix.template
Normal 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.
|
||||
|
||||
}
|
||||
144
results/generated_configuration.nix
Normal file
144
results/generated_configuration.nix
Normal 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
120
results/generated_home.nix
Normal 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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user