[PATCH] Add indicator-sound-switcher

  • Open
  • quality assurance status badge
Details
3 participants
  • Nicolas Graves
  • Nicolas Graves
  • Sebastian Willenbrink
Owner
unassigned
Submitted by
Sebastian Willenbrink
Severity
normal
S
S
Sebastian Willenbrink wrote on 5 Oct 20:50 +0200
(address . guix-patches@gnu.org)(name . Sebastian Willenbrink)(address . sebastian.willenbrink@gmail.com)
1266383a76e3fe2cd6e05894e3c04b5b5fdc0242.1728154207.git.sebastian.willenbrink@gmail.com
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(+)

Toggle diff (60 lines)
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
S
S
Sebastian Willenbrink wrote on 6 Oct 22:51 +0200
Small oversight
(address . 73647@debbugs.gnu.org)
4f12902f-250d-4c80-be69-9d951595c716@gmail.com
Actually, the icons work fine after logging in again. So it works
exactly as I would expect it to and can IMHO be merged as it is.
N
N
Nicolas Graves wrote on 20 Oct 09:13 +0200
Re: [bug#73647] [PATCH] Add indicator-sound-switcher
(name . Sebastian Willenbrink)(address . sebastian.willenbrink@gmail.com)
87wmi3456w.fsf@ngraves.fr
Hi!

Below some review comments ;)

On 2024-10-05 20:50, Sebastian Willenbrink wrote:
Toggle quote (26 lines)
> +(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")))

We rather use (search-input-file inputs "/lib/libpulse.so.0") now.
It's also shorter, so you can probably drop the let* and use that
directly in the substitute*

Toggle quote (5 lines)
> + (substitute* "setup.py"
> + (("/etc/xdg/autostart")
> + '"share/etc/xdg/autostart"))
> + (substitute* "lib/indicator_sound_switcher/lib_pulseaudio.py"

This line is probably above 79 characters. Use the next line ;)

Toggle quote (7 lines)
> + (("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

Please use "This package" or its name instead of it.

Toggle quote (4 lines)
> +(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:")

This last line is too long and shouldn't end with :

Toggle quote (4 lines)
> + (license license:gpl3)))
>
> base-commit: 713f5562faf1acc02dc9e3f3a2d45dc39abbe9f1

You should also write a proper git commit message. There are templates
in guix's source etc/snippets folder if you use emacs (either tempel or
yasnippets). Or copy another gnu: Add [pkg] commit.

I don't see other lints but for some reason the build is blocked for
x86-64-linux on QA.

--
Best regards,
Nicolas Graves
N
N
Nicolas Graves wrote on 20 Oct 11:01 +0200
(name . Sebastian Willenbrink)(address . sebastian.willenbrink@gmail.com)
878qujcfln.fsf@ngraves.fr
Toggle quote (6 lines)
> + (arguments
> + (list
> + #:phases #~(modify-phases %standard-phases
> + (add-before 'install 'patch-xdg-autostart
> + (lambda* (#:key inputs outputs #:allow-other-keys)

You also don't need outputs here.

--
Best regards,
Nicolas Graves
S
S
Sebastian Willenbrink wrote on 12 Nov 13:58 +0100
[PATCH] gnu: Add indicator-sound-switcher.
(address . 73647@debbugs.gnu.org)(name . Sebastian Willenbrink)(address . sebastian.willenbrink@gmail.com)
81ee4883a6a714b32146e01c99270d16ae7d44ff.1731415143.git.sebastian.willenbrink@gmail.com
* gnu/packages/wm.scm (indicator-sound-switcher): New variable.

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

Toggle diff (58 lines)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 836d4b6c04..61f8d4a310 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)
@@ -3969,3 +3970,41 @@ (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 #:allow-other-keys)
+ (substitute* "setup.py"
+ (("/etc/xdg/autostart")
+ '"share/etc/xdg/autostart"))
+ (substitute*
+ "lib/indicator_sound_switcher/lib_pulseaudio.py"
+ (("libpulse.so.0")
+ (search-input-file inputs "/lib/libpulse.so.0"))))))))
+ (home-page "https://github.com/yktoo/indicator-sound-switcher")
+ (synopsis "Sound input/output selector indicator for Linux")
+ (description
+ "indicator-sound-switcher 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: 40625c213ad2007f70117518a7cc290d367e652a
--
2.46.0
S
S
Sebastian Willenbrink wrote on 12 Nov 14:05 +0100
Re: [PATCH] Add indicator-sound-switcher
(address . 73647@debbugs.gnu.org)
4a69e161-d581-462f-9d9d-3e7c451a1775@gmail.com
Hi!

Here is the new patch. Took some time for me to get around to it.

I'm still a bit confused by the mail/patch-based workflow so I hope I
didn't mess anything up. I assume amending the commit is the correct way
to go. Or should I have created a separate commit with only the new changes?

Best regards,
Sebastian
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 73647@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 73647
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch