Files
quincy/iso/default.nix
Brandon Lucas 58e4232f2f Initial commit: Nomarchy NixOS configuration
An opinionated NixOS configuration with Hyprland, featuring:

- Modular flake-based architecture
- Parameterized user configuration (username, timezone, locale, etc.)
- Classical/antiquity theme with Thomas Cole wallpapers
- Full Hyprland setup with waybar, rofi, swaync
- Custom utility scripts (screenshots, screen recording, WiFi QR)
- Neovim with LSP support
- Interactive installer for existing NixOS systems
- ISO builder for fresh installations

Flake outputs:
- nixosConfigurations.example - Test configuration
- nixosConfigurations.installer - ISO installer
- packages.iso - Bootable ISO image
- apps.default - Interactive installer
- lib.mkHost - Host builder function
- templates.default - Starter template

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-15 02:44:33 -05:00

117 lines
3.1 KiB
Nix

# ISO Installer Configuration
{
config,
lib,
pkgs,
modulesPath,
inputs,
...
}: {
imports = [
"${modulesPath}/installer/cd-dvd/installation-cd-minimal.nix"
"${modulesPath}/installer/cd-dvd/channel.nix"
];
# ISO naming
isoImage.isoName = "nomarchy-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.iso";
isoImage.volumeID = "NOMARCHY";
# Boot settings - use LTS kernel for ISO stability
boot.kernelPackages = pkgs.linuxPackages;
# Disable ZFS (broken with latest kernels)
boot.supportedFilesystems = lib.mkForce ["btrfs" "reiserfs" "vfat" "f2fs" "xfs" "ntfs" "cifs" "ext4"];
# Limine bootloader for ISO (commented out until properly configured)
# boot.loader.limine.enable = true;
# Enable SSH for headless installs
services.openssh = {
enable = true;
settings.PermitRootLogin = "yes";
};
# Networking
networking = {
hostName = "nomarchy-installer";
networkmanager.enable = true;
wireless.enable = lib.mkForce false;
};
# Installer environment packages
environment.systemPackages = with pkgs; [
# Disk partitioning
parted
gptfdisk
dosfstools
cryptsetup
# Filesystem tools
e2fsprogs
btrfs-progs
ntfs3g
# Network
networkmanager
wpa_supplicant
# TUI
dialog
newt # provides whiptail
# Utilities
vim
git
curl
wget
jq
# NixOS installation
nixos-install-tools
];
# Auto-login to installer
services.getty.autologinUser = "nixos";
# Welcome message
environment.etc."motd".text = ''
Welcome to the Nomarchy Installer
Run 'nomarchy-install' to begin installation
For more information: https://github.com/blu/nomarchy
'';
# Copy installer script
system.activationScripts.installer = ''
mkdir -p /usr/local/bin
cat > /usr/local/bin/nomarchy-install << 'INSTALLER'
#!/usr/bin/env bash
# Nomarchy ISO Installer - coming soon
echo "ISO installer not yet implemented."
echo "Please use the NixOS manual installation process,"
echo "then run: nix run github:blu/nomarchy"
INSTALLER
chmod +x /usr/local/bin/nomarchy-install
'';
# User account
users.users.nixos = {
isNormalUser = true;
extraGroups = ["wheel" "networkmanager"];
initialPassword = "nomarchy";
};
# Allow passwordless sudo
security.sudo.wheelNeedsPassword = false;
# System state version
system.stateVersion = "24.11";
}