guix_mirror_bot pushed a commit to branch next-master
in repository guix.

commit a20e839424ee91e21cdc0dc273423c2c417db30d
Author: Aleksandr Lebedev <[email protected]>
AuthorDate: Sat Nov 15 23:20:38 2025 +0100

    gnu: Add dank-material-shell.
    
    * gnu/packages/wm.scm (dankmaterialshell-minimal, dank-material-shell):
    New variables.
    
    Change-Id: I4b69151c9cf471fab3355a2a10b39d3729fcdb9b
    Modified-by: Sharlatan Hellseher <[email protected]>
    Signed-off-by: Sharlatan Hellseher <[email protected]>
---
 gnu/packages/wm.scm | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 88 insertions(+)

diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 19e21d492c..9905b9a31d 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -84,6 +84,7 @@
 ;;; Copyright © 2025 Andrew Wong <[email protected]>
 ;;; Copyright © 2025 Hugo Buddelmeijer <[email protected]>
 ;;; Copyright © 2025 Artyom V. Poptsov <[email protected]>
+;;; Copyright © 2025 Aleksandr Lebedev <[email protected]>
 ;;; Copyright © 2026 Carlos Durán Domínguez <[email protected]>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -112,6 +113,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system copy)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system go)
   #:use-module (guix build-system haskell)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system perl)
@@ -120,6 +122,7 @@
   #:use-module (guix build-system trivial)
   #:use-module (guix utils)
   #:use-module (gnu packages)
+  #:use-module (gnu packages audio)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages autotools)
@@ -145,6 +148,10 @@
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages golang-build)
+  #:use-module (gnu packages golang-check)
+  #:use-module (gnu packages golang-vcs)
+  #:use-module (gnu packages golang-xyz)
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
@@ -165,6 +172,7 @@
   #:use-module (gnu packages lua)
   #:use-module (gnu packages man)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages monitoring)
   #:use-module (gnu packages mpd)
   #:use-module (gnu packages pciutils)
   #:use-module (gnu packages music)
@@ -256,6 +264,86 @@ the leaves of a full binary tree.")
 single, maximized application.")
     (license license:expat)))
 
+(define-public dank-material-shell-minimal
+  (package
+    (name "dank-material-shell-minimal")
+    (version "0.5.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/AvengeMedia/DankMaterialShell";)
+              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "186n0pcibjk9va967vnwnq8gfb5p3zah96sv4gkgsp0k6931vs1w"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/AvengeMedia/DankMaterialShell/core/cmd/dms"
+      #:unpack-path "github.com/AvengeMedia/DankMaterialShell"
+      #:test-subdirs #~(list "../../...")
+      #:test-flags
+      ;; Network access is required to pass these tests:
+      #~(list "-skip" (string-join
+                       (list "TestHandleList"
+                             "TestDetectNetworkStack_Integration"
+                             "TestHandle"
+                             "TestRespondError_Loginctl"
+                             "TestUpdate"
+                             "TestGetCacheDir")
+                       "|"))
+      #:install-source? #f
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'install 'install-config
+            (lambda _
+              (let* ((src (string-append #$source "/quickshell"))
+                     (tgt (string-append #$output "/share/quickshell")))
+                (mkdir-p tgt)
+                (copy-recursively src tgt)))))))
+    (native-inputs
+     (list go-github-com-charmbracelet-bubbles
+          go-github-com-charmbracelet-bubbletea
+          go-github-com-charmbracelet-lipgloss
+          go-github-com-charmbracelet-log
+          go-github-com-godbus-dbus-v5
+          go-github-com-spf13-cobra
+          go-github-com-stretchr-testify
+          go-github-com-wifx-gonetworkmanager-v2
+          go-github-com-yaslama-go-wayland-wayland
+          go-golang-org-x-exp
+           go-github-com-go-git-go-git-v6
+           go-github-com-spf13-afero))
+    (propagated-inputs
+     (list quickshell
+           qtwayland))
+    (home-page "https://github.com/AvengeMedia/DankMaterialShell";)
+    (synopsis "Desktop shell for wayland compositors")
+    (description
+     "This package provides a DankMaterialShell,a Quickshell-based modern
+desktop suite for Wayland compositors (such as Niri, Hyprland, MangoWC and
+Sway).  This program is meant to be used in system/home modules.  To launch it
+manually, use the @code{dms} CLI program, followed by @code{-c} and path to
+the @code{.../share/quickshell} path in the package.")
+    (license license:expat)))
+
+(define-public dank-material-shell
+  (package
+    (inherit dank-material-shell-minimal)
+    (name "dank-material-shell")
+    (propagated-inputs
+     (modify-inputs (package-propagated-inputs dank-material-shell-minimal)
+       (append dbus
+               brightnessctl
+               cava
+               cliphist
+               dgop
+               `(,glib "bin")
+               matugen
+               qtmultimedia
+               wl-clipboard)))))
+
 (define-public herbstluftwm
   (package
     (name "herbstluftwm")

Reply via email to