diff options
Diffstat (limited to 'modules/core')
| -rw-r--r-- | modules/core/createHost.nix | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/modules/core/createHost.nix b/modules/core/createHost.nix new file mode 100644 index 0000000..7c84bde --- /dev/null +++ b/modules/core/createHost.nix @@ -0,0 +1,77 @@ +{ + self, + lib, + config, + pkgs, + ... +}: let + cfg = config.jcklib.createHost; +in { + flake.nixosModules.createHost = {lib, ...}: { + options.jcklib.createHost = { + hostName = lib.mkOption { + type = lib.types.str; + }; + architecture = lib.mkOption { + type = lib.types.enum ["x86_64-linux" "aarch64-linux"]; + default = "x86_64-linux"; + }; + userName = lib.mkOption { + type = lib.types.str; + default = "jck"; + }; + }; + }; + + config = { + boot.kernelPackages = lib.mkDefault pkgs.linuxPackages_latest; + hardware.firmware = with pkgs; [ + linux-firmware + ]; + hardware.enableRedistributableFirmware = true; + + system.name = cfg.hostName; + networking.hostName = cfg.hostName; + + networking.networkmanager.enable = true; + + time.timeZone = lib.mkDefault "US/Central"; + i18n.defaultLocale = "en_US.UTF-8"; + i18n.extraLocaleSettings = { + LC_ADDRESS = "en_US.UTF-8"; + LC_IDENTIFICATION = "en_US.UTF-8"; + LC_MEASUREMENT = "en_US.UTF-8"; + LC_MONETARY = "en_US.UTF-8"; + LC_NAME = "en_US.UTF-8"; + LC_NUMERIC = "en_US.UTF-8"; + LC_PAPER = "en_US.UTF-8"; + LC_TELEPHONE = "en_US.UTF-8"; + LC_TIME = "en_US.UTF-8"; + }; + + services.xserver.xkb = { + layout = "us"; + variant = ""; + }; + + users.users.${cfg.userName} = { + isNormalUser = true; + description = cfg.userName; + extraGroups = ["networkmanager" "wheel"]; + shell = pkgs.fish; # UPDATE WITH WRAPPED FISH CONFIG LATER + }; + + nixpkgs.config.allowUnfree = true; + nix.settings = { + experimental-features = ["nix-command" "flakes"]; + auto-optimise-store = true; + }; + + services.openssh = { + enable = true; + settings.PermitRootLogin = "no"; + }; + + system.stateVersion = "25.05"; + }; +} |
