I have spent quite some time figuring out how to use xprop -set as the man page is not really useful. I had a window with _NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL and wanted to set this property to _NET_WM_WINDOW_TYPE_UTILITY.
[pterjan@plop tmp]$ xprop -set _NET_WM_WINDOW_TYPE _NET_WM_WINDOW_TYPE_UTILITY xprop: error: unsupported conversion for _NET_WM_WINDOW_TYPE
So I thought that maybe it doesn't know how to resolve to atom:
[pterjan@plop tmp]$ xlsatoms |grep _NET_WM_WINDOW_TYPE_UTILITY 407 _NET_WM_WINDOW_TYPE_UTILITY [pterjan@plop tmp]$ xprop -set _NET_WM_WINDOW_TYPE 407xprop: error: unsupported conversion for _NET_WM_WINDOW_TYPE
At this point I started looking on google and could only find people asking and no answer...
Then a friend suggested me xprop -f _NET_WM_WINDOW_TYPE 32a -set _NET_WM_WINDOW_TYPE 407 which sort of worked but the result was _NET_WM_WINDOW_TYPE(ATOM) = 407. So I tried xprop -f _NET_WM_WINDOW_TYPE 32a -set _NET_WM_WINDOW_TYPE _NET_WM_WINDOW_TYPE_UTILITY and it worked!
So, when setting a property, you have to specify its format. I would have loved to read this in the man page.
Seems obvious to me just like any half-decent language forces you to explicitly specify the static type of variables :)
For this specific case, an easy solution is:<br>wnckprop --set-window-type=utility
XChangeProperty is the X11 function for that if you want to write your own tool (fun fun :)