From f9589f2ca1c150dfdf27b022cf5580ba48f140d4 Mon Sep 17 00:00:00 2001 From: Gabriel Arazas Date: Sat, 5 Feb 2022 17:55:48 +0800 Subject: [PATCH] Modularize `nixos` user This is to make creating installers easier. --- hosts/bootstrap/default.nix | 53 ++-------------------------------- users/nixos/nixos/default.nix | 54 +++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 51 deletions(-) create mode 100644 users/nixos/nixos/default.nix diff --git a/hosts/bootstrap/default.nix b/hosts/bootstrap/default.nix index 87d00e24..57210dea 100644 --- a/hosts/bootstrap/default.nix +++ b/hosts/bootstrap/default.nix @@ -3,6 +3,7 @@ { imports = [ "${modulesPath}/installer/cd-dvd/installation-cd-minimal.nix" + (lib.getUser "nixos" "nixos") ]; isoImage = { @@ -19,57 +20,7 @@ networking.hostName = "bootstrap"; boot.supportedFilesystems = lib.mkForce [ "btrfs" "reiserfs" "vfat" "f2fs" "xfs" "ntfs" "cifs" ]; - nix = { - gc.automatic = true; - optimise.automatic = true; - - # Please see `nix-conf.5` manual for more details. - settings = { - # All to make improvement for using Nix. - trusted-users = [ "root" "@wheel" ]; - allow-import-from-derivation = true; - allow-dirty = true; - auto-optimise-store = true; - sandbox = true; - - # Set several binary caches. - substituters = [ - "https://cache.nixos.org/" - "https://nix-community.cachix.org" - "https://foo-dogsquared.cachix.org" - ]; - trusted-public-keys = [ - "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" - "foo-dogsquared.cachix.org-1:/2fmqn/gLGvCs5EDeQmqwtus02TUmGy0ZlAEXqRE70E=" - ]; - }; - }; - - users.users = { - root.password = ""; - - nixos = { - password = "nixos"; - description = "default"; - isNormalUser = true; - extraGroups = [ "wheel" ]; - }; - }; - - environment.systemPackages = with pkgs; [ - binutils - coreutils - moreutils - whois - jq - git - manix - - # The coreutils replacement. - ripgrep - fd - bat - ]; + users.users.root.password = ""; boot.loader.systemd-boot.enable = true; } diff --git a/users/nixos/nixos/default.nix b/users/nixos/nixos/default.nix new file mode 100644 index 00000000..95cdba54 --- /dev/null +++ b/users/nixos/nixos/default.nix @@ -0,0 +1,54 @@ +# This is the user usually used for installers. Don't treat it like a normal +# user, pls. It will override several things just to teach you a lesson. :) +{ lib, pkgs, ... }: + +{ + users.users.nixos = { + password = "nixos"; + description = "default"; + isNormalUser = true; + extraGroups = [ "wheel" ]; + }; + + nix = { + gc.automatic = true; + optimise.automatic = true; + + # Please see `nix-conf.5` manual for more details. + settings = { + # All to make improvement for using Nix. + trusted-users = [ "root" "@wheel" ]; + allow-import-from-derivation = true; + allow-dirty = true; + auto-optimise-store = true; + sandbox = true; + + # Set several binary caches. + substituters = [ + "https://cache.nixos.org/" + "https://nix-community.cachix.org" + "https://foo-dogsquared.cachix.org" + ]; + trusted-public-keys = [ + "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" + "foo-dogsquared.cachix.org-1:/2fmqn/gLGvCs5EDeQmqwtus02TUmGy0ZlAEXqRE70E=" + ]; + }; + }; + + environment.systemPackages = with pkgs; [ + binutils + coreutils + moreutils + neovim + whois + jq + git + manix + + # The coreutils replacement. + ripgrep + fd + bat + ]; +}