Commit graph

43 commits

Author SHA1 Message Date
a31369fea8 docs: point template + install docs at the real Omnixient repo
Replace the <your-org> placeholders with the actual public URL
(git+https://git.atitlan.io/aiolabs/omnixient, https so forkers need no
SSH), and switch the packs standalone-import example from git+ssh to the
same https URL.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 11:45:27 +02:00
78fb9b4b30 rebrand: fix upstream attribution in README + Omnixient wordmark
The mechanical omnixy->omni pass mangled README lines that refer to the
*upstream* OmniXY project (restored to OmniXY/omnixy), and replaced the
block-letter OMNIXY fastfetch logo with a clean Omnixient wordmark.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 11:23:49 +02:00
a054bfaa38 docs(getting-started): rewrite for the dependency model
Lead with consuming OmniXY as a flake input (omnixy.lib.mkSystem +
nixosModules.omnixy via `nix flake init -t`): tiny consumer repo,
conflict-free `nix flake update omnixy`. Add an 'Already on NixOS?'
section (reuse hardware scan + stateVersion, preview in VM, rollback),
a Secrets opt-in walkthrough, and keep forking as a documented
alternative.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 10:51:12 +02:00
8011163293 fix(core): handle null omnixy.preset everywhere it's interpolated
Same null-vs-missing bug as the fastfetch fix, across lib.nix (env var +
status echo), menus.nix, scripts.nix, and fastfetch's about screen:
`cfg.preset or "…"` returns null (not the fallback) because preset
defaults to null. Any consumer that doesn't set a preset hit 'cannot
coerce null to a string'. Replace with explicit null checks.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 10:45:21 +02:00
f42d4482ff fix(fastfetch): handle null omnixy.preset
`${cfg.preset or "custom"}` only falls back when the attr is missing,
not when it's null — and omnixy.preset defaults to null. A host that
doesn't set a preset (any consumer of nixosModules.omnixy) hit 'cannot
coerce null to a string'. Use an explicit null check. Surfaced by the
dependency-model consumer test.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 10:43:53 +02:00
fa467a346a feat(mksystem): inject home-manager sharedModules OmniXY home needs
home.nix depends on nix-colors (colorScheme), lazyvim, and walker HM
modules; previously every host wired them by hand via `modules`, which
external consumers couldn't know to do. Inject them in mkSystem so any
host built through it gets them; re-importing from a host is a no-op.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 10:40:55 +02:00
f6b8ddf598 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>
2026-06-28 10:38:14 +02:00
08c2a1a46c feat(mksystem): consumer-friendly home-manager resolution
mkSystem resolved the user's home config only from this repo's
users/<user>/, so an external consumer's user got no home-manager setup.
Add a `home` param (a path) and resolve in priority order: caller `home`
-> internal users/<user>/home-manager.nix -> OmniXY's home.nix. Internal
hosts keep their shims (unchanged); consumers now get a working home by
default. Unblocks the consumer template.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 10:34:42 +02:00
1e2677c543 feat(flake): expose nixosModules.omnixy core aggregate
Extract the reusable core module list into modules/default.nix (single
source of truth) and expose it as nixosModules.omnixy / .default.
configuration.nix now imports ./modules instead of listing each module,
so this repo's hosts and external consumers share one definition. Theme
stays a settings.theme-driven import inside the aggregate. Packs,
dev-env, sops and home-manager remain injected by mkSystem.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 10:22:37 +02:00
8678f637db feat(flake): expose lib.mkSystem for external consumers
Surface mkSystem as a flake output and make its host resolution
non-throwing: internal hosts (this repo's hosts/<name>/) are still
imported automatically, but a consumer using OmniXY as a flake input
can now pass their own host via `modules` instead. First brick of the
dependency-model framework; the core module aggregate (nixosModules)
follows so a consumer's host can import OmniXY core.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 10:15:52 +02:00
1238703d9f refactor(flake): drop maintainer's personal host from public template
The public template should ship the copy-me `example` host and the ISO,
not the maintainer's real machine. bohm's `omnixy` host enables MCP
servers that require secrets (absent in the public tree), so it broke
`nix flake check` on the public branch. It moves to the private
omnixy-private branch (which re-adds it with the real secrets). Forkers
define their own host modeled on `example`.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 10:10:38 +02:00
fb8dfc7bdf refactor(mcp): move bohm-specific MCP servers from shared base to host
configuration.nix is imported as the shared base by every host (incl.
hosts/example). It hardcoded bohm's lnbits/nextcloud MCP servers, which
declare sops secrets — so with secrets now opt-in (omnixy.secrets.enable),
a fork that imports the base but doesn't enable secrets failed to eval
(`sops.defaultSopsFile accessed but has no value`). Move the server
enablement into hosts/omnixy; the mcp module stays imported in the base
(inert until a host enables a server).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 10:00:14 +02:00
fa95feb584 fix(iso): disable broken zfs in the live installer
The installation-CD profile enables zfs so you can install onto it, but
the pinned nixpkgs ships a broken zfs-kernel that fails to evaluate,
breaking `nix flake check` and ISO builds. Force-disable zfs in the ISO
(a desktop installer doesn't need ZFS-root); use the official NixOS ISO
for ZFS installs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 10:00:14 +02:00
0224279b61 feat(secrets): make sops opt-in via omnixy.secrets.enable
Secrets were implicitly active whenever secrets/omnixy.yaml existed. Gate
them behind an explicit omnixy.secrets.enable (default false) so a fresh
fork builds and runs with zero secret setup, and derive age.keyFile from
omnixy.user instead of hardcoding padreug. bohm sets the flag in its host.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 10:00:14 +02:00
a8f1045518 chore: Claude/agent guidance and workspace files
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 10:00:14 +02:00
2baad92089 docs: project documentation — architecture, getting-started, packs, mcp, regtest
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 10:00:14 +02:00
7f4a71b98d test: VM smoke and Lightning regtest suites
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 10:00:14 +02:00
93a58e18f6 feat: live ISO image configuration
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 10:00:14 +02:00
efe328eb7b feat(hosts): example template host
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:59:05 +02:00
7c9ce3fe10 feat: home-manager entry point and per-user shims
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:59:05 +02:00
8d2a0357c1 feat: NixOS system entry point (configuration.nix)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:59:05 +02:00
c8c89a19cf feat: custom package derivations — forgejo-mcp, plymouth-theme, try-cli, scripts
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:59:05 +02:00
1dea5c697c feat: sandboxed claude session launcher scripts
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:59:05 +02:00
346042f1c5 docs(dev-env): aiolabs stack overview and lnbits workflow notes
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:59:05 +02:00
dbd9e76027 feat(dev-env): shell scripts (git-hooks, worktree, deploy, regtest, nav) and smoke test
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:59:05 +02:00
7960f82494 feat(dev-env): aiolabs dev environment — options, lib, config, presets
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:59:05 +02:00
02504f9fd3 feat: MCP server module
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:59:05 +02:00
ab550cd0a7 feat: sops-nix secrets management
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:59:05 +02:00
2d7c936d80 feat(packs): bitcoin, lnbits and aiolabs lightning packs
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:59:05 +02:00
095f2ccf29 feat(packs): opt-in package packs — media/office/dev/gaming/containers/compat
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:59:04 +02:00
e0f2a3951f feat(themes): wallpaper assets
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:59:04 +02:00
23f1f31a23 feat(themes): theme system and 12 colorscheme modules
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:59:04 +02:00
6e87d8e186 feat(desktop): Hyprland, Waybar, autostart/bindings/idle
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:59:04 +02:00
b16707b2ab feat(modules): users, scripts, menus, fastfetch, walker, cache, colors, bootstrap
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:59:04 +02:00
2289f91048 feat(modules): system package catalog and development tooling
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:59:04 +02:00
1d90e18860 feat(modules): system services, security, polkit and apparmor
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:59:04 +02:00
620af4f502 feat(modules): hardware modules — intel/amd/nvidia/audio/bluetooth/touchpad
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:59:04 +02:00
0ca8dd3929 feat(modules): boot loader, kernel, plymouth, console
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:59:04 +02:00
3b21d570e0 feat(modules): core option system and shared lib helpers
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:59:04 +02:00
87bfc4cc31 feat(lib): mksystem builder and nixpkgs overlays
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:59:04 +02:00
d37ac719d3 feat: flake inputs/outputs and settings.nix entry point
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:59:04 +02:00
7d26ef84f1 docs: top-level README and branding assets
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:59:04 +02:00
5704bd7ff4 chore: project scaffold — license, gitignore, build meta, issue templates
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:59:04 +02:00