我希望我的UI改变设计,这取决于屏幕是否是复合的(因此支持某些效果)。是否有可能
解决方案:
为了详细说明Andrey对那些不太熟悉X11 API的人的正确答案,这是用于检测符合EWMH的排序器的代码:
int has_compositor(Display *dpy, int screen) {
char prop_name[20];
snprintf(prop_name, 20, "_NET_WM_CM_S%d", screen);
Atom prop_atom = XInternAtom(dpy, prop_name, False);
return XGetSelectionOwner(dpy, prop_atom) != None;
}发布于 2015-10-18 22:31:15
符合EWMH标准的合成器Sn,其中n是屏幕号。
要跟踪排序器,您需要使用_NET_WM_CM_S0检查选择是否为任何人所拥有(假设您在屏幕0上)。如果没有所有权,则自己获取所有权,并监视SelectionClear事件,以检测何时启动排序器。
https://stackoverflow.com/questions/33195570
复制相似问题