-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
Description
Goal: make Nix more approachable for existing Linux users
Non-goal: make Nix user-friendly
Idea: Provide a UX for creating "profile" and "user" .nix files that can be aggregated into "machine" configs. Streamline sharing of profiles, "backing up" your profiles, and "restoring" your profiles. Support NixOS, Nix, and other possible places where nix can be used (like Docker). Possibly also support basic machine setup for NixOS (like partitioning)
Requirements
- Can read basic human-edited files
- Have an extension point for things we don't support reading / writing
- Integrate with
nixos-hardware - Search for any setting in your git repo ("is this already set in a different profile?") including the possible paths to it (since at least
nixos-hardwareis hierarchical). - Filter settings based on non-default, suggested for type of profile, basic/advanced
- Diff with shared profiles
- Cross-platform (at least for nixpkg support, maybe not for installation support)
Nice-to-haves
- Format preserving
- Nix IDE with package / setting auto-complete / tooltips
- Help people with secrets management
Out-of-scope
- Can do everything
Implementation thoughts
- Use web technologies for UX for cross-platform support
- Use rust as the backend language with the Legion ECS for data since it more easily integrates with scripting languages.
Resources