如何在 Mac OS X (Xquartz) 下更改 X11 窗口的透明度?

发布于 2024-09-12 01:00:46 字数 78 浏览 5 评论 0原文

具有名为 _NET_WM_WINDOW_OPACITY 原子的 XChangeProperty() 返回 BadRequest 错误代码...

XChangeProperty() with atom named _NET_WM_WINDOW_OPACITY returns BadRequest error code...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一直在等你来 2024-09-19 01:00:46

_NET_WM_WINDOW_OPACITY 的工作原理是让合成管理器在合成窗口时应用不透明度。您需要运行一个合成管理器来执行此操作。
(也就是说,即使您没有要使用该属性的 CM,您也不应该收到 BadRequest;BadRequest 可能是由于您执行 XChangeProperty 时出现的错误,例如无效的窗口、原子或格式)

另一件事您可以尝试做的就是使用 ARGB 视觉效果创建窗口,然后将 alpha 通道绘制到窗口本身中。如何执行此操作取决于您使用的工具包等。并且只有当您的 X 服务器具有 ARGB 视觉效果时才有可能,我不知道 Mac 是否有。

_NET_WM_WINDOW_OPACITY works by having the compositing manager apply opacity when it composites the window. You would need to be running a compositing manager that does this.
(That said, even if you have no CM that's going to use the property, you should not get BadRequest; the BadRequest is likely due to a bug in how you're doing XChangeProperty, like an invalid window or atom or format)

Another thing you can try to do is just create your window with an ARGB visual and then paint alpha channel into the window itself. How to do this depends on which toolkit you're using, etc. And it's only possible if your X server has an ARGB visual, I don't know if Mac does.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文