No description
  • Rust 86.9%
  • Nix 13.1%
Find a file
2026-06-22 23:08:01 +02:00
src fix: gate node options on collapse state (is_expanded || leaf) 2026-06-22 20:53:58 +00:00
.gitignore flake testing 2026-06-22 17:28:34 +00:00
Cargo.lock flake testing 2026-06-22 17:28:34 +00:00
Cargo.toml wayland lib 2026-06-22 18:04:17 +00:00
flake.lock flake testing 2026-06-22 17:28:34 +00:00
flake.nix fix: adopt NuschtOS/search evalModules pattern for options.json 2026-06-22 19:42:46 +00:00
LICENSE Update LICENSE 2026-06-22 23:08:01 +02:00
README.md Initial commit: NixOS Config Builder with iced GUI 2026-06-22 15:59:58 +00:00

NixOS Config Builder

A Rust iced GUI application for browsing NixOS options and generating configuration.

Features

  • Browse NixOS options by category tree
  • Search options by name or description
  • Generate configuration.nix from selected options
  • Full NixOS module coverage via nixosOptionsDoc

Requirements

  • Rust 1.70+
  • NixOS (for generating options.json)

Getting Started

1. Generate options.json

# Using nix
nix run github:NixOS/nixpkgs/nixos-unstable -- \
  --expr 'let pkgs = import <nixpkgs> { system = "x86_64-linux"; }; in pkgs.nixosOptionsDoc { options = (pkgs.lib.evalModules { system = "x86_64-linux"; modules = [ (import <nixpkgs/nixos/modules/lib/eval-modules.nix { modules = import <nixpkgs/nixos/modules/module-list.nix;> }) ]; }).config; }'

2. Build and Run

cargo build --release
./target/release/nixos-config-builder

Architecture

The application follows a clean 4-layer architecture:

src/
├── app/          # Application state and messages
├── config/       # Config generation (pure functions)
├── data/         # Schema types and JSON loading
├── search/       # Trie-based search
└── ui/           # iced GUI components

License

MIT