Please place the calamares installer in the next update

The idea of nix them is very good and I even went to try to install
But as I’m noob I never managed to install
Is it possible to place the calamari or some other graphical installer in the next update?

nixos is far easier to install than it is to configure and use.

If you are struggling to get through the installation hurdle, the next hill to climb is going to seem like Mount Everest.

The best thing to do is to be patient and take the install step by step. The installation documentation is really quite good and walks you through the whole thing.

2 Likes

I actually know some super smart sysadmins who haven’t had to do any disk partitioning in years, thanks to virtual machines, and they hate having to fiddle with fdisk/gdisk/etc… It seems like such a waste of time to them, when a graphical install gets the job done without having to remember/learn any documentation.

By omitting a graphical installer like calamares we’re effectively telling prospective users they have to learn one more thing on top of nix and NixOS to use our system. Learning how to install a distro without an installer is a relatively large ask just to try a new distro out.

@Telmo unfortunately a graphical installer has been on the wish list for a while, but never materialized yet :frowning_face: Maybe in the meantime you could follow the manual, installing NixOS in a virtual machine, and ask questions on IRC/discourse/matrix/discord/etc… and we could help you understand/resolve any issues you are having.

8 Likes

Estou a ter dificuldades na 0arte do configuration.nix

On the one hand, I understand what you are saying. But the install documentation is really excellent and just gives a series of commands to run. You can literally run them as-is if your disk is /dev/sda. There is really very little need for thought until you get the configuration.nix part

They look something like this with all the explanations removed:
parted /dev/sda -- mklabel gpt
parted /dev/sda -- mkpart primary 512MiB -8GiB
parted /dev/sda -- mkpart primary linux-swap -8GiB 100%
parted /dev/sda -- mkpart ESP fat32 1MiB 512MiB
parted /dev/sda -- set 3 boot on
mkfs.ext4 -L nixos /dev/sda1
mkswap -L swap /dev/sda2
mkfs.fat -F 32 -n boot /dev/sda3
mount /dev/disk/by-label/nixos /mnt
mkdir -p /mnt/boot
mount /dev/disk/by-label/boot /mnt/boot
swapon /dev/sda2
nixos-generate-config --root /mnt
nano /mnt/etc/nixos/configuration.nix
nixos-install

If they are the type of individual who isn’t inclined to “remember/learn any documentation”, what is going to happen once the system is installed?

It is 15 commands, 14 of which can be copy/pasted with minimal or no changes.

On the other hand, think of what happens once the system is installed. You are basically left on and island. A substantial portion of your Linux knowledge doesn’t apply on nixos. The documentation is mostly about how nix works with almost no information about how to apply it practically. Even simple tasks require not only reading the documentation and learning nix but then searching the internet/github trying to find something like a relevant example so you can understand possibilities. When you can’t find anything you need to develop a solution on your own which is quite difficult without any experience.

What does it mean to try out nixos? If it means getting it installed and demonstrating that you can indeed run commands and/or click on things in a UI then I think an installer will help. If it means actually being able to do anything useful with the install, I think an installer is just accelerating people into a brick wall at a greater speed.

That being said, I have no objections to installers. I just think making the post-install experience more approachable should happen before an installer is put in place.

If you share specifics I am sure someone can help you.

2 Likes

I wanted someone to send me your Nixos file so I could copy and replace it with what’s set up.
Inside the configuration.Nix

One could use gparted with is included in the graphical iso.

1 Like
Here is a basic one I use for testing.
# The vm used on my workstation for testing

{ config, pkgs, ... }:

let
  unstable = import <nixos-unstable> { config = { allowUnfree = true; }; };
in {
  imports =
    [ 
      ./hardware-configuration.nix
    ];

  # Use the systemd-boot EFI boot loader.
  boot.loader.systemd-boot.enable = true;
  boot.loader.efi.canTouchEfiVariables = true;

  # Enable the KDE Desktop Environment.
  services.xserver.desktopManager.plasma5.enable = true;
  services.xserver.displayManager.sddm.enable = true;

  networking.interfaces.ens33.useDHCP = true;
  networking.hostName = "nixos";

  services.openssh.enable = true;

  programs.ssh.startAgent = true;

  nix.gc.automatic = true;

  environment.systemPackages = with pkgs; [
    vim
    wget
    git
    file
    bind
    ps_mem
    micro
    parted
    gptfdisk
    screen
    mkpasswd
    unzip
    ffmpeg
    kate
    firefox
    flameshot
    gwenview
    okular
    gimp
    falkon
    (vivaldi.override { proprietaryCodecs = true; enableWidevine = true; })
    smplayer
    vlc
    sayonara
    latte-dock
    appimage-run
    unstable.vscodium
    inxi
    lm_sensors
    glxinfo
    mpv
  ];


  # Open ports in the firewall.
  networking.firewall.enable = true;
  networking.firewall.allowedTCPPorts = [ ];
  # networking.firewall.allowedUDPPorts = [ ... ];

  services.printing.enable = true;

  # Enable sound.
  sound.enable = true;
  hardware.pulseaudio.enable = true;

  # Enable the X11 windowing system.
  services.xserver.enable = true;
  services.xserver.layout = "us";
  # services.xserver.xkbOptions = "eurosign:e";

  users.users.dalto = {
    isNormalUser = true;
    extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
  };

  system.stateVersion = "20.03"; # Did you read the comment?

  nixpkgs.config.allowUnfree = true;

  # automatic upgrades
  system.autoUpgrade.enable = true;
  system.autoUpgrade.allowReboot = true;

  # vmware guest support
  virtualisation.vmware.guest.enable = true;
}

You will need to run these commands before running nixos-install since it includes packages from unstable.

nix-channel --add https://nixos.org/channels/nixos-unstable nixos-unstable
nix-channel --update

It is a full workstation install with a bunch of random software I use so it brings in much more than you would need if you were deploying a server.

Inside the live CD?..

Sure…just paste it over the generated configuration.nix or scp it in. Be sure to change the network device name to match yours.

Alternatively, the generated configuration.nix should mostly work as is. Why not just use it?

I totally support your request to have a graphical installer. It will definitely hide away some of the low level details of the installation.

To your problem: Did you read the manual?

You can read it online here: https://nixos.org/nixos/manual/#sec-installation

beforehand and it’s also available inside the live CD (as dalto had already kindly pointed out).

If you’ve tried to follow the manual please share the section that gave you trouble.
If you already reached section 2.3.4. with “nano /mnt/etc/nixos/configuration.nix” please let us know what’s of interest to you.

If you search for “configuration.nix” on the internet you will find loads of configs.

@manveru and me worked on porting Calamares to NixOS during last NixCon. It is close to being finished but I kind of forgot about it. I don’t have time for it in the coming weeks but if any of you want to take a stab at it, here is our progress: https://github.com/Lucus16/calamares/tree/os-modules

The idea is to let Calamares handle disk partitioning, use nixos-generate-config to generate the hardware config and generate the top level config based on the data in the Calamares GlobalStorage and then to just run nixos-install.

The most important thing that remains to be done is to split the changes into the parts that need to go upstream and the NixOS-specific data files that should go in nixpkgs. @manveru started work on a package selection feature as well but I recommend leaving that for later.

Don’t hesitate to ask me for more clarification or code review.

1 Like

When you’re ready please let me know
I’m now using Redcore
When the calamari in the nix is ready can you please disclose it right here?