refactor: switch from modules to import arrays

This commit is contained in:
wi11-holdsworth 2025-10-22 01:22:05 +11:00
parent d893750c09
commit 41eaa38d31
75 changed files with 1870 additions and 2541 deletions

View file

@ -1,34 +1,28 @@
{
config,
lib,
# keep-sorted start
pkgs,
util,
# keep-sorted end
...
}:
let
feature = "desktop";
in
{
config = lib.mkIf config.${feature}.enable {
imports = util.toImports ../features [
# keep-sorted start
pipewire.enable = true;
print-and-scan.enable = true;
protonmail-bridge.enable = true;
"pipewire"
"print-and-scan"
"protonmail-bridge"
# keep-sorted end
];
environment.systemPackages = with pkgs; [
# keep-sorted start
beeper
calibre
cameractrls-gtk3
# https://github.com/NixOS/nixpkgs/issues/437865
# jellyfin-media-player
onlyoffice-desktopeditors
textsnatcher
# keep-sorted end
];
};
imports = [ ];
options.${feature}.enable = lib.mkEnableOption "enables ${feature}";
environment.systemPackages = with pkgs; [
# keep-sorted start
beeper
calibre
cameractrls-gtk3
# https://github.com/NixOS/nixpkgs/issues/437865
# jellyfin-media-player
onlyoffice-desktopeditors
textsnatcher
# keep-sorted end
];
}

View file

@ -1,26 +1,18 @@
{
config,
lib,
pkgs,
...
}:
let
feature = "dev";
in
{
config = lib.mkIf config.${feature}.enable {
environment.systemPackages = with pkgs; [
# keep-sorted start
bacon
cargo-info
devenv
just
mask
rusty-man
vscode
# keep-sorted end
];
};
environment.systemPackages = with pkgs; [
# keep-sorted start
bacon
cargo-info
devenv
just
mask
rusty-man
vscode
# keep-sorted end
];
options.${feature}.enable = lib.mkEnableOption "enables ${feature}";
}

View file

@ -1,39 +1,31 @@
{
config,
lib,
util,
...
}:
let
feature = "server";
in
{
config = lib.mkIf config.${feature}.enable {
imports = util.toImports ../features [
# keep-sorted start
copyparty.enable = true;
couchdb.enable = true;
flaresolverr.enable = true;
homepage-dashboard.enable = true;
immich.enable = true;
jellyfin.enable = true;
lidarr.enable = true;
miniflux.enable = true;
nginx.enable = true;
ntfy-sh.enable = true;
paperless.enable = true;
prowlarr.enable = true;
qbittorrent.enable = true;
radarr.enable = true;
sonarr.enable = true;
syncthing.enable = true;
vaultwarden.enable = true;
"copyparty"
"couchdb"
"flaresolverr"
"homepage-dashboard"
"immich"
"jellyfin"
"lidarr"
"miniflux"
"nginx"
"ntfy-sh"
"paperless"
"prowlarr"
"qbittorrent"
"radarr"
"sonarr"
"syncthing"
"vaultwarden"
# keep-sorted end
];
users.groups.media = { };
users.groups.media = { };
services.borgmatic.settings.source_directories = [ "/srv" ];
};
imports = [ ];
options.${feature}.enable = lib.mkEnableOption "enables ${feature}";
services.borgmatic.settings.source_directories = [ "/srv" ];
}