BTW, if you have a public .Xdefaults optimized for Qubes minimal templates (on light or dark theme), I appreciate if you could share it with me. I am too lazy to read all the docs and write my own.
Thank you very much for those. I appreciate them very much.
Very nice
I am working on it. I believe I might have some ideas. The problem is with QubesOS GUI Daemon. This is the current logic used to load the icon data in the xside.c code. There should be another case which is used by xterm and some other programs. If you get the Window ID of the VMs xterm in dom0 by using wmctrl -l and query it via xrop -id <WINDOWID>, you will get the window id within VM by looking at _QUBES_VMWINDOWID key. And then if you query it in the VM by using xprop -id <VMWINDOWID>, you will see that the icon is provided via WM_HINTS.
I have to study the mechanism to add another condition in xside.c and load the bitmap & its mask. Should take some time.
@Euwiiwueir You recently worked on the file and did a contribution. Could you recommend me some resource on X-Window programming mechanism?
I think much of X programming reference material is stranded in published paper form, unfortunately, though I could be wrong. There are API manpages in package libx11-doc (Debian) – somewhat helpful – and some more documentation in xorg-docs – probably less helpful for what you’re looking into. Sometimes a targeted web search about a specific question or function has helped.
Your best bet may be to take the plunge and clone relevant repositories: xorg · GitLab
And then, a further step, set up your editor with LSP on each repo. When you have an LSP working you can jump around the source (which, regrettably, is not a work of art) pretty easily and this is probably better in the long run than reference material. But this means building X, effectively. It’s much easier to build than in the past but it will surely still take some time to get all dependencies in place.
This will get you pretty far:
apt-get build-dep xserver-xorg-core
Then, the xorg build system needs these packages:
meson
cmake
pkg-config
Standard gcc/autotools stuff if the build-dep step didn’t catch them:
gcc
make
autoconf
automake
libtool
In my notes, some more X stuff, but probably these are already captured by the build-dep step: