hm modules: gate behind enable options, always import

This commit is contained in:
müde 2026-05-03 15:19:06 +02:00
parent 6ee82131cd
commit c8cfa37bb9
8 changed files with 67 additions and 36 deletions

View file

@ -23,6 +23,15 @@
]; ];
config = { config = {
my = {
# keep-sorted start
gnome-extensions.enable = true;
nano.enable = true;
templates.enable = true;
zsh.enable = true;
# keep-sorted end
};
programs = { programs = {
home-manager.enable = true; home-manager.enable = true;
fzf.enable = true; fzf.enable = true;

View file

@ -2,6 +2,14 @@
{ {
imports = [ ./vscode.nix ]; imports = [ ./vscode.nix ];
config = { config = {
my = {
# keep-sorted start
nano.enable = true;
templates.enable = true;
zsh.enable = true;
# keep-sorted end
};
home.packages = with pkgs; [ home.packages = with pkgs; [
## Apps ## Apps
telegram-desktop telegram-desktop

View file

@ -18,7 +18,7 @@
}; };
in in
{ {
enable = mkDefaultEnabledOption "gnome extended options"; enable = lib.mkEnableOption "gnome extended options";
appindicator.enable = mkDefaultEnabledOption "appindicator"; appindicator.enable = mkDefaultEnabledOption "appindicator";
caffeine.enable = mkDefaultEnabledOption "caffeine"; caffeine.enable = mkDefaultEnabledOption "caffeine";
tailscale-qs.enable = lib.mkOption { tailscale-qs.enable = lib.mkOption {

View file

@ -1,9 +1,14 @@
{ lib, config, ... }:
{ {
home = { options.my.nano.enable = lib.mkEnableOption "nano editor config";
sessionVariables.EDITOR = "nano";
file.".nanorc".text = '' config = lib.mkIf config.my.nano.enable {
set linenumbers home = {
set mouse sessionVariables.EDITOR = "nano";
''; file.".nanorc".text = ''
set linenumbers
set mouse
'';
};
}; };
} }

View file

@ -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;
};
} }

View file

@ -1,12 +1,17 @@
{ lib, config, ... }:
{ {
home.file = { options.my.templates.enable = lib.mkEnableOption "file templates";
"Templates/Empty file".text = "";
"Templates/Empty bash script".text = '' config = lib.mkIf config.my.templates.enable {
#!/usr/bin/env bash home.file = {
# abort on error, undefined variables "Templates/Empty file".text = "";
set -eu "Templates/Empty bash script".text = ''
# print commands before execution #!/usr/bin/env bash
set -x # abort on error, undefined variables
''; set -eu
# print commands before execution
set -x
'';
};
}; };
} }

View file

@ -1,13 +1,18 @@
{ lib, config, ... }:
{ {
programs = { options.my.zsh.enable = lib.mkEnableOption "zsh with basic settings";
command-not-found.enable = true;
dircolors.enable = true;
zsh = { config = lib.mkIf config.my.zsh.enable {
enable = true; programs = {
syntaxHighlighting.enable = true; command-not-found.enable = true;
autosuggestion.enable = true; dircolors.enable = true;
enableVteIntegration = true;
zsh = {
enable = true;
syntaxHighlighting.enable = true;
autosuggestion.enable = true;
enableVteIntegration = true;
};
}; };
}; };
} }

View file

@ -96,16 +96,7 @@ forDevice (
useGlobalPkgs = true; useGlobalPkgs = true;
useUserPackages = true; useUserPackages = true;
users = home-manager-users; users = home-manager-users;
sharedModules = [ sharedModules = [ { home.stateVersion = "22.11"; } ] ++ builtins.attrValues self.homeModules;
{ 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
];
}; };
time.timeZone = "Europe/Berlin"; time.timeZone = "Europe/Berlin";