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,4 +1,8 @@
{ lib, config, ... }:
{ {
options.my.nano.enable = lib.mkEnableOption "nano editor config";
config = lib.mkIf config.my.nano.enable {
home = { home = {
sessionVariables.EDITOR = "nano"; sessionVariables.EDITOR = "nano";
file.".nanorc".text = '' file.".nanorc".text = ''
@ -6,4 +10,5 @@
set mouse 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,4 +1,8 @@
{ lib, config, ... }:
{ {
options.my.templates.enable = lib.mkEnableOption "file templates";
config = lib.mkIf config.my.templates.enable {
home.file = { home.file = {
"Templates/Empty file".text = ""; "Templates/Empty file".text = "";
"Templates/Empty bash script".text = '' "Templates/Empty bash script".text = ''
@ -9,4 +13,5 @@
set -x set -x
''; '';
}; };
};
} }

View file

@ -1,4 +1,8 @@
{ lib, config, ... }:
{ {
options.my.zsh.enable = lib.mkEnableOption "zsh with basic settings";
config = lib.mkIf config.my.zsh.enable {
programs = { programs = {
command-not-found.enable = true; command-not-found.enable = true;
dircolors.enable = true; dircolors.enable = true;
@ -10,4 +14,5 @@
enableVteIntegration = 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";