refactor: use 'import-as-enable' pattern

This commit is contained in:
2026-03-11 16:40:11 +01:00
parent ed39959b61
commit 890146bc9d
15 changed files with 65 additions and 170 deletions

View File

@@ -1,18 +1,7 @@
{ pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
{
options.go = {
enable = lib.mkEnableOption "go language";
};
config = lib.mkIf config.go.enable {
home.packages = with pkgs; [
go
gopls
];
};
home.packages = with pkgs; [
go
gopls
];
}

View File

@@ -1,21 +1,6 @@
{ pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let
cfg = config.nfc.proxmark3;
in
{
options.nfc.proxmark3 = {
enable = lib.mkEnableOption "proxmark3 (iceman fork)";
};
config = lib.mkIf cfg.enable {
home.packages = [
(pkgs.proxmark3.override { withGeneric = true; })
];
};
home.packages = [
(pkgs.proxmark3.override { withGeneric = true; })
];
}

View File

@@ -6,15 +6,12 @@
}:
{
options.nodejs = {
enable = lib.mkEnableOption "nodejs (and related packages)";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.nodejs_24;
};
options.nodejs.package = lib.mkOption {
type = lib.types.package;
default = pkgs.nodejs_24;
};
config = lib.mkIf config.nodejs.enable {
config = {
home.packages = with pkgs; [
config.nodejs.package
pnpm

View File

@@ -1,19 +1,8 @@
{ pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
{
options.pandoc = {
enable = lib.mkEnableOption "pandoc";
};
config = lib.mkIf config.pandoc.enable {
home.packages = with pkgs; [
haskellPackages.pandoc-crossref
pandoc
texliveSmall
];
};
home.packages = with pkgs; [
haskellPackages.pandoc-crossref
pandoc
texliveSmall
];
}

View File

@@ -1,20 +1,13 @@
{
config,
lib,
pkgs,
...
}:
{
options.secrets = {
enable = lib.mkEnableOption "secrets";
};
imports = [ ./vault.nix ];
config = lib.mkIf config.secrets.enable {
home.packages = with pkgs; [
sops
age
];
};
home.packages = with pkgs; [
sops
age
];
}

View File

@@ -9,38 +9,32 @@ let
inherit (config.home) username;
in
{
options.shell.bash = {
enable = lib.mkEnableOption "bash configuration";
imports = [ ./utils.nix ];
options.shell.bash = {
aliases = {
all = lib.mkOption {
type = lib.types.bool;
default = true;
description = "Enable common aliases";
};
lang-js = lib.mkOption {
type = lib.types.bool;
default = false;
description = "Enable JavaScript/Node.js aliases";
};
};
addBinToPath = lib.mkOption {
type = lib.types.bool;
default = true;
description = "Add dots .bin directory to PATH";
};
extraInit = lib.mkOption {
type = lib.types.lines;
default = "";
description = "Additional bash initialization";
};
};
config = lib.mkIf cfg.enable {
shell-utils.enable = lib.mkDefault true;
config = {
programs.bash = {
enable = true;
enableCompletion = true;

View File

@@ -1,16 +1,3 @@
{
config,
lib,
...
}:
{
options.starship = {
enable = lib.mkEnableOption "starship prompt";
};
config = lib.mkIf config.starship.enable {
programs.starship = {
enable = true;
};
};
programs.starship.enable = true;
}

View File

@@ -1,26 +1,19 @@
{
config,
lib,
pkgs,
...
}:
{
options.shell-utils = {
enable = lib.mkEnableOption "shell utilities";
programs.fzf = {
enable = true;
enableBashIntegration = lib.mkDefault true;
};
config = lib.mkIf config.shell-utils.enable {
programs.fzf = {
enable = true;
enableBashIntegration = lib.mkDefault true;
};
home.packages = with pkgs; [
ripgrep
bat
jq
entr
parallel
];
};
home.packages = with pkgs; [
ripgrep
bat
jq
entr
parallel
];
}