Currently when editing options of type “Nix expression”, “Package”, or “Path”, you are able to directly insert raw Nix code into the generated output. This means that you can create larger expressions here which should enable overlays + overrides as a hack for now.
I’ll see if I can get duplication of flakes done quite soon, as this is mostly implemented. Will post an update. The renaming requires a bit more thinking, however I want to solve this, ideally in a way which will also prevent breaking dependent configurations if users delete flakes.
Just posted MyNixOS version 0.1.17 with the following updates:
Added support for Darwin configuration and Darwin module outputs via nix-darwin
Added support for Home Manager use with Darwin configurations
Darwin configurations can import Darwin modules and Home Manager configurations
Darwin modules can import Darwin modules and Home Manager configurations
Added ability to add flake input follows + overrides to flakes. Input paths are resolved from flake lockfile to provide easy selection of input path + follow path in follow, and for input path in override. Suggested branches are added as override targets for Nixpkgs + Home Manager. Warning icon is displayed for non-resolving follows / overrides.
Added ability to rename flakes
Added support for new Nixpkgs markdown styles
Added support for resolving option links in parsed options
Added log output for lock + release actions
Added copyable code widgets for installation instructions
Updated install-loader script to allow nested or flat install
Screenshot showing flake input follows and overrides UX:
Posting an update of recent updates to MyNixOS.com, as v0.1.21 is now live!
Feature: New user interface
MyNixOS now has a new user interface based on the Primer UI toolkit developed by GitHub, replacing the old interface based on Bootstrap. The change includes a number of UX improvements and redesigns, including:
New flake selector
The flake selector has been updated to include filtering + scrolling.
Vertically nested option layout
Option layouts are now flatter and “nest" vertically to more effectively use space. This change is part of an ongoing redesign of flake outputs to make it more scalable. This design is not yet mobile optimized, which will be fixed in update v0.1.22.
Improved read-mode settings
Flake outputs “read-mode” has been improved to make it easier to view flakes when not editing them.
Re-orderable option lists
Lists within options can now be re-ordered by drag and drop.
Searchable lists for enums and time zones
Option enums and time zones are now searchable to aid navigation.
Better type hints in enums
Enum types are presented more clearly.
Help info for flake outputs
Built-in info for each flake output type explaining their purpose.
Toggle switch for boolean
Boolean are now toggle switches instead of radio boxes.
Themes
9 themes, 5 dark and 4 light, can now be chosen from the account settings menu.
Preview of flake outputs screen showing editable options:
MyNixOS now has contextual search and a new search architecture. This allows for easily searching and adding Nix packages where a Nix package type is expected, without having to navigate to separate package pages.
The search is still a local in-browser search, with the following improvements:
Search now follows a new Nix-tailored ranking algorithm to provide more relevant and intuitive ordering.
Search now supports filtering in order to enable contextual search. As in the example shown in the image below, a search within the context of a development shell with system “x86_64-linux” automatically filters the results to packages supporting this system. Additional UI support for using filters will be introduced.
Search now uses SharedWorker where possible, which allows tabs to reuse the same in-memory index, avoiding extra memory usage per tab. Regular workers are used as fallback on devices not supporting SharedWorker, which includes most mobile devices. Results are streamed from the worker context to reduce latency for viewing results.
Search now preloads the search index to reduce search response time, either through downloading or retrieving it from the local browser cache.
Large package groups such as those developed in Haskell and R often contain sparse information. MyNixOS now has two new data plugins which ensures that additional information is parsed from original package documentation files, adding data to ~14k Haskell packages and ~20k R packages.
Preview of updated package layout with external content:
Very cool project! I’m just getting started setting up nix-darwin and this looks like it will be quite helpful. I hope you’re able to open up the source at some point, it would be a shame if such a cool project would disappear if you were no longer able to work on it for any reason.