{ config, pkgs, lib, ... }: let cfg = config.homeModules.design; in lib.mkIf cfg.enable { home.packages = with pkgs; [ inkscape openscad gimp darktable ]; # Optional desktop entries and MIME associations xdg.mimeApps.defaultApplications = { "image/png" = "org.gimp.GIMP.desktop"; "image/svg+xml" = "org.inkscape.Inkscape.desktop"; "application/x-gimp" = "org.gimp.GIMP.desktop"; "application/x-openraster" = "org.gimp.GIMP.desktop"; "image/x-xcf" = "org.gimp.GIMP.desktop"; "image/x-raw" = "org.darktable.Darktable.desktop"; "application/x-openscad" = "openscad.desktop"; }; xdg.desktopEntries = { gimp = { name = "GIMP"; genericName = "Image Editor"; exec = "gimp %F"; terminal = false; icon = "gimp"; type = "Application"; categories = [ "Graphics" "2DGraphics" "RasterGraphics" ]; }; inkscape = { name = "Inkscape"; genericName = "Vector Graphics Editor"; exec = "inkscape %F"; terminal = false; icon = "inkscape"; type = "Application"; categories = [ "Graphics" "VectorGraphics" ]; }; openscad = { name = "OpenSCAD"; genericName = "3D CAD Modeler"; exec = "openscad %F"; terminal = false; icon = "openscad"; type = "Application"; categories = [ "Graphics" "3DGraphics" "Engineering" ]; }; darktable = { name = "Darktable"; genericName = "Photography Workflow Software"; exec = "darktable %F"; terminal = false; icon = "darktable"; type = "Application"; categories = [ "Graphics" "Photography" "RAW" ]; }; }; # Optional tweaks or plugins setup can go here if needed in the future }