问题

问题

问题

我使用的是默认的 Ubuntu 22.04 桌面。我经常需要在桌面上移动窗口,我想使用脚本来实现这一点。

wmctrl

这看起来像是过去的一个解决方案,它仍然可以用于某些应用程序(例如:Signal 桌面),但例如它无法识别终端窗口(不再识别?)。

dbus

我读过一些帖子,人们过去常常dbus进行一些自动化。我觉得这可能是解决方案。我只是很难找到信息,甚至不知道这是否可能。

使用时d-feet,我在系统和会话总线中看到很多东西。我甚至设法获取了一些信息(org.gnome.Terminal 有很多方法)。但现在我已经遇到了第一个阻碍:他们期望什么样的参数?

/org/gnome/Terminal/window/1

Activate (String action_name, Array of [Variant] parameter, Dict of {String, Variant} platform_data) ↦ ()

如果我想激活一个窗口,除了窗口 ID 之外还能需要什么?

其他应用

Signal 提供了一些方法,但它们都是关于通知的。Thunderbird 和 pycharm 没有提供任何功能。

概括

我认为如果我想管理窗口(移动、最大化、最小化、激活),我应该与桌面服务对话?而不是应用程序本身?我如何找到有关该做什么的更多信息?是否有关于这些方法需要哪些参数的文档?如果您只有指向其他文档的指针,我完全没问题,因为这似乎是一个新领域,人们手头没有一个可以解决所有问题的超级命令。

答案1

要从命令行操作 Gnome Shell 中的窗口,您可以安装扩展窗口呼叫由 domandoman 开发。它公开了一个 dbus 接口,可以返回窗口列表、移动、调整大小、关闭窗口等。扩展窗口呼叫扩展hseliger 对此进行了扩展,因为它允许获取有关焦点窗口的信息。

相关内容