John Kehayias wrote 2 years ago
(name . Guix-patches)(address . guix-patches@gnu.org)
Hi guix-ers,
Here's a quick patch to add snixembed, a little utility to allow fallback older systemtray support for some newer programs that only have StatusNotifierItem support. I've used guix style (though I usually do a little more vertical space over horizontal on origin and had make-flags as one line) and lint, checked the license, built, and successfully used the program.
Thanks!
John
From 9534c8c0cae16252353efaca4a6a4db28927e005 Mon Sep 17 00:00:00 2001
From: John Kehayias <john.kehayias@protonmail.com>
Date: Sat, 22 Oct 2022 00:40:27 -0400
Subject: [PATCH] gnu: Add snixembed.
* gnu/packages/freedesktop.scm (snixembed): New variable.
---
gnu/packages/freedesktop.scm | 45 +++++++++++++++++++++++++++++++++++-
1 file changed, 44 insertions(+), 1 deletion(-)
Toggle diff (65 lines)
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 07ccf9f8f2..7f9b9f932b 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -26,7 +26,7 @@
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2021 Robby Zambito <contact@robbyzambito.me>
;;; Copyright © 2021, 2022 Maxime Devos <maximedevos@telenet.be>
-;;; Copyright © 2021 John Kehayias <john.kehayias@protonmail.com>
+;;; Copyright © 2021, 2022 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2021, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de>
;;; Copyright © 2022 muradm <mail@muradm.net>
@@ -2385,6 +2385,49 @@ (define-public libappindicator
fallback to generic Systray support if none of those are available.")
(license license:lgpl2.1+))))
+(define-public snixembed
+ (package
+ (name "snixembed")
+ (version "0.3.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.sr.ht/~steef/snixembed/")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "14fkgxww4qbsxyqj9h3yqpdqsdz9r6015c9graas50r5b5ggd3bj"))
+ (modules '((guix build utils)))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:tests? #f ;no tests
+ #:make-flags #~(list "CC=gcc"
+ (string-append "PREFIX="
+ #$output))
+ #:phases #~(modify-phases %standard-phases
+ (delete 'configure)))) ;no configure
+ (inputs (list gtk+ libdbusmenu))
+ (native-inputs (list pkg-config vala))
+ (synopsis "Proxy StatusNotifierItems as XEmbedded systemtray-spec icons")
+ (home-page "https://git.sr.ht/~steef/snixembed")
+ (description
+ "Snixembed is a program to proxy StatusNotifierItems as
+XEmbedded systemtray-spec icons. This allows programs that only support the
+newer StatusNotifierItem to have the older XEmbedded systemtray support.
+While snixembed works fine with most setups, some bars and DEs provide their
+own optional SNI support, which should be preferred when available.
+
+Currently supported:
+@itemize
+@item icons (by pixmap and by freedesktop name)
+@item activation on left mouse button
+@item context menu on right mouse button (Menu dbusmenu or ContextMenu)
+@item tooltips (on hover, all markup except hyperlinks)
+@item limited AppIndicator support as a fallback
+@end itemize")
+ (license license:isc)))
+
(define-public libportal
(package
(name "libportal")
--
2.38.0