From 890146bc9dfa30bd9256a43672ce7d6d5859110b Mon Sep 17 00:00:00 2001 From: Hektor Misplon Date: Wed, 11 Mar 2026 16:40:11 +0100 Subject: [PATCH] refactor: use 'import-as-enable' pattern --- home/hosts/andromache/default.nix | 7 +---- home/hosts/astyanax/default.nix | 8 +---- home/hosts/work/default.nix | 9 +----- home/modules/go/default.nix | 21 ++++--------- home/modules/nfc/proxmark3.nix | 23 +++------------ home/modules/nodejs.nix | 11 +++---- home/modules/pandoc/default.nix | 23 ++++----------- home/modules/secrets/default.nix | 15 +++------- home/modules/shell/bash.nix | 12 ++------ home/modules/shell/prompt.nix | 15 +--------- home/modules/shell/utils.nix | 27 +++++++---------- hosts/eetion/default.nix | 1 + hosts/hecuba/default.nix | 3 -- modules/syncthing/default.nix | 11 +++---- modules/uptime-kuma/default.nix | 49 +++++++++++++------------------ 15 files changed, 65 insertions(+), 170 deletions(-) diff --git a/home/hosts/andromache/default.nix b/home/hosts/andromache/default.nix index a6d0243..cca15cd 100644 --- a/home/hosts/andromache/default.nix +++ b/home/hosts/andromache/default.nix @@ -47,12 +47,7 @@ in cloud.hetzner.enable = true; comms.signal.enable = true; github.enable = true; - pandoc.enable = true; - - shell.bash = { - enable = true; - aliases.lang-js = true; - }; + shell.bash.aliases.lang-js = true; programs = { home-manager.enable = true; diff --git a/home/hosts/astyanax/default.nix b/home/hosts/astyanax/default.nix index 4a61558..69f7324 100644 --- a/home/hosts/astyanax/default.nix +++ b/home/hosts/astyanax/default.nix @@ -45,13 +45,7 @@ in cloud.hetzner.enable = true; comms.signal.enable = true; github.enable = true; - nfc.proxmark3.enable = true; - pandoc.enable = true; - - shell.bash = { - enable = true; - aliases.lang-js = true; - }; + shell.bash.aliases.lang-js = true; programs = { home-manager.enable = true; diff --git a/home/hosts/work/default.nix b/home/hosts/work/default.nix index 896231a..e4b3c50 100644 --- a/home/hosts/work/default.nix +++ b/home/hosts/work/default.nix @@ -106,14 +106,7 @@ in database.postgresql.enable = true; github.enable = true; gitlab.enable = true; - pandoc.enable = true; - secrets = { - enable = true; - vault.enable = true; - }; - - shell.bash.enable = true; - starship.enable = true; + secrets.vault.enable = true; programs = { gh.enable = true; diff --git a/home/modules/go/default.nix b/home/modules/go/default.nix index 582bfbf..486a105 100644 --- a/home/modules/go/default.nix +++ b/home/modules/go/default.nix @@ -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 + ]; } diff --git a/home/modules/nfc/proxmark3.nix b/home/modules/nfc/proxmark3.nix index 69405ab..6f4c3e9 100644 --- a/home/modules/nfc/proxmark3.nix +++ b/home/modules/nfc/proxmark3.nix @@ -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; }) + ]; } diff --git a/home/modules/nodejs.nix b/home/modules/nodejs.nix index b9cfb19..3c9a870 100644 --- a/home/modules/nodejs.nix +++ b/home/modules/nodejs.nix @@ -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 diff --git a/home/modules/pandoc/default.nix b/home/modules/pandoc/default.nix index 02806e8..e6fa50d 100644 --- a/home/modules/pandoc/default.nix +++ b/home/modules/pandoc/default.nix @@ -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 + ]; } diff --git a/home/modules/secrets/default.nix b/home/modules/secrets/default.nix index 6840ff4..1175d68 100644 --- a/home/modules/secrets/default.nix +++ b/home/modules/secrets/default.nix @@ -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 + ]; } diff --git a/home/modules/shell/bash.nix b/home/modules/shell/bash.nix index dccd7f7..266f428 100644 --- a/home/modules/shell/bash.nix +++ b/home/modules/shell/bash.nix @@ -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; diff --git a/home/modules/shell/prompt.nix b/home/modules/shell/prompt.nix index 5f6f650..796f0ea 100644 --- a/home/modules/shell/prompt.nix +++ b/home/modules/shell/prompt.nix @@ -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; } diff --git a/home/modules/shell/utils.nix b/home/modules/shell/utils.nix index 68cee31..475ce78 100644 --- a/home/modules/shell/utils.nix +++ b/home/modules/shell/utils.nix @@ -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 + ]; } diff --git a/hosts/eetion/default.nix b/hosts/eetion/default.nix index f8c0963..3091498 100644 --- a/hosts/eetion/default.nix +++ b/hosts/eetion/default.nix @@ -11,6 +11,7 @@ in imports = [ ./hard.nix ../../modules/ssh + # ../../modules/uptime-kuma ]; ssh = { diff --git a/hosts/hecuba/default.nix b/hosts/hecuba/default.nix index acb642f..08b9fdb 100644 --- a/hosts/hecuba/default.nix +++ b/hosts/hecuba/default.nix @@ -17,7 +17,6 @@ in ./hard.nix ../../modules/ssh ../../modules/docker - ../../modules/uptime-kuma ]; networking.hostName = hostName; @@ -32,8 +31,6 @@ in docker.user = username; - my.uptime-kuma.enable = false; - fileSystems."/" = { device = "/dev/disk/by-label/nixos"; fsType = "ext4"; diff --git a/modules/syncthing/default.nix b/modules/syncthing/default.nix index 890cbc5..f4d2aca 100644 --- a/modules/syncthing/default.nix +++ b/modules/syncthing/default.nix @@ -10,15 +10,12 @@ let cfg = config.my.syncthing; in { - options.my.syncthing = { - enable = mkEnableOption "Syncthing file synchronization"; - username = mkOption { - type = types.str; - default = "h"; - }; + options.my.syncthing.username = mkOption { + type = types.str; + default = "h"; }; - config = mkIf cfg.enable { + config = { users.groups.${cfg.username} = { }; users.users.${cfg.username}.extraGroups = [ cfg.username ]; diff --git a/modules/uptime-kuma/default.nix b/modules/uptime-kuma/default.nix index 9330018..fa78cf1 100644 --- a/modules/uptime-kuma/default.nix +++ b/modules/uptime-kuma/default.nix @@ -1,39 +1,30 @@ { - config, - lib, pkgs, ... }: -let - cfg = config.my.uptime-kuma; -in { - options.my.uptime-kuma.enable = lib.mkEnableOption "Uptime Kuma monitoring service (Docker container)"; - - config = lib.mkIf cfg.enable { - virtualisation.oci-containers = { - backend = "docker"; - containers.uptime-kuma = { - image = "louislam/uptime-kuma:latest"; - ports = [ "127.0.0.1:3001:3001" ]; - volumes = [ "/var/lib/uptime-kuma:/app/data" ]; - environment = { - TZ = "UTC"; - UMASK = "0022"; - }; - extraOptions = [ - "--network=proxiable" - ]; + virtualisation.oci-containers = { + backend = "docker"; + containers.uptime-kuma = { + image = "louislam/uptime-kuma:latest"; + ports = [ "127.0.0.1:3001:3001" ]; + volumes = [ "/var/lib/uptime-kuma:/app/data" ]; + environment = { + TZ = "UTC"; + UMASK = "0022"; }; + extraOptions = [ + "--network=proxiable" + ]; }; - - systemd.tmpfiles.settings."uptime-kuma" = { - "/var/lib/uptime-kuma".d = { - mode = "0755"; - }; - }; - - environment.systemPackages = with pkgs; [ docker-compose ]; }; + + systemd.tmpfiles.settings."uptime-kuma" = { + "/var/lib/uptime-kuma".d = { + mode = "0755"; + }; + }; + + environment.systemPackages = with pkgs; [ docker-compose ]; }