dendrify: comfy-station

This commit is contained in:
2026-03-27 17:49:01 +01:00
parent 5ca75f28db
commit 88b3ff784a
205 changed files with 4036 additions and 1227 deletions

View File

@@ -0,0 +1,89 @@
{
config,
lib,
pkgs,
...
}: let
cfg = config.hive.programs.creative;
avidemux-wayland-fix = pkgs.avidemux.overrideAttrs (prev: {
installPhase =
(prev.installPhase or "")
+ ''
wrapProgram $out/bin/avidemux3_qt5 \
--add-flags "--platform" \
--add-flags "xcb"
'';
});
in {
options.hive.programs.creative = {
enable = lib.mkEnableOption "Enable creative programs (video/image editing, etc.)";
image-management = lib.mkOption {
type = lib.types.bool;
default = true;
description = ''
Enable image management tools.
'';
};
image-editing = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Enable image editing tools.
'';
};
image-raw-processing = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Enable raw processing programs.
'';
};
video-editing-light = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Enable light video editing tools.
'';
};
video-editing-heavy = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Enable heavy video editing tools.
'';
};
daws = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Enable DAWs (currently bitwig beta)
'';
};
};
config = lib.mkIf cfg.enable {
environment.systemPackages = with pkgs;
lib.optionals cfg.image-editing [gimp krita drawio]
++ lib.optional cfg.image-management digikam
++ lib.optionals cfg.image-raw-processing [
enblend-enfuse
hdrmerge
hugin
rawtherapee
unstable.darktable
unstable.rapidraw
]
++ lib.optionals cfg.video-editing-light [
avidemux-wayland-fix
ffmpeg
hive.bulk-transcode
losslesscut-bin
]
++ lib.optionals cfg.video-editing-heavy [
davinci-resolve
kdePackages.kdenlive
obs-studio
]
++ lib.optional cfg.daws bitwig-studio-latest;
};
}

View File

@@ -0,0 +1,36 @@
{
config,
lib,
pkgs,
...
}: let
cfg = config.hive.programs.spotify-shortcuts;
in {
options.hive.programs.spotify-shortcuts = {
enable = lib.mkEnableOption "Enable Spotify Shortcuts";
clientIdSopsKey = lib.mkOption {
type = lib.types.singleLineStr;
description = "Spotify API Client ID sops secret name";
};
clientSecretSopsKey = lib.mkOption {
type = lib.types.singleLineStr;
description = "Spotify API Client Secret Path sops secret name";
};
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [pkgs.hive.spotify-shortcuts];
environment.variables = {
SPOTIFY_SHORTCUTS_CONFIG = config.sops.templates."spotify-shortcuts-client.json".path;
};
sops.templates."spotify-shortcuts-client.json" = {
mode = "444";
content = ''
{
"clientId": "${config.sops.placeholder.${cfg.clientIdSopsKey}}",
"clientSecret": "${config.sops.placeholder.${cfg.clientSecretSopsKey}}"
}
'';
};
};
}

View File

@@ -0,0 +1,26 @@
{
config,
lib,
pkgs,
...
}: let
cfg = config.hive.programs.utils;
in {
options.hive.programs.utils = {
enable = lib.mkEnableOption "Enable utilities";
camera = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Camera utilities
'';
};
};
config = lib.mkIf cfg.enable {
environment.systemPackages = lib.optionals cfg.camera [
pkgs.cheese
pkgs.obs-studio
];
};
}