[PATCH] WPrefs: set the PID of the application to the window

3 views
Skip to first unread message

david.m...@gmail.com

unread,
Mar 23, 2026, 4:34:04 PM (14 days ago) Mar 23
to Window Maker Development
This patch is setting the _NET_WM_PID atom for WPrefs
to report its PID.

Before the patch, the PID reported is unset (0)
$ wmctrl -lp|grep 'Window Maker Preferences'
0x00a000b0  0 0      Linux Window Maker Preferences

After the patch, the PID is set (20110 in the example below)
0x00a000b0  0 20110  Linux Window Maker Preference
---
 WPrefs.app/WPrefs.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/WPrefs.app/WPrefs.c b/WPrefs.app/WPrefs.c
index cbffa5af..a34b9e84 100644
--- a/WPrefs.app/WPrefs.c
+++ b/WPrefs.app/WPrefs.c
@@ -23,6 +23,7 @@
 
 #include "WPrefs.h"
 #include <assert.h>
+#include <X11/Xatom.h>
 
 #ifdef HAVE_STDNORETURN
 #include <stdnoreturn.h>
@@ -516,6 +517,9 @@ void Initialize(WMScreen * scr)
  char **list;
  int i;
  char *path;
+ long pid;
+ Atom net_wm_pid;
+ Display *dpy = WMScreenDisplay(scr);
 
  list = RSupportedFileFormats();
  for (i = 0; list[i] != NULL; i++) {
@@ -547,6 +551,11 @@ void Initialize(WMScreen * scr)
 
  WMRealizeWidget(WPrefs.win);
 
+ net_wm_pid = XInternAtom(dpy, "_NET_WM_PID", False);
+ pid = (long)getpid();
+ XChangeProperty(dpy, WMWidgetXID(WPrefs.win), net_wm_pid, XA_CARDINAL,
+                 32, PropModeReplace, (unsigned char *)&pid, 1);
+
  WMSetWindowMiniwindowImage(WPrefs.win, WMGetApplicationIconImage(scr));
 
  WMMapWidget(WPrefs.win);
--
2.43.0
0001-WPrefs-set-the-PID-of-the-application-to-the-window.patch
Reply all
Reply to author
Forward
0 new messages