refactor: reorganize directory structure (variants -> hw, glue -> fleet)

- Rename variants/ to hw/ for clearer hardware module naming
- Rename glue/ to fleet/ for more intuitive fleet management
- Move boot/fs configuration from glue/boot.nix to separate fleet/boot.nix and fleet/fs.nix
- Improve separation of concerns between boot, filesystem, and common config
This commit is contained in:
UGA Innovation Factory
2026-01-07 18:11:19 -05:00
parent 9e066d395b
commit 5875725ca2
14 changed files with 892 additions and 236 deletions

53
hw/nix-wsl.nix Normal file
View File

@@ -0,0 +1,53 @@
# ============================================================================
# Windows Subsystem for Linux (WSL) Configuration
# ============================================================================
# Configuration for NixOS running in WSL2 on Windows.
# Integrates with nixos-wsl for WSL-specific functionality.
{
lib,
config,
inputs,
...
}:
{
imports = [
inputs.nixos-wsl.nixosModules.default
inputs.vscode-server.nixosModules.default
];
# ========== Options ==========
options.athenix.host.wsl.user = lib.mkOption {
type = lib.types.str;
default = "engr-ugaif";
description = "The default user to log in as in WSL.";
};
config = {
# ========== WSL Configuration ==========
wsl.enable = true;
# Use forUser if set, otherwise fall back to wsl.user option
wsl.defaultUser =
if config.athenix.forUser != null then config.athenix.forUser else config.athenix.host.wsl.user;
# ========== Software Profile ==========
athenix.sw.enable = lib.mkDefault true;
athenix.sw.type = lib.mkDefault "headless";
# ========== Remote Development ==========
services.vscode-server.enable = true;
# ========== Disable Irrelevant Systems ==========
# WSL doesn't use traditional boot or disk management
disko.enableConfig = lib.mkForce false;
boot.loader.systemd-boot.enable = lib.mkForce false;
boot.loader.grub.enable = lib.mkForce false;
# WSL manages its own networking
systemd.network.enable = lib.mkForce false;
# Provide dummy values for required options from boot.nix
athenix.host.filesystem.device = "/dev/null";
athenix.host.filesystem.swapSize = "0G";
};
}