Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFC: Graphical installer for NixOS #21662

Closed
1 of 11 tasks
matthewbauer opened this issue Jan 4, 2017 · 22 comments · Fixed by #161788
Closed
1 of 11 tasks

RFC: Graphical installer for NixOS #21662

matthewbauer opened this issue Jan 4, 2017 · 22 comments · Fixed by #161788

Comments

@matthewbauer
Copy link
Member

matthewbauer commented Jan 4, 2017

Background

This is a project idea for Google Summer of Code 2017. I'm treating this more as a request for comment right now as opposed to a generic issue. Any and all feedback is welcome. Some of this proposal will probably change as I dive more into how Calamares works.

Issue description

Basically, NixOS has a fairly complicated installation process. Some proposals like nixos-assimilate attempt to make this process easier but they are still a fairly low-level operation. The goal is to make the installation process for NixOS as easy as more mainstream distros like Ubuntu and Fedora.

Proposal

This would rely heavily on Calamares, a distro-independent system installation framework. It's the best framework I've been able to find and so doesn't require reimplemented menus and things used by other distros. An important goal is to keep this all in Nix expressions to allow for configuring the Calamares installer just like you would any other service. Calamares will be added as a NixOS service which can be enabled in the NixOS configuration and eventually added as the default for our "demo" profiles.

Tasks

  • Package Calamares
  • Add NixOS service
  • Implement Calamares modules as Nix expressions (reuse where possible)
    • "try NixOS" module (KDE desktop) [5]
    • networking module (NetworkManager) [6]
    • partitioning module (nixpart) [7]
    • NixOS configuration generator module (menus for common profiles) [10]
      • keep versatile enough to be usable as a generic NixOS options GUI
    • nixos-install module (nixos-assimilate) [11]
  • Add Calamares config file
  • Add NixOS branding to Calamares
  • Enable Calamares as demo profile
@Mic92
Copy link
Member

Mic92 commented Jan 4, 2017

cc @cleverca22 because you were working on a GUI for NixOS options/partition editor.

@vcunat
Copy link
Member

vcunat commented Jan 4, 2017

Note: we used to have calamares: c677c35, in case you'd like a starting point...

@matthewbauer
Copy link
Member Author

cc @cleverca22 because you were working on a GUI for NixOS options/partition editor.

I hadn't seen nixos-installer! I'll have to figure out how it's working and see if this proposal is still needed.

@michaelpj
Copy link
Contributor

I'd love to see this go somewhere - installing NixOS is currently a bit unfriendly.

@Mic92
Copy link
Member

Mic92 commented Nov 18, 2017

@manveru and @seppeljordan are also working on an installer

@manveru
Copy link
Contributor

manveru commented Dec 11, 2017

@matthewbauer i at least managed to package calamares now. Played around a bit with branding and writing some simple python modules to generate a configuration.
My C++ skills are not good enough to write anything major for the GUI like a nixos configuration manager, but it should be good enough for getting an initial setup up and running.
I'm working on a nixos config editor for the browser as well, which might be useful down the line, but right now my priority is to get new users onboard ASAP.

@davidak
Copy link
Member

davidak commented Apr 2, 2018

The developers of elementary OS and Pop!_OS (System76) are creating a new Installer. They say all available installers are complicated to modify and don't have good user experience.

https://medium.com/elementaryos/meet-the-upcoming-installer-a499341218f5
https://github.com/elementary/installer/wiki

The Frontend is written in Vala and Gtk+ while the backend is written in Rust.

https://github.com/elementary/installer
https://github.com/pop-os/distinst

They want to have it ready in April 2018 for their distros.

By using it we could have very user friendly design like elementary OS and build on a clean and modern foundation. What do you think?

@davidak
Copy link
Member

davidak commented Apr 6, 2018

This is a nice example how a very customizable setup can look:

screenshot_2018-04-07_01-48-41

screenshot_2018-04-07_01-49-06

We can have the most important options there to get a desktop user started.

@cleverca22
Copy link
Contributor

something i was also planning on with my idea was a configuration.nix editor that is aware of the syntax and the available options: https://www.youtube.com/watch?v=rIdPKzYTN-w

and also to be able to run the gui over http, so you could remotely configure a server

@leo60228
Copy link
Member

NixOS modules can be introspected (like the options page on nixos.org does), right? Make some icons for top-level configuration options and a heuristic for formatting options, and you're already most of the way there for the data required for a configuration.nix editor.

@LeBaux
Copy link

LeBaux commented Jun 15, 2019

I see the liveCD is already available, but still no installer. I understand it is no priority, but it would be nice to just hop on, Install nixos with GUI and mess around. GUI package manager would make it even more accessible. That is if nixos is intended for general use.

@KiaraGrouwstra
Copy link
Contributor

something i was also planning on with my idea was a configuration.nix editor that is aware of the syntax and the available options: https://www.youtube.com/watch?v=rIdPKzYTN-w

and also to be able to run the gui over http, so you could remotely configure a server

Generating form UIs from a spec has been explored in e.g. react-jsonschema-form, in that case using JSON schema as a specification rather than Nix...

@nixos-discourse
Copy link

This issue has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/is-anyone-working-on-a-gui-tool-to-manage-packages/5540/4

@nixos-discourse
Copy link

This issue has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/how-to-make-nixos-so-easy-that-people-can-be-productive-up-front-without-having-to-first-learn-the-nix-language/5625/39

@davidak
Copy link
Member

davidak commented Mar 7, 2020

FYI: @manveru is working on a graphical NixOS installer based on Calamares.

https://discourse.nixos.org/t/what-are-your-goals-for-20-03/4773/7?u=davidak

I'm looking forward to be able to test it :)

@stale

This comment has been minimized.

@stale stale bot added the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Sep 4, 2020
@Mic92
Copy link
Member

Mic92 commented Sep 6, 2020

still important.

@stale stale bot removed the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Sep 6, 2020
@nixos-discourse
Copy link

This issue has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/user-friendly-nixos-distro/1348/60

@milahu
Copy link
Contributor

milahu commented Jan 25, 2021

would be nice to have: a textual frontend for the same backend

  • to bootstrap the graphical frontend (or as fallback in case the graphical menu is broken)
  • to provide a menu for a headless setup

... kind-of like make menuconfig for linux kernel

@stale
Copy link

stale bot commented Sep 10, 2021

I marked this as stale due to inactivity. → More info

@stale stale bot added the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Sep 10, 2021
@nixos-discourse
Copy link

This issue has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixosstag.fcio.net/t/what-are-your-goals-for-19-09/2875/33

@stale stale bot removed the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Nov 2, 2021
@nixos-discourse
Copy link

This issue has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/why-is-there-no-installer-for-nixos/16644/2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.