重新设置 WM 中的不透明度
Opacity in a reparenting WM
我正在为 X11 编写一个重命名的 window 管理器(并且已经在这里问了很多关于它的问题)。现在,我遇到的问题与其说是一个需要修复的错误,不如说是一个关于如何实现某些东西的问题。
应用程序可以请求透明度,如果像 xcompmgr 或 picom 这样的合成器是 运行,他们会提供它。但是,当我重新设置 window; 时,这似乎不起作用。在这种情况下,客户端 window 的背景只是在后面显示黑色背景(可能是框架 window?但它的背景不是黑色)。我确实通过设置 _NET_FRAME_EXTENTS.
表明我有一个框架
我尝试过的:
- 看起来 awesomewm 的不透明度代码监听 属性 通知和 _NET_WM_OPACITY。尽管在根 window.
上选择了 SubstructureRedirect|SubstructureNotify|PropertyChange,但当我更改 window 的不透明度时,我没有收到任何 PropertyNotify 事件
您需要创建框架 window 并重新设置深度 = 32(即:使用透明度)。由于您已经在查看 AwesomeWM:它在启动时为此找到了正确的视觉效果,然后以这种方式创建其 windows 的 all。这是唯一必要的,因为 Lua 代码可能需要透明度。 AFAIR,其他 WM 查看程序的 window 位深度并基于此创建他们的框架 window。
我正在为 X11 编写一个重命名的 window 管理器(并且已经在这里问了很多关于它的问题)。现在,我遇到的问题与其说是一个需要修复的错误,不如说是一个关于如何实现某些东西的问题。
应用程序可以请求透明度,如果像 xcompmgr 或 picom 这样的合成器是 运行,他们会提供它。但是,当我重新设置 window; 时,这似乎不起作用。在这种情况下,客户端 window 的背景只是在后面显示黑色背景(可能是框架 window?但它的背景不是黑色)。我确实通过设置 _NET_FRAME_EXTENTS.
表明我有一个框架我尝试过的:
- 看起来 awesomewm 的不透明度代码监听 属性 通知和 _NET_WM_OPACITY。尽管在根 window. 上选择了 SubstructureRedirect|SubstructureNotify|PropertyChange,但当我更改 window 的不透明度时,我没有收到任何 PropertyNotify 事件
您需要创建框架 window 并重新设置深度 = 32(即:使用透明度)。由于您已经在查看 AwesomeWM:它在启动时为此找到了正确的视觉效果,然后以这种方式创建其 windows 的 all。这是唯一必要的,因为 Lua 代码可能需要透明度。 AFAIR,其他 WM 查看程序的 window 位深度并基于此创建他们的框架 window。