I was just testing some other distributions and all seem to have a GUI tool to:
install new packages
search for packages by name/description
remove packages
update the system
Is anyone working on this for NixOS?
I’d imagine at the very least this could be a little frontend for nix-env -i and nixos-rebuild. Ideally, you’d want to modify some of the declarative configuration, too.
Wouldn’t this be fairly difficult? There are so many ways to install software declaratively both implicitly and explicitly. On top of that configuration.nix can be a web of imports.
It seems like it would be fairly easy to to put a graphical tool on top of ad-hoc package management. On the other hand, in my limited experience, the power of nixos comes from the repeatability created by declarative configuration.
You’re totally right. On top of what you mentioned, the tool would ideally parse and interpret/serialize Nix, so as not to randomly break your config (because you’re using text replacements or something horrendous like that ).
However, at least installation/removal of packages could be “solved” by assuming a gui-installed-packages.nix exists which contains a list of packages managed by the tool.
Edit: Just to clarify, I’m not talking about a tool that replaces all the nice things you can do with the Nix language. It’s more from the perspective of a casual Nix user where installing, updating and maybe enabling services is all that’s needed.
Hi, Regarding a GUI tool for Nix, I think we may consider Nix and NixOS separately.
Considering NixOS, graphical tools can be interesting for beginners but this can be difficult to implement: we have to define a more standard way to install packages, implement a graphical installer for NixOS, implement a graphical package manager or integrate Nix in existing package managers (such as gnome-software-manager)… In addition, this should be compatible with our current workflow based on editing Nix files. Finally, it would also be nice to have a graphical tool for “per-project” configurations, which is, in my opinion, a killer feature of Nix for “normal” users (for example, to create a working Python environment without having to use virtualenv/conda/whatever).
On the other hand, I think it would be very beneficial to have a graphical tool for using Nix on other distributions than NixOS because it can solve widespread problems: let a normal user install software, install applications that are not in the distribution software repository. In fact, I’m quite tired of reading forum/chat/blog posts presenting snap/flatpak as a good solution while Nix is better on almost all points: more mature, more packages, better isolation/sharing, etc. The main drawback of Nix seems to be advertising…
It’s got some of what you’re looking for. We provide a web app for:
Installing new packages to globally synchronized profiles
Searching for packages by name description
Remove packages from profiles
Right now, we don’t have support for updating NixOS configurations or other declarative config directly in the GUI because at this stage, flox is mainly designed for making Nix packages easier to use, instead of making NixOS easier.
We’d love to hear what you think if you have a chance to take a look or play with it.
Between nixos-manager, nix42b, nix-gui, and possibly other candidates, does anyone care to share their personal opinion on the best of the bunch, for NixOS newbies?
Constant copy/pasting then doing cat $(realpath /nix/store/...) recursively by-hand is tedious. Should be a better way to view and navigate a drv and its dependencies? This would be a simple project, and it could even be a tui.
I haven’t used it much, but just for browsing derivation dependency graphs with a tui I think nix-tree already does that? Maybe that doesn’t do exactly what you want, but throwing it out there in case.