Subject: [PATCH] Add indicator-sound-switcher

From: Sebastian Willenbrink <[email-masked]>
Date: Sat, 5 Oct 2024 20:50:08 +0200

This commit adds indicator-sound-switcher.
Unfortunately, I couldn't figure out how to export the icons so
that the program (/GTK?) finds them so it shows only a default gray icon.
Besides that it works fine.

Change-Id: I75e5dde35abe0a95af7c11ab2abfbc368ec9dff7
---
 gnu/packages/wm.scm | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 38cb8cc717..836b770c02 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -112,6 +112,7 @@ (define-module (gnu packages wm)
   #:use-module (gnu packages)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
@@ -3957,3 +3958,43 @@ (define-public wf-config
 configuration files of Wayifre.  It can set key and mouse bindings,
 configure input, and customize Wayfire plugins.")
     (license license:expat)))
+
+(define-public indicator-sound-switcher
+  (package
+    (name "indicator-sound-switcher")
+    (version "2.3.10.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/yktoo/indicator-sound-switcher")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0y52k56ww2327r7ywwdvld5lx85qmcy8yrpaxc5lim7w3jbf3s85"))))
+    (build-system python-build-system)
+    (native-inputs (list gettext-minimal gobject-introspection))
+    (inputs (list python-pygobject girara python-pulsectl pulseaudio))
+    (propagated-inputs (list libappindicator keybinder))
+    (arguments
+     (list
+      #:phases #~(modify-phases %standard-phases
+                   (add-before 'install 'patch-xdg-autostart
+                     (lambda* (#:key inputs outputs #:allow-other-keys)
+                       (let* ((pulseaudio (assoc-ref inputs "pulseaudio"))
+                              (pulse (string-append pulseaudio
+                                                    "/lib/libpulse.so.0")))
+                         (substitute* "setup.py"
+                           (("/etc/xdg/autostart")
+                            '"share/etc/xdg/autostart"))
+                         (substitute* "lib/indicator_sound_switcher/lib_pulseaudio.py"
+                           (("libpulse.so.0")
+                            pulse))))))))
+    (home-page "https://github.com/yktoo/indicator-sound-switcher")
+    (synopsis "Sound input/output selector indicator for Linux")
+    (description
+     "It shows an icon in the indicator area or the system tray
+(whatever is available in your desktop environment).
+The icon's menu allows you to switch the current sound input and output
+(i.e. source ports and sink ports in PulseAudio's terms, respectively) with just two clicks:")
+    (license license:gpl3)))

base-commit: 713f5562faf1acc02dc9e3f3a2d45dc39abbe9f1
-- 
2.46.0