Gnome shell:自动化窗口和放置

Gnome shell:自动化窗口和放置

首先,如果这不是最好的问题,我很抱歉。我尝试研究堆栈中最好的部分以进行关注,但我仍然不能 100% 确定我已经掌握了它。

因此,我将解释我所追求的结果:

在 Ubuntu 20.04(GNOME Shell 3.36.9 / Xorg)上,我有一个每天早上设置的窗口配置(用于我们公司的站立):一个 Firefox 窗口贴靠在右栏并打开一个 URL,另一个窗口贴靠在左栏并打开另一个 URL。

我知道如何在浏览器中打开 URL,但我想要自动化的事情有点不同:

  1. 打开新的浏览器窗口中新的工作区(最好位于工作区的顶部)
  2. 将窗口对齐到右侧
  3. 打开另一个新的同一工作区中的浏览器窗口,左侧对齐
  4. 让两个浏览器窗口都打开我想要的 URL
  5. 在我使用的 Firefox 容器中打开它们可以获得加分,但我知道这是 Firefox 的问题,而不是 Gnome 的问题。

理想情况下,我可以使用 bash 或 python 编写脚本。

我的问题是:这种事情真的可能吗?我应该查看哪些 API 或工具,或者是否有项目已经在做这种事情?这似乎很有用,因为每个人都必须有一组他们想要保存的通用窗口设置。

我对 Gnome 生态系统缺乏了解,因此很难进行搜索。

答案1

您可以使用wmctrl和来操作窗口xdotool,此外,诸如devilspie和 之类的守护进程devilspie2允许您为特定窗口定义规则。当创建符合您的条件的窗口时,这些工具可以自动操作它们,即调整它们的大小和位置,并将它们移动到不同的工作区。您可能需要登录Xorg 服务器(Ubuntu 21.04 之前的默认设置)。它们在 Wayland 下可能无法工作,或者至少会受到限制。

wmctrl 和 xdotool

如果您只需要在登录时设置配置,则可以使用wmctrlxdotool。使用wmctrl,您可以移动到不同的工作区,然后让脚本启动应用程序。xdotool然后可能最适合“搜索”窗口并调整其大小和位置。它具有一个--sync选项,可使命令等待,直到窗口有效创建。

devilspie 或 devilspie2

devilspie2是 的后继者devilspie,它在配置文件中使用不同的语法 (Lua)。使用这些工具,您可以定义规则,说明符合某些条件的窗口应该发生什么。一旦创建了这样的窗口,devilspie就会根据说明对其进行操作,即调整其大小和位置,将其移动到不同的工作区,...

因此,您可以为要在启动期间放置的特定 Firefox 窗口定义规则。当窗口由自动启动程序或您在启动时运行的脚本创建时,devilspie将在创建时自动对其进行操作。

相关内容