如何在GNOME中获取活动窗口的监视器?

瓦伦丁·拉杜(Valentin Radu)

我对GNOME扩展开发非常陌生,由于很难提供该API的文档(或者可能是对我的互联网进行了秘密审查),因此我很难使用它。我从修改现有扩展程序开始,以便更轻松地解决它。

问题是,我可以使用获取活动窗口global.display.focus_window,还可以使用连接到计算机的监视器列表Main.layoutManager.monitors现在,我想做的就是找出获得的窗口正坐在哪个显示器上(这样我就可以将顶部面板移到该显示器上,因为这可能意味着我正在该显示器上工作)。我尝试了各种操作,例如.screen,.monitor等,但均未成功。我还没有完成IntelliSense,并且我试图猜测成员的身份,因为我似乎找不到任何文档。

我欣赏GNOME的可定制性比我以前使用的(Unity,它根本不提供任何定制)更具可定制性,但我不知道如何使用它,并且资源稀缺。我尝试研究源代码,但是我不熟悉源代码的组织方式,并且找不到所需的成员(如果存在)的相关代码部分。

我正在编码.js文件,所以我想需要一些JavaScript代码。

非常感谢你。

安迪·霍姆斯

虽然Gnome Shell的大多数用户可见部分都是用JavaScript编写的,但这些通常只是底层C库的绑定。如果您使用的是Windows,Monitors和Screens,那么您将要参考Mutter文档以及Shell文档:

还有就是一个属性global叫做对象screen(如此global.screen),这无疑是一个MetaScreen具有功能get_n_monitors(),还有get_primary_monitor()get_current_monitor()和其他人。MetaWindow另一方面,包含一个称为函数的函数,该函数get_monitor()返回整数。我收集到监视器由整数引用,该整数传递给MetaScreenand的各种函数MetaWindow,因为在Mutter文档中似乎没有针对该对象的对象。

您想要做的大多数相关JavaScript似乎都在layout.js中,它比我能给您的更好地示例了如何在Gnome Shell中使用Mutter。它还包括一个Monitor类,该类似乎只是监视索引的JS包装器。此类用于LayoutManager该类(实例的定义Main.layoutManager)。

关于文档的注意事项

最初,没有“适当的” gnome-shell文档的原因是(内部JavaScript)API相当不稳定。关键是,您没有一个稳定的API,但是您将使用将要使用的相同语言来阅读源代码。在某些方面,这是有意义的,因为您可以修改prototype活动对象和猴子-一时兴起。

该API已经解决了很多问题,但是还没有人真正加紧编写脚本来自动记录它。我最好的建议是将Mutter,Shell和St文档添加为书签,并使用Gi​​thub或GitLab的搜索使事情变得更容易。

但是,这里有Gnome API的文档以及一些值得一看的内置模块:

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用python PyQt5确定我的应用程序(窗口)的活动屏幕(监视器)?

选择在哪个监视器中打开JavaFX窗口

在辅助监视器中打开pygame全屏窗口

如何在Tkinter中为服务器监视器收集信息

如何在超赞的wm中将窗口最大化到多个监视器?

如何获取给定监视器上所有窗口的HWND?

Xcode中的活动监视器显示

在UWP中的辅助监视器上打开新窗口

如何在Firefox的网络监视器中阻止URL

在多监视器设置中,如何识别显示winform的监视器?

如何在项目监视器中更改渲染速度?

如何在python glfw中获取监视器的宽度和高度

Windows7如何从辅助监视器收集窗口

如何在XFCE中定义主监视器?

如何使用键盘快捷键将当前活动窗口从一台监视器移动到另一台监视器?

tmux限制活动监视器窗口大小

如何在Windows 7中获取辅助监视器以显示单独的视频供稿?

如何在双监视器系统的一个监视器中打开所有窗口

如何将活动窗口立即移动到openbox中的辅助监视器?

在多监视器设置中获取打开窗口的显示分辨率

KDE系统监视器与GNOME系统监视器

在双监视器设置中,如何查找给定窗口在哪个监视器上?

如何在工作区预览中同时为Gnome Shell提供两个监视器?

如何使用Gnome3中的键在监视器之间移动鼠标光标?

仅屏幕截图活动监视器(gnome屏幕截图)

如何更新Gnome系统监视器?

增加资源监视器中的时间窗口

在GNOME中的特定监视器上打开应用

如何在任务栏中获取 HDD 运行状态 LED 监视器