From 3483e26bced105025d802ec1aba036dc20413501 Mon Sep 17 00:00:00 2001 From: John Ogle Date: Sat, 6 Dec 2025 19:22:37 -0800 Subject: [PATCH] Add 3D printing home role with orca-slicer and openscad Create a new home-manager role for 3D printing applications including orca-slicer for slicing and openscad-unstable for 3D modeling. Enable the role in the desktop configuration for full-featured experience. --- home/home-desktop.nix | 1 + home/roles/3d-printing/default.nix | 22 ++++++++++++++++++++++ home/roles/default.nix | 1 + 3 files changed, 24 insertions(+) create mode 100644 home/roles/3d-printing/default.nix 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