unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Josselin Poiret via Guix-patches via <guix-patches@gnu.org>
To: 73410@debbugs.gnu.org
Cc: Josselin Poiret <dev@jpoiret.xyz>
Subject: [bug#73410] [PATCH] gnu: waybar: Fix missing tray icons on 0.11.0.
Date: Sat, 21 Sep 2024 15:34:46 +0200	[thread overview]
Message-ID: <3b60148e7bdc1558b19255c2d0065bd7416c2afd.1726925552.git.dev@jpoiret.xyz> (raw)

From: Josselin Poiret <dev@jpoiret.xyz>

* gnu/packages/patches/waybar-0.11.0-fix-tray-icons.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/wm.scm (waybar): Use it.

Change-Id: Ib480b815faf3a331e1fc093dee72bb3099df57c5
---
Hi everyone,

This fixes a bug in the newest release that is now fixed on the main branch
upstream: tray icons do not appear!

Best,

gnu/local.mk                                  |  1 +
 .../waybar-0.11.0-fix-tray-icons.patch        | 86 +++++++++++++++++++
 gnu/packages/wm.scm                           |  3 +-
 3 files changed, 89 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/waybar-0.11.0-fix-tray-icons.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 8e7abc8a47..104fcb01d6 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2287,6 +2287,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/wacomtablet-add-missing-includes.patch	\
   %D%/packages/patches/wacomtablet-qt5.15.patch			\
   %D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch	\
+  %D%/packages/patches/waybar-0.11.0-fix-tray-icons.patch	\
   %D%/packages/patches/wcstools-extend-makefiles.patch	\
   %D%/packages/patches/wdl-link-libs-and-fix-jnetlib.patch	\
   %D%/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch	\
diff --git a/gnu/packages/patches/waybar-0.11.0-fix-tray-icons.patch b/gnu/packages/patches/waybar-0.11.0-fix-tray-icons.patch
new file mode 100644
index 0000000000..5c8c98a661
--- /dev/null
+++ b/gnu/packages/patches/waybar-0.11.0-fix-tray-icons.patch
@@ -0,0 +1,86 @@
+Taken from upstream's merged PR #3604 [1].
+
+[1] https://github.com/Alexays/Waybar/pull/3604
+
+From 0006e4713ae19776528038b3242ded05db884ba5 Mon Sep 17 00:00:00 2001
+From: Aleksei Bavshin <alebastr89@gmail.com>
+Date: Sat, 14 Sep 2024 07:37:37 -0700
+Subject: [PATCH 2/2] fix(tray): revert ustring formatting changes
+
+This reverts commit a4d31ab10d1630cb9104c695d7b777ca12468904.
+---
+ src/modules/sni/item.cpp | 23 +++++++++--------------
+ 1 file changed, 9 insertions(+), 14 deletions(-)
+
+diff --git a/src/modules/sni/item.cpp b/src/modules/sni/item.cpp
+index 8afb39fb3..6c4ec8c06 100644
+--- a/src/modules/sni/item.cpp
++++ b/src/modules/sni/item.cpp
+@@ -104,11 +104,9 @@ void Item::proxyReady(Glib::RefPtr<Gio::AsyncResult>& result) {
+     this->updateImage();
+ 
+   } catch (const Glib::Error& err) {
+-    spdlog::error("Failed to create DBus Proxy for {} {}: {}", bus_name, object_path,
+-                  std::string(err.what()));
++    spdlog::error("Failed to create DBus Proxy for {} {}: {}", bus_name, object_path, err.what());
+   } catch (const std::exception& err) {
+-    spdlog::error("Failed to create DBus Proxy for {} {}: {}", bus_name, object_path,
+-                  std::string(err.what()));
++    spdlog::error("Failed to create DBus Proxy for {} {}: {}", bus_name, object_path, err.what());
+   }
+ }
+ 
+@@ -126,15 +124,14 @@ ToolTip get_variant<ToolTip>(const Glib::VariantBase& value) {
+   result.text = get_variant<Glib::ustring>(container.get_child(2));
+   auto description = get_variant<Glib::ustring>(container.get_child(3));
+   if (!description.empty()) {
+-    result.text = fmt::format("<b>{}</b>\n{}", std::string(result.text), std::string(description));
++    result.text = fmt::format("<b>{}</b>\n{}", result.text, description);
+   }
+   return result;
+ }
+ 
+ void Item::setProperty(const Glib::ustring& name, Glib::VariantBase& value) {
+   try {
+-    spdlog::trace("Set tray item property: {}.{} = {}", id.empty() ? bus_name : id,
+-                  std::string(name), get_variant<std::string>(value));
++    spdlog::trace("Set tray item property: {}.{} = {}", id.empty() ? bus_name : id, name, value);
+ 
+     if (name == "Category") {
+       category = get_variant<std::string>(value);
+@@ -179,12 +176,10 @@ void Item::setProperty(const Glib::ustring& name, Glib::VariantBase& value) {
+     }
+   } catch (const Glib::Error& err) {
+     spdlog::warn("Failed to set tray item property: {}.{}, value = {}, err = {}",
+-                 id.empty() ? bus_name : id, std::string(name), get_variant<std::string>(value),
+-                 std::string(err.what()));
++                 id.empty() ? bus_name : id, name, value, err.what());
+   } catch (const std::exception& err) {
+     spdlog::warn("Failed to set tray item property: {}.{}, value = {}, err = {}",
+-                 id.empty() ? bus_name : id, std::string(name), get_variant<std::string>(value),
+-                 std::string(err.what()));
++                 id.empty() ? bus_name : id, name, value, err.what());
+   }
+ }
+ 
+@@ -226,9 +221,9 @@ void Item::processUpdatedProperties(Glib::RefPtr<Gio::AsyncResult>& _result) {
+ 
+     this->updateImage();
+   } catch (const Glib::Error& err) {
+-    spdlog::warn("Failed to update properties: {}", std::string(err.what()));
++    spdlog::warn("Failed to update properties: {}", err.what());
+   } catch (const std::exception& err) {
+-    spdlog::warn("Failed to update properties: {}", std::string(err.what()));
++    spdlog::warn("Failed to update properties: {}", err.what());
+   }
+   update_pending_.clear();
+ }
+@@ -250,7 +245,7 @@ static const std::map<std::string_view, std::set<std::string_view>> signal2props
+ 
+ void Item::onSignal(const Glib::ustring& sender_name, const Glib::ustring& signal_name,
+                     const Glib::VariantContainerBase& arguments) {
+-  spdlog::trace("Tray item '{}' got signal {}", id, std::string(signal_name));
++  spdlog::trace("Tray item '{}' got signal {}", id, signal_name);
+   auto changed = signal2props.find(signal_name.raw());
+   if (changed != signal2props.end()) {
+     if (update_pending_.empty()) {
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 4b9d116bda..2e00e0df41 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -2233,7 +2233,8 @@ (define-public waybar
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1bw6d3bf8rm4mgrbcprxxljfxbyabbj2lwabk2z19r8lhfz38myy"))))
+        (base32 "1bw6d3bf8rm4mgrbcprxxljfxbyabbj2lwabk2z19r8lhfz38myy"))
+       (patches (search-patches "waybar-0.11.0-fix-tray-icons.patch"))))
     (build-system meson-build-system)
     (arguments
      (list #:configure-flags #~(list "--wrap-mode=nodownload")))

base-commit: 9d75215a59629ab224154ef6b843043289291f81
-- 
2.46.0





             reply	other threads:[~2024-09-21 13:36 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-21 13:34 Josselin Poiret via Guix-patches via [this message]
2024-09-27  3:38 ` bug#73410: [PATCH] gnu: waybar: Fix missing tray icons on 0.11.0 John Kehayias via Guix-patches via

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3b60148e7bdc1558b19255c2d0065bd7416c2afd.1726925552.git.dev@jpoiret.xyz \
    --to=guix-patches@gnu.org \
    --cc=73410@debbugs.gnu.org \
    --cc=dev@jpoiret.xyz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).