Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commitbc663d5426b9f7c1065773553237688d550d19aa (patch)
Author
 Syndamia <kamen@syndamia.com>
2025-06-18 13:55:04 +0300
Committer
 Syndamia <kamen@syndamia.com>
2025-06-18 13:55:04 +0300
Filesbb5c2398bb28e448ebc7df0da110310a95af12d0
nix-bc663d5426b9f7c1065773553237688d550d19aa.tar
nix-bc663d5426b9f7c1065773553237688d550d19aa.tar.gz
nix-bc663d5426b9f7c1065773553237688d550d19aa.zip
Parenta79732d4fe0f66eb66f34b8d7f9af9483fa6e91e (diff)
fix(pkgs/tint2): Apply no panel replace patch
2 files changed, 52 insertions, 0 deletions
-rw-r--r--overlays/tint2/default.nix13
-rw-r--r--overlays/tint2/no-panel-replace.patch39
diff --git a/overlays/tint2/default.nix b/overlays/tint2/default.nix
new file mode 100644
index 0000000..c7f02ea
--- /dev/null
+++ b/overlays/tint2/default.nix
@@ -0,0 +1,13 @@
+final: prev: let
+ tint2_override = prevAttrs: {
+ patches = [
+ ./no-panel-replace.patch
+ ];
+ };
+
+in {
+ nixpkgs-2305 = prev.nixpkgs-2305 // {
+ tint2 = prev.nixpkgs-2305.tint2.overrideAttrs tint2_override;
+ };
+ tint2 = prev.tint2.overrideAttrs tint2_override;
+}
diff --git a/overlays/tint2/no-panel-replace.patch b/overlays/tint2/no-panel-replace.patch
new file mode 100644
index 0000000..f247824
--- /dev/null
+++ b/overlays/tint2/no-panel-replace.patch
@@ -0,0 +1,39 @@
+From 257faa2170e0ce9d59e20a22c0ebf853f2e9e9bc Mon Sep 17 00:00:00 2001
+From: Syndamia <kamen@syndamia.com>
+Date: Wed, 18 Jun 2025 13:29:29 +0300
+Subject: [PATCH] fix: Do not replace panels on all windows
+
+This allows you to move (with wmctrl for example) a non-autohide panel
+to another workspace (virtual desktop) for good.
+
+Before, this loop would make it global (shown on all desktops)
+immediately after moving.
+
+As mentioned, this check didn't move the panel when it is set to
+autohide. I'm not certain why.
+---
+ src/main.c | 8 --------
+ 1 file changed, 8 deletions(-)
+
+diff --git a/src/main.c b/src/main.c
+index 1d4ceb4..5ecfd64 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -87,14 +87,6 @@ void handle_event_property_notify(XEvent *e)
+
+ if (xsettings_client)
+ xsettings_client_process_event(xsettings_client, e);
+- for (int i = 0; i < num_panels; i++) {
+- Panel *p = &panels[i];
+- if (win == p->main_win) {
+- if (at == server.atom._NET_WM_DESKTOP && get_window_desktop(p->main_win) != ALL_DESKTOPS)
+- replace_panel_all_desktops(p);
+- return;
+- }
+- }
+ if (win == server.root_win) {
+ if (!server.got_root_win) {
+ XSelectInput(server.display, server.root_win, PropertyChangeMask | StructureNotifyMask);
+--
+2.47.2
+