- 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
54 lines
1.6 KiB
Nix
54 lines
1.6 KiB
Nix
# ============================================================================
|
|
# 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";
|
|
};
|
|
}
|