mirror of
https://github.com/itme-brain/nixos.git
synced 2026-03-24 00:29:43 -04:00
Directory structure: - Move from src/ to root level (system/, user/) - Remove unused machines (workstation, vm, laptop) User configuration: - Add user/home.nix for shared defaults (pass, essentials, default modules) - Centralize user options in user/default.nix - Move submodules to consistent paths (bash/bash, git/git, neovim/nvim, vim/vim) Module reorganization: - Flatten nested module structures (remove /modules/ subdirs) - Split CLI vs GUI tools (dev/ for CLI, gui/dev/ for GUI) - Move neovim/vim to top-level modules (not under utils/) - Remove security.enable - pass now in user/home.nix - Remove utils.enable - essentials now in user/home.nix - Add security/yubikey module with yubikey-manager, age-plugin-yubikey - Move pcb, design to gui/dev/ - Replace penpot docker wrapper with nixpkgs penpot-desktop - Remove i3 config - Remove deprecated wsl.nativeSystemd option GUI improvements: - Browser-focused mimeApps in gui/default.nix - Each WM handles its own auto-start via profileExtra Cleanup: - Update README with new structure - Update justfile paths and valid systems - Fix submodule paths in .gitmodules
35 lines
932 B
Nix
35 lines
932 B
Nix
let
|
|
mkModules = dir: isRoot:
|
|
let
|
|
entries = builtins.readDir dir;
|
|
names = builtins.attrNames entries;
|
|
|
|
isModuleDir = path:
|
|
builtins.pathExists path &&
|
|
builtins.readFileType path == "directory" &&
|
|
builtins.baseNameOf path != "config" &&
|
|
builtins.baseNameOf path != "plugins" &&
|
|
builtins.baseNameOf path != "home-manager" &&
|
|
builtins.baseNameOf path != "disko";
|
|
isModule = file: file == "default.nix";
|
|
isNix = file: builtins.match ".*\\.nix" file != null && file != "default.nix";
|
|
|
|
in
|
|
builtins.concatMap (name:
|
|
let
|
|
path = "${dir}/${name}";
|
|
in
|
|
if isModuleDir path then
|
|
mkModules path false
|
|
else if isModule name && !isRoot then
|
|
[dir]
|
|
else if isNix name then
|
|
[path]
|
|
else
|
|
[]
|
|
) names;
|
|
|
|
in
|
|
{
|
|
imports = mkModules ./. true;
|
|
}
|