feat(flake): add consumer template (nix flake init -t)

Expose templates.default — a starter flake that consumes OmniXY as an
input (dependency model): omnixy.lib.mkSystem + nixosModules.omnixy +
a placeholder host. Lets adopters track OmniXY with `nix flake update`
instead of forking. See templates/default/README.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Padreug 2026-06-28 10:38:14 +02:00
commit f6b8ddf598
5 changed files with 167 additions and 0 deletions

View file

@ -0,0 +1,33 @@
# Your host. Replace hardware-configuration.nix with your real scan:
# sudo nixos-generate-config --show-hardware-config \
# > hosts/myhost/hardware-configuration.nix
{ settings, ... }:
{
imports = [ ./hardware-configuration.nix ];
# Omnixient behavior. See Omnixient's docs/packs.md for the full pack catalog.
omni = {
enable = true;
desktop.enable = true;
user = settings.user;
theme = settings.theme;
packs.development.enable = true;
packs.media.enable = true;
# packs.gaming.enable = true;
# packs.office.enable = true;
# Opt into sops-nix secrets only if you need them (see Omnixient's
# docs/getting-started.md "Enabling secrets"). Off by default.
# secrets.enable = true;
};
# System basics Omnixient core leaves to you:
networking.hostName = settings.hostName;
time.timeZone = settings.timeZone;
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
system.stateVersion = settings.stateVersion;
}

View file

@ -0,0 +1,43 @@
# PLACEHOLDER hardware scan — REPLACE before building on real hardware:
# sudo nixos-generate-config --show-hardware-config > hardware-configuration.nix
#
# This generic stub only lets the template evaluate. The by-label devices
# below will NOT match your machine — a real scan captures your actual
# disks, filesystems, kernel modules, and CPU microcode.
#
# hostPlatform is set by Omnixient's mkSystem; the bootloader (systemd-boot)
# by Omnixient core — so this file only needs filesystems.
{
config,
lib,
modulesPath,
...
}:
{
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot.initrd.availableKernelModules = [
"xhci_pci"
"nvme"
"ahci"
"usbhid"
"sd_mod"
];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" = {
device = "/dev/disk/by-label/nixos";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-label/boot";
fsType = "vfat";
};
swapDevices = [ ];
networking.useDHCP = lib.mkDefault true;
}