From c8cfa37bb9e3dbd3bc0e2c004db909aca512b5a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?m=C3=BCde?= Date: Sun, 3 May 2026 15:19:06 +0200 Subject: [PATCH] hm modules: gate behind enable options, always import --- homeConfigurations/muede/default.nix | 9 +++++++++ homeConfigurations/ronja/default.nix | 8 ++++++++ homeModules/gnome-extensions.nix | 2 +- homeModules/nano.nix | 17 +++++++++++------ homeModules/tailscale.nix | 12 ++++++++++-- homeModules/templates.nix | 23 ++++++++++++++--------- homeModules/zsh-basics.nix | 21 +++++++++++++-------- nixosConfigurations.nix | 11 +---------- 8 files changed, 67 insertions(+), 36 deletions(-) diff --git a/homeConfigurations/muede/default.nix b/homeConfigurations/muede/default.nix index 87db634..17c66a0 100644 --- a/homeConfigurations/muede/default.nix +++ b/homeConfigurations/muede/default.nix @@ -23,6 +23,15 @@ ]; config = { + my = { + # keep-sorted start + gnome-extensions.enable = true; + nano.enable = true; + templates.enable = true; + zsh.enable = true; + # keep-sorted end + }; + programs = { home-manager.enable = true; fzf.enable = true; diff --git a/homeConfigurations/ronja/default.nix b/homeConfigurations/ronja/default.nix index 0f202cd..4d5c5ee 100644 --- a/homeConfigurations/ronja/default.nix +++ b/homeConfigurations/ronja/default.nix @@ -2,6 +2,14 @@ { imports = [ ./vscode.nix ]; config = { + my = { + # keep-sorted start + nano.enable = true; + templates.enable = true; + zsh.enable = true; + # keep-sorted end + }; + home.packages = with pkgs; [ ## Apps telegram-desktop diff --git a/homeModules/gnome-extensions.nix b/homeModules/gnome-extensions.nix index 071fa15..20b3a70 100644 --- a/homeModules/gnome-extensions.nix +++ b/homeModules/gnome-extensions.nix @@ -18,7 +18,7 @@ }; in { - enable = mkDefaultEnabledOption "gnome extended options"; + enable = lib.mkEnableOption "gnome extended options"; appindicator.enable = mkDefaultEnabledOption "appindicator"; caffeine.enable = mkDefaultEnabledOption "caffeine"; tailscale-qs.enable = lib.mkOption { diff --git a/homeModules/nano.nix b/homeModules/nano.nix index ab3e7b2..2293b99 100644 --- a/homeModules/nano.nix +++ b/homeModules/nano.nix @@ -1,9 +1,14 @@ +{ lib, config, ... }: { - home = { - sessionVariables.EDITOR = "nano"; - file.".nanorc".text = '' - set linenumbers - set mouse - ''; + options.my.nano.enable = lib.mkEnableOption "nano editor config"; + + config = lib.mkIf config.my.nano.enable { + home = { + sessionVariables.EDITOR = "nano"; + file.".nanorc".text = '' + set linenumbers + set mouse + ''; + }; }; } diff --git a/homeModules/tailscale.nix b/homeModules/tailscale.nix index 34d1c3d..5f51fc9 100644 --- a/homeModules/tailscale.nix +++ b/homeModules/tailscale.nix @@ -1,4 +1,12 @@ -{ osConfig, thisDevice, ... }: +{ lib, config, osConfig, thisDevice, ... }: { - services.tailscale-systray.enable = (thisDevice.isDesktop or false) && osConfig.my.tailscale.enable; + options.my.tailscale.enable = lib.mkOption { + type = lib.types.bool; + default = (thisDevice.isDesktop or false) && osConfig.my.tailscale.enable; + description = "Whether to enable the Tailscale system tray applet. Defaults to true on desktops with Tailscale enabled."; + }; + + config = lib.mkIf config.my.tailscale.enable { + services.tailscale-systray.enable = true; + }; } diff --git a/homeModules/templates.nix b/homeModules/templates.nix index 71d2e0b..e0a6df2 100644 --- a/homeModules/templates.nix +++ b/homeModules/templates.nix @@ -1,12 +1,17 @@ +{ lib, config, ... }: { - home.file = { - "Templates/Empty file".text = ""; - "Templates/Empty bash script".text = '' - #!/usr/bin/env bash - # abort on error, undefined variables - set -eu - # print commands before execution - set -x - ''; + options.my.templates.enable = lib.mkEnableOption "file templates"; + + config = lib.mkIf config.my.templates.enable { + home.file = { + "Templates/Empty file".text = ""; + "Templates/Empty bash script".text = '' + #!/usr/bin/env bash + # abort on error, undefined variables + set -eu + # print commands before execution + set -x + ''; + }; }; } diff --git a/homeModules/zsh-basics.nix b/homeModules/zsh-basics.nix index 0b0e281..50e116a 100644 --- a/homeModules/zsh-basics.nix +++ b/homeModules/zsh-basics.nix @@ -1,13 +1,18 @@ +{ lib, config, ... }: { - programs = { - command-not-found.enable = true; - dircolors.enable = true; + options.my.zsh.enable = lib.mkEnableOption "zsh with basic settings"; - zsh = { - enable = true; - syntaxHighlighting.enable = true; - autosuggestion.enable = true; - enableVteIntegration = true; + config = lib.mkIf config.my.zsh.enable { + programs = { + command-not-found.enable = true; + dircolors.enable = true; + + zsh = { + enable = true; + syntaxHighlighting.enable = true; + autosuggestion.enable = true; + enableVteIntegration = true; + }; }; }; } diff --git a/nixosConfigurations.nix b/nixosConfigurations.nix index c0d3a80..1c39c23 100644 --- a/nixosConfigurations.nix +++ b/nixosConfigurations.nix @@ -96,16 +96,7 @@ forDevice ( useGlobalPkgs = true; useUserPackages = true; users = home-manager-users; - sharedModules = [ - { home.stateVersion = "22.11"; } - # keep-sorted start - self.homeModules.gnome-extensions - self.homeModules.nano - self.homeModules.tailscale - self.homeModules.templates - self.homeModules.zsh-basics - # keep-sorted end - ]; + sharedModules = [ { home.stateVersion = "22.11"; } ] ++ builtins.attrValues self.homeModules; }; time.timeZone = "Europe/Berlin";