diff options
author | eylles <ed.ylles1997@gmail.com> | 2021-09-11 16:14:34 +0200 |
---|---|---|
committer | Berke Kocaoğlu <berke.kocaoglu@metu.edu.tr> | 2021-09-16 21:55:31 +0200 |
commit | d8ec6f91a9857fb651f39de7929f17543d1c996c (patch) | |
tree | ae53b8c984aa5452d609cd1d4007cba183f66a1c /window.c | |
parent | 46a54c4b2d6181fc9c92facf600bef59e6041ab3 (diff) | |
download | nsxiv-d8ec6f91a9857fb651f39de7929f17543d1c996c.tar.zst |
Set the _NET_WM_PID and WM_CLIENT_MACHINE X properties (#13)
Set the _NET_WM_PID and WM_CLIENT_MACHINE X properties
Co-authored-by: Leon Kowarschick <lkowarschick@gmail.com>
Co-authored-by: Kian Kasad <kian@kasad.com>
Co-authored-by: NRK <nrk@disroot.org>
Diffstat (limited to 'window.c')
-rw-r--r-- | window.c | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -25,6 +25,7 @@ #include <stdlib.h> #include <string.h> #include <locale.h> +#include <unistd.h> #include <X11/cursorfont.h> #include <X11/Xatom.h> #include <X11/Xresource.h> @@ -151,6 +152,7 @@ void win_init(win_t *win) INIT_ATOM_(_NET_WM_ICON_NAME); INIT_ATOM_(_NET_WM_ICON); INIT_ATOM_(_NET_WM_STATE); + INIT_ATOM_(_NET_WM_PID); INIT_ATOM_(_NET_WM_STATE_FULLSCREEN); } @@ -168,6 +170,8 @@ void win_open(win_t *win) int gmask; XSizeHints sizehints; XWMHints hints; + pid_t pid; + char hostname[255]; e = &win->env; parent = options->embed != 0 ? options->embed : RootWindow(e->dpy, e->scr); @@ -215,6 +219,22 @@ void win_open(win_t *win) if (win->xwin == None) error(EXIT_FAILURE, 0, "Error creating X window"); + /* set the _NET_WM_PID */ + pid = getpid(); + XChangeProperty(e->dpy, win->xwin, + atoms[ATOM__NET_WM_PID], XA_CARDINAL, sizeof(pid_t) * 8, + PropModeReplace, (unsigned char *) &pid, 1); + + /* set the _NET_WM_PID */ + if (gethostname(hostname, sizeof(hostname)) == 0) { + XTextProperty tp; + tp.value = (unsigned char *)hostname; + tp.nitems = strnlen(hostname, sizeof(hostname)); + tp.encoding = XA_STRING; + tp.format = 8; + XSetWMClientMachine(e->dpy, win->xwin, &tp); + } + XSelectInput(e->dpy, win->xwin, ButtonReleaseMask | ButtonPressMask | KeyPressMask | PointerMotionMask | StructureNotifyMask); |