update inline docs and make home-manager module exports

This commit is contained in:
UGA Innovation Factory
2025-12-16 14:16:53 -05:00
parent 870f5601b0
commit a43dfea615
13 changed files with 244 additions and 118 deletions

View File

@@ -60,24 +60,26 @@ in
config = mkIf cfg.enable (mkMerge [
{
# ========== System-Wide Configuration ==========
nixpkgs.config.allowUnfree = true;
# ========== Shell Configuration ==========
programs.zsh.enable = true;
programs.nix-ld.enable = true;
programs.nix-ld.enable = true; # Allow running non-NixOS binaries
# ========== Base Packages ==========
environment.systemPackages =
with pkgs;
subtractLists cfg.excludePackages [
htop
binutils
zsh
git
oh-my-posh
# inputs.lazyvim-nixvim.packages.${stdenv.hostPlatform.system}.nvim
inputs.agenix.packages.${stdenv.hostPlatform.system}.default
htop # System monitor
binutils # Binary utilities
zsh # Z shell
git # Version control
oh-my-posh # Shell prompt theme
inputs.agenix.packages.${stdenv.hostPlatform.system}.default # Secret management
];
}
# Import Desktop or Kiosk modules based on type
# ========== Software Profile Imports ==========
(mkIf (cfg.type == "desktop") (
import ./desktop {
inherit

View File

@@ -1,3 +1,8 @@
# ============================================================================
# Desktop Software Configuration
# ============================================================================
# Imports desktop-specific programs and services (KDE Plasma, CUPS, etc.)
{
config,
lib,

View File

@@ -1,3 +1,8 @@
# ============================================================================
# Headless Software Configuration
# ============================================================================
# Imports headless-specific programs and services (SSH, minimal CLI tools)
{
config,
lib,

View File

@@ -1,3 +1,10 @@
# ============================================================================
# Neovim Home Manager Configuration
# ============================================================================
# Provides conditional Neovim configuration based on user preferences.
# - If useNvimPlugins=true: Full LazyVim distribution with plugins
# - If useNvimPlugins=false: Plain Neovim without plugins
{ user }:
{
pkgs,
@@ -6,23 +13,19 @@
...
}:
let
# Choose Neovim package based on user preference
nvimPackages =
if user.useNvimPlugins then
[
inputs.lazyvim-nixvim.packages.${pkgs.stdenv.hostPlatform.system}.nvim
]
[ inputs.lazyvim-nixvim.packages.${pkgs.stdenv.hostPlatform.system}.nvim ]
else
[ pkgs.neovim ];
in
{
# ============================================================================
# Neovim Configuration
# ============================================================================
# This module configures Neovim, specifically setting up TreeSitter parsers
# to ensure syntax highlighting works correctly.
home.packages = nvimPackages;
# Configure TreeSitter parsers for syntax highlighting
# Only needed when using plugins (LazyVim includes TreeSitter)
# https://github.com/nvim-treesitter/nvim-treesitter#i-get-query-error-invalid-node-type-at-position
xdg.configFile."nvim/parser".source = lib.mkIf user.useNvimPlugins (
let