chore(modules): add auto-import default.nix files
This commit is contained in:
@@ -8,31 +8,6 @@
|
||||
{
|
||||
imports = [
|
||||
../../modules
|
||||
../../modules/3d
|
||||
../../modules/ai-tools
|
||||
../../modules/anki
|
||||
../../modules/audio
|
||||
../../modules/browser
|
||||
../../modules/cloud
|
||||
../../modules/comms
|
||||
../../modules/desktop/niri
|
||||
../../modules/devenv
|
||||
../../modules/direnv
|
||||
../../modules/git
|
||||
../../modules/k8s/k9s.nix
|
||||
../../modules/keepassxc
|
||||
../../modules/music
|
||||
../../modules/nvim
|
||||
../../modules/pandoc
|
||||
../../modules/photography
|
||||
../../modules/secrets
|
||||
../../modules/shell
|
||||
../../modules/ssh
|
||||
../../modules/taskwarrior
|
||||
../../modules/terminal
|
||||
../../modules/torrenting
|
||||
../../modules/yubikey
|
||||
../../modules/zk
|
||||
];
|
||||
|
||||
home = {
|
||||
|
||||
@@ -7,29 +7,6 @@
|
||||
{
|
||||
imports = [
|
||||
../../modules
|
||||
../../modules/3d
|
||||
../../modules/ai-tools
|
||||
../../modules/anki
|
||||
../../modules/audio
|
||||
../../modules/browser
|
||||
../../modules/cloud
|
||||
../../modules/comms
|
||||
../../modules/desktop/niri
|
||||
../../modules/devenv
|
||||
../../modules/direnv
|
||||
../../modules/git
|
||||
../../modules/k8s/k9s.nix
|
||||
../../modules/keepassxc
|
||||
../../modules/music
|
||||
../../modules/nfc
|
||||
../../modules/nvim
|
||||
../../modules/pandoc
|
||||
../../modules/secrets
|
||||
../../modules/shell
|
||||
../../modules/ssh
|
||||
../../modules/taskwarrior
|
||||
../../modules/terminal
|
||||
../../modules/yubikey
|
||||
];
|
||||
|
||||
home = {
|
||||
@@ -48,34 +25,33 @@
|
||||
claude-code.enable = true;
|
||||
opencode.enable = true;
|
||||
};
|
||||
desktop.niri.enable = true;
|
||||
anki.enable = true;
|
||||
audio.enable = true;
|
||||
browser.enable = true;
|
||||
browser.primary = "librewolf";
|
||||
cloud.hetzner.enable = true;
|
||||
comms.signal.enable = true;
|
||||
desktop.niri.enable = true;
|
||||
devenv.enable = true;
|
||||
direnv.enable = true;
|
||||
git.enable = true;
|
||||
git.github.enable = true;
|
||||
k8s.k9s.enable = true;
|
||||
keepassxc.enable = true;
|
||||
music.enable = true;
|
||||
my.yubikey.enable = true;
|
||||
nfc.enable = true;
|
||||
nvim.enable = true;
|
||||
pandoc.enable = true;
|
||||
secrets.enable = true;
|
||||
shell = {
|
||||
enable = true;
|
||||
bash.aliases.lang-js = true;
|
||||
bash.addBinToPath = true;
|
||||
};
|
||||
anki.enable = true;
|
||||
k8s.k9s.enable = true;
|
||||
secrets.enable = true;
|
||||
taskwarrior.enable = true;
|
||||
secrets.enable = true;
|
||||
my.yubikey.enable = true;
|
||||
audio.enable = true;
|
||||
ssh.enable = true;
|
||||
music.enable = true;
|
||||
taskwarrior.enable = true;
|
||||
terminal.enable = true;
|
||||
devenv.enable = true;
|
||||
keepassxc.enable = true;
|
||||
direnv.enable = true;
|
||||
nvim.enable = true;
|
||||
nfc.enable = true;
|
||||
pandoc.enable = true;
|
||||
|
||||
programs = {
|
||||
home-manager.enable = true;
|
||||
|
||||
@@ -9,35 +9,6 @@
|
||||
imports = [
|
||||
inputs.sops-nix.homeManagerModules.sops
|
||||
../../modules
|
||||
../../modules/ai-tools
|
||||
../../modules/anki
|
||||
../../modules/browser
|
||||
../../modules/bruno
|
||||
../../modules/cloud
|
||||
../../modules/comms
|
||||
../../modules/database
|
||||
../../modules/dconf
|
||||
../../modules/desktop/niri
|
||||
../../modules/devenv
|
||||
../../modules/direnv
|
||||
../../modules/docker
|
||||
../../modules/git
|
||||
../../modules/go
|
||||
../../modules/infra
|
||||
../../modules/k8s
|
||||
../../modules/k8s/k9s.nix
|
||||
../../modules/keepassxc
|
||||
../../modules/music
|
||||
../../modules/nodejs
|
||||
../../modules/nvim
|
||||
../../modules/pandoc
|
||||
../../modules/secrets
|
||||
../../modules/shell
|
||||
../../modules/stylix
|
||||
../../modules/taskwarrior
|
||||
../../modules/ticketing
|
||||
../../modules/terminal
|
||||
../../modules/vscode
|
||||
];
|
||||
|
||||
sops.age.keyFile = "${config.home.homeDirectory}/.config/sops/age/keys.txt";
|
||||
@@ -63,50 +34,50 @@
|
||||
defaultWrapper = "mesa";
|
||||
};
|
||||
|
||||
desktop.niri.enable = true;
|
||||
browser = {
|
||||
enable = true;
|
||||
primary = "firefox";
|
||||
secondary = "chromium";
|
||||
};
|
||||
devenv.enable = true;
|
||||
music.enable = true;
|
||||
terminal.enable = true;
|
||||
keepassxc.enable = true;
|
||||
direnv.enable = true;
|
||||
nvim.enable = true;
|
||||
my.dconf.enable = true;
|
||||
pandoc.enable = true;
|
||||
cloud.azure.enable = true;
|
||||
comms.signal.enable = true;
|
||||
comms.teams.enable = true;
|
||||
ai-tools = {
|
||||
claude-code.enable = true;
|
||||
tirith.enable = true;
|
||||
opencode.enable = true;
|
||||
};
|
||||
anki.enable = true;
|
||||
browser = {
|
||||
enable = true;
|
||||
primary = "firefox";
|
||||
secondary = "chromium";
|
||||
};
|
||||
bruno.enable = true;
|
||||
cloud.azure.enable = true;
|
||||
comms.signal.enable = true;
|
||||
comms.teams.enable = true;
|
||||
database = {
|
||||
mssql.enable = true;
|
||||
postgresql.enable = true;
|
||||
redis.enable = true;
|
||||
};
|
||||
anki.enable = true;
|
||||
taskwarrior.enable = true;
|
||||
k8s.enable = true;
|
||||
shell.enable = true;
|
||||
my.stylix.enable = true;
|
||||
desktop.niri.enable = true;
|
||||
devenv.enable = true;
|
||||
direnv.enable = true;
|
||||
docker.enable = true;
|
||||
git = {
|
||||
enable = true;
|
||||
github.enable = true;
|
||||
gitlab.enable = true;
|
||||
};
|
||||
go.enable = true;
|
||||
k8s.enable = true;
|
||||
keepassxc.enable = true;
|
||||
music.enable = true;
|
||||
my.dconf.enable = true;
|
||||
my.stylix.enable = true;
|
||||
nvim.enable = true;
|
||||
pandoc.enable = true;
|
||||
shell.enable = true;
|
||||
taskwarrior.enable = true;
|
||||
terminal.enable = true;
|
||||
infra.enable = true;
|
||||
nodejs.enable = true;
|
||||
secrets.enable = true;
|
||||
secrets.vault.enable = true;
|
||||
bruno.enable = true;
|
||||
docker.enable = true;
|
||||
infra.enable = true;
|
||||
go.enable = true;
|
||||
nodejs.enable = true;
|
||||
ticketing.enable = true;
|
||||
vscode.enable = true;
|
||||
|
||||
|
||||
@@ -5,52 +5,40 @@
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
moduleDirs = lib.filterAttrs (_: v: v == "directory") (builtins.readDir ./.);
|
||||
dirHasEnableOption =
|
||||
name:
|
||||
{
|
||||
imports =
|
||||
let
|
||||
nixFiles = lib.filterAttrs (n: v: v == "regular" && lib.hasSuffix ".nix" n) (
|
||||
builtins.readDir ./${name}
|
||||
);
|
||||
dirs = lib.attrNames (lib.filterAttrs (_: v: v == "directory") (builtins.readDir ./.));
|
||||
hasDef = name: builtins.pathExists ./${name}/default.nix;
|
||||
in
|
||||
!(builtins.pathExists ./${name}/default.nix)
|
||||
|| lib.any (f: lib.hasInfix "mkEnableOption" (builtins.readFile ./${name}/${f})) (
|
||||
builtins.attrNames nixFiles
|
||||
);
|
||||
withoutEnableOption = builtins.attrNames (
|
||||
lib.filterAttrs (name: _: !dirHasEnableOption name) moduleDirs
|
||||
);
|
||||
in
|
||||
lib.throwIf (withoutEnableOption != [ ])
|
||||
"home modules missing enable option: ${lib.concatStringsSep ", " withoutEnableOption}"
|
||||
{
|
||||
options = {
|
||||
host.username = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = config.home.username;
|
||||
};
|
||||
map (name: ./${name}) (builtins.filter hasDef dirs);
|
||||
|
||||
nixgl.wrap = lib.mkOption {
|
||||
type = lib.types.functionTo lib.types.package;
|
||||
default = if config.lib ? nixGL then config.lib.nixGL.wrap else lib.id;
|
||||
readOnly = true;
|
||||
};
|
||||
|
||||
wrapApp = lib.mkOption {
|
||||
type = lib.types.raw;
|
||||
default =
|
||||
pkg: flags:
|
||||
if config.lib ? nixGL then
|
||||
pkg.overrideAttrs (old: {
|
||||
nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.makeWrapper ];
|
||||
postInstall = (old.postInstall or "") + ''
|
||||
wrapProgram $out/bin/${pkg.meta.mainProgram} --add-flags "${flags}"
|
||||
'';
|
||||
})
|
||||
else
|
||||
pkg;
|
||||
readOnly = true;
|
||||
};
|
||||
options = {
|
||||
host.username = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = config.home.username;
|
||||
};
|
||||
}
|
||||
|
||||
nixgl.wrap = lib.mkOption {
|
||||
type = lib.types.functionTo lib.types.package;
|
||||
default = if config.lib ? nixGL then config.lib.nixGL.wrap else lib.id;
|
||||
readOnly = true;
|
||||
};
|
||||
|
||||
wrapApp = lib.mkOption {
|
||||
type = lib.types.raw;
|
||||
default =
|
||||
pkg: flags:
|
||||
if config.lib ? nixGL then
|
||||
pkg.overrideAttrs (old: {
|
||||
nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.makeWrapper ];
|
||||
postInstall = (old.postInstall or "") + ''
|
||||
wrapProgram $out/bin/${pkg.meta.mainProgram} --add-flags "${flags}"
|
||||
'';
|
||||
})
|
||||
else
|
||||
pkg;
|
||||
readOnly = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user