change what sw modules export
This commit is contained in:
13
flake.nix
13
flake.nix
@@ -93,18 +93,7 @@
|
|||||||
packages = forAllSystems (_: artifacts);
|
packages = forAllSystems (_: artifacts);
|
||||||
|
|
||||||
# Expose modules for external use
|
# Expose modules for external use
|
||||||
nixosModules =
|
nixosModules = import ./installer/modules.nix { inherit inputs; };
|
||||||
let
|
|
||||||
modules = import ./installer/modules.nix { inherit inputs; };
|
|
||||||
in
|
|
||||||
nixpkgs.lib.filterAttrs (n: _: n != "homeModules") modules;
|
|
||||||
|
|
||||||
# Expose Home Manager modules separately
|
|
||||||
homeModules =
|
|
||||||
let
|
|
||||||
modules = import ./installer/modules.nix { inherit inputs; };
|
|
||||||
in
|
|
||||||
modules.homeModules or { };
|
|
||||||
|
|
||||||
# Templates for external configurations
|
# Templates for external configurations
|
||||||
templates = import ./templates;
|
templates = import ./templates;
|
||||||
|
|||||||
@@ -26,42 +26,6 @@
|
|||||||
# ];
|
# ];
|
||||||
|
|
||||||
{ inputs }:
|
{ inputs }:
|
||||||
let
|
|
||||||
# Helper function to create software-only modules
|
|
||||||
# Bundles common system-level software with profile-specific config
|
|
||||||
mkSwModule =
|
|
||||||
swType:
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
../sw/ghostty.nix # Terminal emulator
|
|
||||||
../sw/python.nix # Python environment
|
|
||||||
(import ../sw/${swType} {
|
|
||||||
inherit
|
|
||||||
config
|
|
||||||
lib
|
|
||||||
pkgs
|
|
||||||
inputs
|
|
||||||
;
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
# Apply Home Manager modules to all users via sharedModules
|
|
||||||
# This ensures consistent shell theme across all users
|
|
||||||
home-manager.sharedModules = [
|
|
||||||
../sw/theme.nix
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Helper to create a Home Manager module for nvim (requires user context)
|
|
||||||
# External users can import this with their user data
|
|
||||||
mkNvimModule = user: (import ../sw/nvim.nix { inherit user; });
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
# ========== Full Host Type Modules ==========
|
# ========== Full Host Type Modules ==========
|
||||||
# Complete system configurations including hardware, boot, and software
|
# Complete system configurations including hardware, boot, and software
|
||||||
@@ -72,18 +36,12 @@ in
|
|||||||
nix-wsl = import ../hosts/types/nix-wsl.nix { inherit inputs; }; # WSL2 systems
|
nix-wsl = import ../hosts/types/nix-wsl.nix { inherit inputs; }; # WSL2 systems
|
||||||
nix-ephemeral = import ../hosts/types/nix-ephemeral.nix { inherit inputs; }; # Diskless/RAM-only
|
nix-ephemeral = import ../hosts/types/nix-ephemeral.nix { inherit inputs; }; # Diskless/RAM-only
|
||||||
|
|
||||||
# ========== Software-Only Modules (NixOS) ==========
|
# ========== Software Configuration Module ==========
|
||||||
# For use with custom hardware configurations
|
# Main software module with all ugaif.sw options
|
||||||
sw-desktop = mkSwModule "desktop"; # Full desktop environment
|
# Use ugaif.sw.type to select profile: "desktop", "tablet-kiosk", "headless", "stateless-kiosk"
|
||||||
sw-headless = mkSwModule "headless"; # CLI-only systems
|
# Use ugaif.sw.extraPackages to add additional packages
|
||||||
sw-stateless-kiosk = mkSwModule "stateless-kiosk"; # Netboot kiosk
|
# Use ugaif.sw.kioskUrl to set kiosk mode URL
|
||||||
sw-tablet-kiosk = mkSwModule "tablet-kiosk"; # Touch-based kiosk
|
sw =
|
||||||
|
{ inputs, ... }@args:
|
||||||
# ========== Home Manager Modules ==========
|
(import ../sw/default.nix (args // { inherit inputs; }));
|
||||||
# User-level configuration modules
|
|
||||||
# Usage: home-manager.users.myuser.imports = [ (inputs.nixos-systems.homeManagerModules.nvim { user = <user-data>; }) ];
|
|
||||||
homeModules = {
|
|
||||||
theme = ../sw/theme.nix; # Zsh theme (no params needed)
|
|
||||||
nvim = mkNvimModule; # Neovim (requires user param)
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user