gpt4 book ai didi

c - 是否有 SetWindowPos 的 Linux 等价物?

转载 作者:IT王子 更新时间:2023-10-29 01:12:00 26 4
gpt4 key购买 nike

不久前,我用 C 语言编写了一个脚本,该脚本使用 Windows API 函数 EnumWindows、SetWindowPos 和 SetForegroundWindow 以我通常想要的特定布局自动排列窗口(按标题)。

是否有这些功能的 Linux 等价物?我将使用 Kubuntu,因此特定于 KDE 和/或特定于 Ubuntu 的解决方案很好。

最佳答案

最好的方法是在窗口管理器本身(如果你的支持扩展)或设计用于支持“寻呼机”的协议(protocol)和提示(寻呼机=任何非窗口管理器进程进行窗口组织或导航东西)。

EWMH 规范包括一个专为寻呼机使用而设计的 _NET_MOVERESIZE_WINDOW。 http://standards.freedesktop.org/wm-spec/wm-spec-1.3.html#id2731465

Raw Xlib 或 Xcb 非常粗糙,但有一个名为 libwnck 的库专门用于执行您正在谈论的事情。 (我很久以前写了原始库,但它一直由其他人维护。)即使您不使用它,也请阅读代码以了解如何做。我不确定 KDE 是否具有与 KDE 风格的 API 等效的功能。

应该不需要使用任何 KDE 或 GNOME 或特定于发行版的东西,因为所需的东西都在 EWMH 中详细说明了。也就是说,对于某些窗口管理器来说,将其作为扩展来执行可能比编写单独的应用程序更容易。

直接使用旧式 X 调用当然可以工作,但如果你想消除所有错误和极端情况,有很多细节需要处理,需要大量专业知识,在我看来,所以使用 WM 扩展API 或寻呼机库将是我的建议。

关于c - 是否有 SetWindowPos 的 Linux 等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16470118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com