Package: tint2
Version: 17.0.1-1.2
Severity: wishlist
Tags: patch

Dear Maintainer,

Attached is a patch to add hide_iconified_tasks which behaves like
hide_inactive_tasks but for iconified windows. I use fvwm and its
IconBox to handle iconified windows and having them in the taskbar is
kinda redundant for me.


-- System Information:
Debian Release: trixie/sid
  APT prefers stable-security
  APT policy: (999, 'stable-security'), (990, 'testing'), (970, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 6.12.25-00001-g74c2bc538b29 (SMP w/8 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages tint2 depends on:
ii  libc6                     2.41-7
ii  libcairo2                 1.18.4-1+b1
ii  libgdk-pixbuf-2.0-0       2.42.12+dfsg-2
ii  libglib2.0-0t64           2.84.1-2
ii  libgtk-3-0t64             3.24.49-3
ii  libimlib2t64              1.12.4-2
ii  libpango-1.0-0            1.56.3-1
ii  libpangocairo-1.0-0       1.56.3-1
ii  librsvg2-2                2.60.0+dfsg-1
ii  libstartup-notification0  0.12-8
ii  libx11-6                  2:1.8.12-1
ii  libxcomposite1            1:0.4.6-1
ii  libxdamage1               1:1.1.6-1+b2
ii  libxext6                  2:1.3.4-1+b3
ii  libxinerama1              2:1.1.4-3+b4
ii  libxrandr2                2:1.5.4-1+b3
ii  libxrender1               1:0.9.12-1

tint2 recommends no packages.

tint2 suggests no packages.

-- no debconf information
diff -ruN tint2-v17.0.1.orig/src/config.c tint2-v17.0.1/src/config.c
--- tint2-v17.0.1.orig/src/config.c     2021-05-29 02:24:56.000000000 -0700
+++ tint2-v17.0.1/src/config.c  2025-05-10 20:59:21.193057543 -0700
@@ -1008,6 +1008,8 @@
             taskbarname_active_font.alpha = 0.5;
     } else if (strcmp(key, "taskbar_hide_inactive_tasks") == 0) {
         hide_inactive_tasks = atoi(value);
+    } else if (strcmp(key, "taskbar_hide_iconified_tasks") == 0) {
+        hide_iconified_tasks = atoi(value);
     } else if (strcmp(key, "taskbar_hide_different_monitor") == 0) {
         hide_task_diff_monitor = atoi(value);
     } else if (strcmp(key, "taskbar_hide_different_desktop") == 0) {
diff -ruN tint2-v17.0.1.orig/src/taskbar/taskbar.c 
tint2-v17.0.1/src/taskbar/taskbar.c
--- tint2-v17.0.1.orig/src/taskbar/taskbar.c    2021-05-29 02:24:56.000000000 
-0700
+++ tint2-v17.0.1/src/taskbar/taskbar.c 2025-05-10 21:00:05.506294467 -0700
@@ -42,6 +42,7 @@
 gboolean taskbar_distribute_size;
 gboolean hide_task_diff_desktop;
 gboolean hide_inactive_tasks;
+gboolean hide_iconified_tasks;
 gboolean hide_task_diff_monitor;
 gboolean hide_taskbar_if_empty;
 gboolean always_show_all_desktop_tasks;
@@ -85,6 +86,7 @@
     taskbar_distribute_size = FALSE;
     hide_task_diff_desktop = FALSE;
     hide_inactive_tasks = FALSE;
+    hide_iconified_tasks = FALSE;
     hide_task_diff_monitor = FALSE;
     hide_taskbar_if_empty = FALSE;
     always_show_all_desktop_tasks = FALSE;
diff -ruN tint2-v17.0.1.orig/src/taskbar/taskbar.h 
tint2-v17.0.1/src/taskbar/taskbar.h
--- tint2-v17.0.1.orig/src/taskbar/taskbar.h    2021-05-29 02:24:56.000000000 
-0700
+++ tint2-v17.0.1/src/taskbar/taskbar.h 2025-05-10 21:02:44.569965784 -0700
@@ -58,6 +58,7 @@
 extern gboolean taskbar_distribute_size;
 extern gboolean hide_task_diff_desktop;
 extern gboolean hide_inactive_tasks;
+extern gboolean hide_iconified_tasks;
 extern gboolean hide_task_diff_monitor;
 extern gboolean hide_taskbar_if_empty;
 extern gboolean always_show_all_desktop_tasks;
diff -ruN tint2-v17.0.1.orig/src/taskbar/task.c tint2-v17.0.1/src/taskbar/task.c
--- tint2-v17.0.1.orig/src/taskbar/task.c       2021-05-29 02:24:56.000000000 
-0700
+++ tint2-v17.0.1/src/taskbar/task.c    2025-05-10 20:58:09.047927993 -0700
@@ -755,6 +755,11 @@
                         hide = TRUE;
                     }
                 }
+                if (hide_iconified_tasks) {
+                    if (state == TASK_ICONIFIED) {
+                        hide = TRUE;
+                    }
+                }
                 if (hide_task_diff_desktop) {
                     if (taskbar->desktop != server.desktop)
                         hide = TRUE;
diff -ruN tint2-v17.0.1.orig/src/tint2conf/properties.c 
tint2-v17.0.1/src/tint2conf/properties.c
--- tint2-v17.0.1.orig/src/tint2conf/properties.c       2021-05-29 
02:24:56.000000000 -0700
+++ tint2-v17.0.1/src/tint2conf/properties.c    2025-05-10 21:06:57.469903634 
-0700
@@ -46,7 +46,7 @@
 
 // taskbar
 GtkWidget *taskbar_show_desktop, *taskbar_show_name, *taskbar_padding_x, 
*taskbar_padding_y, *taskbar_spacing;
-GtkWidget *taskbar_hide_inactive_tasks, *taskbar_hide_diff_monitor, 
*taskbar_hide_diff_desktop;
+GtkWidget *taskbar_hide_inactive_tasks, *taskbar_hide_iconified_tasks, 
*taskbar_hide_diff_monitor, *taskbar_hide_diff_desktop;
 GtkWidget *taskbar_name_padding_x, *taskbar_name_padding_y, 
*taskbar_name_inactive_color, *taskbar_name_active_color;
 GtkWidget *taskbar_name_font, *taskbar_name_font_set;
 GtkWidget *taskbar_active_background, *taskbar_inactive_background;
@@ -2636,6 +2636,23 @@
                          NULL);
 
     col = 2;
+    row++;
+    label = gtk_label_new(_("Hide iconified tasks"));
+    gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
+    gtk_widget_show(label);
+    gtk_table_attach(GTK_TABLE(table), label, col, col + 1, row, row + 1, 
GTK_FILL, 0, 0, 0);
+    col++;
+
+    taskbar_hide_iconified_tasks = gtk_check_button_new();
+    gtk_widget_show(taskbar_hide_iconified_tasks);
+    gtk_table_attach(GTK_TABLE(table), taskbar_hide_iconified_tasks, col, col 
+ 1, row, row + 1, GTK_FILL, 0, 0, 0);
+    col++;
+    gtk_tooltips_set_tip(tooltips,
+                         taskbar_hide_iconified_tasks,
+                         _("If enabled, hide iconified tasks from the 
taskbar."),
+                         NULL);
+
+    col = 2;
     row++;
     label = gtk_label_new(_("Hide tasks from different monitors"));
     gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
diff -ruN tint2-v17.0.1.orig/src/tint2conf/properties.h 
tint2-v17.0.1/src/tint2conf/properties.h
--- tint2-v17.0.1.orig/src/tint2conf/properties.h       2021-05-29 
02:24:56.000000000 -0700
+++ tint2-v17.0.1/src/tint2conf/properties.h    2025-05-10 21:03:26.155311227 
-0700
@@ -50,7 +50,7 @@
 
 // taskbar
 extern GtkWidget *taskbar_show_desktop, *taskbar_show_name, 
*taskbar_padding_x, *taskbar_padding_y, *taskbar_spacing;
-extern GtkWidget *taskbar_hide_inactive_tasks, *taskbar_hide_diff_monitor, 
*taskbar_hide_diff_desktop;
+extern GtkWidget *taskbar_hide_inactive_tasks, *taskbar_hide_iconified_tasks, 
*taskbar_hide_diff_monitor, *taskbar_hide_diff_desktop;
 extern GtkWidget *taskbar_name_padding_x, *taskbar_name_padding_y, 
*taskbar_name_inactive_color,
     *taskbar_name_active_color;
 extern GtkWidget *taskbar_name_font, *taskbar_name_font_set;

Reply via email to