Subject: [bug#77913] [PATCH] gnu: Add scad-dbus.

From: nomike <[email-masked]>
Date: Sat, 19 Apr 2025 06:14:02 +0200

* gnu/packages/engineering.scm (scad-dbus): New variable

Change-Id: I6bcc33ef1780f427dc6b612acd25d968ea487258
---
 gnu/packages/engineering.scm | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index f37b0e3844..a6a1bb61b2 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -42,6 +42,7 @@
 ;;; Copyright © 2024 Juliana Sims <[email-masked]>
 ;;; Copyright © 2024 Nguyễn Gia Phong <[email-masked]>
 ;;; Copyright © 2025 Frederick Muriuki Muriithi <[email-masked]>
+;;; Copyright © 2025 nomike Postmann <nomikenomike.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -98,6 +99,8 @@ (define-module (gnu packages engineering)
   #:use-module (gnu packages digest)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages emacs)
+  #:use-module (gnu packages emacs-xyz)
   #:use-module (gnu packages file)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fontutils)
@@ -3269,6 +3272,37 @@ (define-public emacs-scad-mode
 OpenSCAD code.  It supports syntax highlighting, indenting and refilling of
 comments.")))
 
+(define-public scad-dbus
+  (package
+    (name "scad-dbus")
+    (version "0.1")
+    (properties '((release-tag-prefix . "^v")
+                  (release-tag-version-delimiter . ".")))
+    (license license:gpl3+)
+    (native-inputs (list emacs))
+    (inputs (list emacs-scad-mode emacs-hydra))
+    (build-system emacs-build-system)
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/lenbok/scad-dbus")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1r9qiiyr4m04yh38zlmrk7r23s7w9rsiy0nkq0x8x2ci7fsy2qyf"))))
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  )))
+    (synopsis "Control OpenSCAD from Emacs using D-Bus")
+    (description
+     "@code{OpenSCAD} has the ability to use D-Bus (an Linux IPC
+mechanism) as an input driver, which allows manipulation of the viewport and
+execution of menu commands.  Since Emacs also speaks D-Bus, we can execute most
+of the OpenSCAD GUI adjustments without having to switch windows or reach for
+our mouse.")
+    (home-page "https://github.com/lenbok/scad-dbus")))
+
 (define-public ondsel-solver
   (let ((commit "2e3659c4bce3e6885269e0cb3d640261b2a91108")
         (revision "1"))
-- 
2.49.0