diff --git a/home/home-desktop.nix b/home/home-desktop.nix index 51cc312..a5426b0 100644 --- a/home/home-desktop.nix +++ b/home/home-desktop.nix @@ -8,6 +8,7 @@ # Enable all desktop roles for full-featured experience home.roles = { + "3d-printing".enable = true; base.enable = true; desktop.enable = true; office.enable = true; diff --git a/home/roles/3d-printing/default.nix b/home/roles/3d-printing/default.nix new file mode 100644 index 0000000..abb28df --- /dev/null +++ b/home/roles/3d-printing/default.nix @@ -0,0 +1,22 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.home.roles."3d-printing"; +in +{ + options.home.roles."3d-printing" = { + enable = mkEnableOption "Enable 3D printing applications and tools"; + }; + + config = mkIf cfg.enable { + home.packages = with pkgs; [ + # 3D Slicing Software + orca-slicer # G-code generator for 3D printers (Bambu, Prusa, Voron, etc.) + + # 3D Modeling Software + openscad-unstable # 3D parametric model compiler (nightly build) + ]; + }; +} diff --git a/home/roles/default.nix b/home/roles/default.nix index f50fc91..925dfca 100644 --- a/home/roles/default.nix +++ b/home/roles/default.nix @@ -3,6 +3,7 @@ # Platform-specific roles are imported via base-linux or base-darwin # in each home configuration file imports = [ + ./3d-printing ./base ./communication ./desktop