问题标签 [gjs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gtk - 如何将菜单项添加到 WebKitContextMenu(javascript、gjs)?
当我尝试使用此代码将菜单项添加到 web 视图时:
应用程序退出并出现错误“分段错误(核心转储)”将菜单项添加到 WebView 的上下文菜单的正确方法是什么?
javascript - 在 JavaScript 中创建动态重新调度 GSource
GLib 的主循环支持为周期性间隔调度回调函数,使用g_timemout_source_new和相关函数。回调将在预定的时间间隔后重复调用,直到它返回false
。
我现在想用动态间隔修改这个过程。回调应该能够返回一个时间值,而不仅仅是true
or ,该时间值应该传递到下一次调用。false
在 C 中这样做非常简单:可以创建一个新的 GSource 类型,它与调度函数中的超时源不同,然后在设置下一个过期时考虑返回值。
不幸的是,我正在为 GNOME Shell 编写扩展程序,所以我坚持使用 JavaScript。将上述策略移植到 JavaScript 的主要关键点似乎等同于g_source_new function
, new GLib.Source
. 首先,它需要初始化结构类型的长度,这将由sizeof
C 中的运算符计算。我不知道如何在 JavaScript 中获取该值。此外,尝试创建GSourceFuncs Struct是错误的,它是此构造函数的第二个参数,它是保存调度函数所必需的。
如何在 JavaScript 中创建新的 GSource?
javascript - 在 GNOME Shell 扩展中包含二进制组件
为 GNOME Shell 开发扩展主要涉及通过 GObject Introspection 使用 C API。这意味着使用 C 语言可以完成的大多数事情也可以在 JavaScript 中完成。但是在某些情况下,C API 的功能(还)不能通过自省绑定来重现。能够使用本机 C 代码弥合这些差距会很有用。
GNOME Shell 扩展可以包含从 C 代码创建的二进制组件吗?如果是这样,它们是如何集成的?
gnome - 如何检查 Gjs 类是否已经定义?
我正在编写首选项视图 GNOME shell 扩展和使用该imports.lang
函数以面向对象的方式编写应用程序时面临的问题。
第一次打开首选项窗口有效,但随后的窗口会引发以下错误:Error: Type name Gjs_MyWindow is already registered
. 第一次关闭窗口时,我收到此错误:TypeError: prefsModule.init is not a function
.
以下更具命令性的代码有效:
根据抛出的错误,我的猜测是该类正在被重新定义。如何避免重新定义并接收定义的类?(有没有我可以参考的文档?)
javascript - GNOME Shell 扩展按钮
我正在尝试仅使用 JavaScript 编写扩展。我是通过 Hello World 用 Python 写的!代码。但是,在开始时,我的菜单项按钮不起作用。此外,我无法使用 Hello World 添加菜单项!代码。我想,我想念一些东西。
按钮代码在这里:
GJS 的教程不多。我已经在尝试通过阅读其他扩展来写作。
谢谢。
javascript - Gnome 扩展 - 运行 shell 命令
我正在编写一个简单的扩展来通过单击扩展按钮打开浏览器。我想知道是否有一个函数可以执行传递的 shell 命令作为参数。此外,如果有人可以为扩展开发提出一个好的简单参考,那将非常有帮助。
httprequest - GJS 同步 GET http 请求
我已经尝试并搜索过,但我没有找到任何关于如何发出同步 GET 请求以获取 JSON 的示例或说明。我发现的唯一一件事是使用 SOUP 进行异步请求的一个简单代码,它确实有效,但它是异步的,所以对我没有用:/ 我认为 SOUP 可用于发出同步请求,但 gjs 文档的工作方式没有不要帮我找出方法。所以我想,肯定有人知道如何做到这一点,他/她只是没有在任何地方发布。所以我问。请问,我该怎么做?
gnome - 如何从 gjs 访问 gnome-contacts 或其数据
根据这个答案(和评论) gnome-contacts 是 Gnome 的联系人集中的地方,它通过心灵感应进行了很好的聚合,但访问该信息的唯一方法似乎是 Gnome Shell 搜索提供程序,它只提供一个头像和一个名字。我一直在努力在 gjs 中复制部分 gnome-contacts,但在绑定方面遇到了很多麻烦。
有没有更简单的方法来实现这一点,或者我是否可以为 gnome-contacts 本身生成 vapi/gir 绑定,以便我可以像库一样使用它?
可能的替代解决方案:
在 GJS 中使用 libfolks 目前被Bug #694115阻止,但对于那些只需要 Google 联系人的人来说,可以通过GData在 GJS 中使用,如果可用的话,您甚至可以使用Gnome 在线帐户作为身份验证源。
gjs - 如何在gjs中获取进程pid?
我真正想做的是 call getpid()
,但在 gjs 中似乎没有任何理智的方法可以做到这一点。我能想到的最好的是:
// There's got to be a better way to get our pid in gjs?
let credentials = new Gio.Credentials();
let pid = credentials.get_unix_pid();
这行得通,但太可怕了。有没有更好的办法?