Programming for linux: xprop setting multiple fields of atom property on newest questions tagged linux – Stack Overflow

I searched internet and found examples with setting only one field of property:

xprop -id "$windowid" -f _NET_WM_STATE 32a -set _NET_WM_STATE _NET_WM_STATE_ABOVE

but how can I set multiple fields?
I tried:

xprop -id "$windowid" -f _NET_WM_STATE 32a -set _NET_WM_STATE '_NET_WM_STATE_ABOVE, _NET_WM_STATE_SKIP_TASKBAR'

and

xprop -id "$windowid" -f _NET_WM_STATE 32aa -set _NET_WM_STATE _NET_WM_STATE_ABOVE,_NET_WM_STATE_SKIP_TASKBAR

and many other variants with no luck.
Is it possible ? :)


Ok….

I wrote patch for xprop to fix this. It works, but don’t know is it really correct.
Thanks to @MichałGórny.
(xprop.c,v 1.6)

--- xprop.c 2012-07-31 11:24:01.178117974 +0400
+++ xprop.mod   2012-07-31 11:23:19.434784430 +0400
@@ -1487,11 +1487,20 @@
    break;
       }
       case 'a': {
-   static Atom avalue;
-   avalue = Parse_Atom(value, False);
-   type = XA_ATOM;
-   data = (unsigned char *) &avalue;
-   nelements = 1;
+   static unsigned long data32[MAXELEMENTS];
+    char * value2 = strdup(value);
+    char * tmp = strtok(value2,",");
+    nelements = 0;
+    while( NULL != tmp ){
+      data32[nelements] = Parse_Atom(tmp, False);
+      nelements +=1;
+      if(nelements >= MAXELEMENTS)
+        break;
+      tmp = strtok(NULL,",");
+    }
+    type = XA_ATOM;
+    data = (unsigned char *) data32;
+    free(value2);
    break;
       }
       case 'm':

See Answers


source: http://stackoverflow.com/questions/11700728/xprop-setting-multiple-fields-of-atom-property
Programming for linux: programming-for-linux



online applications demo