From 8b084aa2f4952d2a95151379dede98ede8a3128b Mon Sep 17 00:00:00 2001 From: scouckel Date: Fri, 27 Mar 2026 22:50:29 -0400 Subject: movement to fully dendritic --- modules/core/createHost.nix | 115 ++++++++++++++---------- modules/hosts/shar/shar.nix | 0 modules/hosts/tiamat/hardware-configuration.nix | 40 --------- modules/hosts/tiamat/hardware.nix | 37 ++++++++ modules/hosts/tiamat/tiamat.nix | 19 ++++ modules/hosts/vecna/vecna.nix | 0 modules/packages/fish.nix | 23 ----- modules/parts.nix | 10 +++ 8 files changed, 132 insertions(+), 112 deletions(-) delete mode 100644 modules/hosts/shar/shar.nix delete mode 100644 modules/hosts/tiamat/hardware-configuration.nix create mode 100644 modules/hosts/tiamat/hardware.nix delete mode 100644 modules/hosts/vecna/vecna.nix delete mode 100644 modules/packages/fish.nix create mode 100644 modules/parts.nix (limited to 'modules') diff --git a/modules/core/createHost.nix b/modules/core/createHost.nix index 7c84bde..da33708 100644 --- a/modules/core/createHost.nix +++ b/modules/core/createHost.nix @@ -1,13 +1,12 @@ { self, lib, - config, - pkgs, ... -}: let - cfg = config.jcklib.createHost; -in { - flake.nixosModules.createHost = {lib, ...}: { +}: +{ + flake.nixosModules.createHost = { lib, config, pkgs, ... }: let + cfg = config.jcklib.createHost; + in { options.jcklib.createHost = { hostName = lib.mkOption { type = lib.types.str; @@ -21,57 +20,75 @@ in { default = "jck"; }; }; - }; - config = { - boot.kernelPackages = lib.mkDefault pkgs.linuxPackages_latest; - hardware.firmware = with pkgs; [ - linux-firmware - ]; - hardware.enableRedistributableFirmware = true; + config = { + boot.loader = { + efi = { + canTouchEfiVariables = true; + efiSysMountPoint = "/boot"; # ← use the same mount point here. + }; + grub = { + efiSupport = true; + device = "nodev"; + useOSProber = true; + theme = "${pkgs.fetchFromGitHub { # blue screen of life grub theme + owner = "scouckel"; + repo = "bsol"; + rev = "a8eedad9e7163dce230ca7886be8e1b4ef81da99"; + sha256 = "sha256-P2q73uM1Ysn1a+0mOGOvee/Q1WAYRGQvfanrasx/8r8"; + }}/bsol"; + }; + }; - system.name = cfg.hostName; - networking.hostName = cfg.hostName; + boot.kernelPackages = lib.mkDefault pkgs.linuxPackages_latest; + hardware.firmware = with pkgs; [ + linux-firmware + ]; + hardware.enableRedistributableFirmware = true; - networking.networkmanager.enable = true; + system.name = cfg.hostName; + networking.hostName = cfg.hostName; - 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"; - }; + networking.networkmanager.enable = true; - services.xserver.xkb = { - layout = "us"; - variant = ""; - }; + 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"; + }; - users.users.${cfg.userName} = { - isNormalUser = true; - description = cfg.userName; - extraGroups = ["networkmanager" "wheel"]; - shell = pkgs.fish; # UPDATE WITH WRAPPED FISH CONFIG LATER - }; + services.xserver.xkb = { + layout = "us"; + variant = ""; + }; - nixpkgs.config.allowUnfree = true; - nix.settings = { - experimental-features = ["nix-command" "flakes"]; - auto-optimise-store = true; - }; + users.users.${cfg.userName} = { + isNormalUser = true; + description = cfg.userName; + extraGroups = ["networkmanager" "wheel"]; + # shell = self.packages.fish; # UPDATE WITH WRAPPED FISH CONFIG LATER + }; - services.openssh = { - enable = true; - settings.PermitRootLogin = "no"; - }; + nixpkgs.config.allowUnfree = true; + nix.settings = { + experimental-features = ["nix-command" "flakes"]; + auto-optimise-store = true; + }; - system.stateVersion = "25.05"; + services.openssh = { + enable = true; + settings.PermitRootLogin = "no"; + }; + + system.stateVersion = "25.05"; + }; }; } diff --git a/modules/hosts/shar/shar.nix b/modules/hosts/shar/shar.nix deleted file mode 100644 index e69de29..0000000 diff --git a/modules/hosts/tiamat/hardware-configuration.nix b/modules/hosts/tiamat/hardware-configuration.nix deleted file mode 100644 index dee0ce0..0000000 --- a/modules/hosts/tiamat/hardware-configuration.nix +++ /dev/null @@ -1,40 +0,0 @@ -# Do not modify this file! It was generated by ‘nixos-generate-config’ -# and may be overwritten by future invocations. Please make changes -# to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - -{ - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; - - boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "uas" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-amd" ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/0983bf69-0f71-4c49-885b-0b5c09a19429"; - fsType = "ext4"; - }; - - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/756C-8B9B"; - fsType = "vfat"; - options = [ "fmask=0077" "dmask=0077" ]; - }; - - swapDevices = - [ { device = "/dev/disk/by-uuid/50dd07e0-bf93-450c-a91b-aa73a18a8224"; } - ]; - - # Enables DHCP on each ethernet and wireless interface. In case of scripted networking - # (the default) this is the recommended approach. When using systemd-networkd it's - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/modules/hosts/tiamat/hardware.nix b/modules/hosts/tiamat/hardware.nix new file mode 100644 index 0000000..eadfd00 --- /dev/null +++ b/modules/hosts/tiamat/hardware.nix @@ -0,0 +1,37 @@ +{ self, inputs, ... }: { + flake.nixosModules.tiamatHardware = { config, lib, pkgs, modulesPath, ... }: { + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "uas" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/0983bf69-0f71-4c49-885b-0b5c09a19429"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/756C-8B9B"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/50dd07e0-bf93-450c-a91b-aa73a18a8224"; } + ]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + }; +} diff --git a/modules/hosts/tiamat/tiamat.nix b/modules/hosts/tiamat/tiamat.nix index e69de29..3ff764b 100644 --- a/modules/hosts/tiamat/tiamat.nix +++ b/modules/hosts/tiamat/tiamat.nix @@ -0,0 +1,19 @@ +{ inputs, self, ... }: + +{ + flake.nixosConfigurations.tiamat = inputs.nixpkgs.lib.nixosSystem { + modules = [ + self.nixosModules.tiamat + self.nixosModules.tiamatHardware + + self.nixosModules.createHost + ]; + }; + + flake.nixosModules.tiamat = { pkgs, ... }: { + jcklib.createHost = { + hostName = "tiamat"; + userName = "jck"; + }; + }; +} diff --git a/modules/hosts/vecna/vecna.nix b/modules/hosts/vecna/vecna.nix deleted file mode 100644 index e69de29..0000000 diff --git a/modules/packages/fish.nix b/modules/packages/fish.nix deleted file mode 100644 index fb3223d..0000000 --- a/modules/packages/fish.nix +++ /dev/null @@ -1,23 +0,0 @@ -{inputs, ...}: { - perSystem = { - self', - pkgs, - ... - }: let - fishConf = '' - function fish_greeting - fastfetch - end - - fish_vi_key_bindings - ''; - in { - packages.fish = inputs.wrappers.lib.wrapPackage { - inherit pkgs; - package = pkgs.fish; - flags = { - "-C" = "source ${fishConf}"; - }; - }; - }; -} diff --git a/modules/parts.nix b/modules/parts.nix new file mode 100644 index 0000000..657e3ca --- /dev/null +++ b/modules/parts.nix @@ -0,0 +1,10 @@ +{ + config = { + systems = [ + "x86_64-linux" + "x86_64-darwin" + "aarch64-linux" + "aarch64-darwin" + ]; + }; +} -- cgit v1.3