diff --git a/modules/blender/README.md b/modules/blender/README.md new file mode 100644 index 00000000..1abcbfae --- /dev/null +++ b/modules/blender/README.md @@ -0,0 +1,4 @@ +> [!IMPORTANT] +> The Blender target will have no effect unless the Blender theme is properly +> [enabled](https://docs.blender.org/manual/en/latest/editors/preferences/themes.html) +> within Blender itself. diff --git a/modules/blender/Stylix.xml.mustache b/modules/blender/Stylix.xml.mustache new file mode 100644 index 00000000..c44b33ea --- /dev/null +++ b/modules/blender/Stylix.xml.mustache @@ -0,0 +1,1532 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/blender/hm.nix b/modules/blender/hm.nix new file mode 100644 index 00000000..4e08ff7f --- /dev/null +++ b/modules/blender/hm.nix @@ -0,0 +1,46 @@ +{ + config, + lib, + ... +}: +{ + options.stylix.targets.blender.enable = + config.lib.stylix.mkEnableTarget "blender" true; + + config = + lib.mkIf (config.stylix.enable && config.stylix.targets.blender.enable) + { + xdg.configFile = + let + theme = builtins.readFile ( + config.lib.stylix.colors { + template = ./Stylix.xml.mustache; + extension = ".xml"; + } + ); + in + builtins.listToAttrs ( + map + ( + version: + lib.nameValuePair + "blender/${version}/scripts/presets/interface_theme/Stylix.xml" + { + text = + builtins.replaceStrings + [ "%POPUPSFONTSIZE%" "%DESKTOPFONTSIZE%" ] + [ + (toString config.stylix.fonts.sizes.popups) + (toString config.stylix.fonts.sizes.desktop) + ] + theme; + } + ) + [ + "4.2" + "4.3" + "4.4" + ] + ); + }; +} diff --git a/modules/blender/meta.nix b/modules/blender/meta.nix new file mode 100644 index 00000000..2854a141 --- /dev/null +++ b/modules/blender/meta.nix @@ -0,0 +1,6 @@ +{ lib, ... }: +{ + maintainers = [ lib.maintainers.make-42 ]; + name = "Blender"; + homepage = "https://www.blender.org/"; +} diff --git a/modules/blender/testbeds/blender.nix b/modules/blender/testbeds/blender.nix new file mode 100644 index 00000000..0b335abf --- /dev/null +++ b/modules/blender/testbeds/blender.nix @@ -0,0 +1,12 @@ +{ pkgs, ... }: +let + package = pkgs.blender; +in +{ + stylix.testbed.ui.application = { + name = "blender"; + inherit package; + }; + + environment.systemPackages = [ package ]; +}