我对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()
返回整数。我收集到监视器由整数引用,该整数传递给MetaScreen
and的各种函数MetaWindow
,因为在Mutter文档中似乎没有针对该对象的对象。
您想要做的大多数相关JavaScript似乎都在layout.js中,它比我能给您的更好地示例了如何在Gnome Shell中使用Mutter。它还包括一个Monitor
类,该类似乎只是监视索引的JS包装器。此类用于LayoutManager
该类(实例的定义Main.layoutManager
)。
关于文档的注意事项
最初,没有“适当的” gnome-shell文档的原因是(内部JavaScript)API相当不稳定。关键是,您没有一个稳定的API,但是您将使用将要使用的相同语言来阅读源代码。在某些方面,这是有意义的,因为您可以修改prototype
活动对象和猴子-一时兴起。
该API已经解决了很多问题,但是还没有人真正加紧编写脚本来自动记录它。我最好的建议是将Mutter,Shell和St文档添加为书签,并使用Github或GitLab的搜索使事情变得更容易。
但是,这里有Gnome API的文档以及一些值得一看的内置模块:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句