问题标签 [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.

0 投票
1 回答
288 浏览

combobox - 如何在 gjs 中使用 Gtk 组合框?

按照一些PyGTK 教程,我正在尝试在 gjs 中填充一个组合框(Gnome 桌面上的本机 javascript)

到目前为止,我想出了两种几乎都有效的类似方法。

第一个可能最接近教程中的示例:

这里的主要问题是它不显示任何内容,例如组合框是空的。根据教程,“new Gtk.ListStore”需要列类型作为参数,但我放在那里的任何东西都会导致一些错误消息。

将它与其他示例中的代码混合,我想出了这个:

它的优点是它可以准确地显示一些东西,例如组合框充满了可以选择的列表项 - 但它们都是空的。只是白色中的白色块。

有任何想法吗?

0 投票
1 回答
364 浏览

gnome-3 - 以编程方式调用 Gnome Shell 快捷方式

Gnome Shell 有很好的快捷方式,但是,我找不到以编程方式调用它们的方法假设我想使用 GJS 脚本来启动 Google Chrome,将其移动到工作区 1,并将其最大化,然后启动 Emacs,将其移动到工作区 2,并将其最大化。这可以使用 wm.keybindings 来完成:move-to-workspace-1、move-to-workspace-2 和最大化。但是,如何以编程方式调用它们?

我注意到,在 GJS 中,Meta.prefs_get_keybinding_action('move-to-workspace-1')将返回动作 move-to-workspace-1 的名称,但我没有找到任何调用该动作的函数。在https://github.com/GNOME/mutter/blob/master/src/core/keybindings.c中,我找到了一个函数 meta_display_accelerator_activate,但我找不到这个函数的 GJS 绑定。

那么,有没有办法以编程方式调用 gnome shell 快捷方式?

0 投票
2 回答
413 浏览

javascript - 如何使用 C 库在 JavaScript 中创建 GNOME 应用程序

我是 GNOME 桌面应用程序开发的初学者,所以我想尽可能多地了解它。我已经阅读了 developer.gnome.org 上为 JavaScript 编写的各种教程。我知道通过 GObject Introspection 我可以访问 JavaScript 中的 C 库。

由于在桌面应用程序中使用 JavaScript 是新事物,因此存在的文档并不多。我想知道是否有任何方法可以知道可以使用哪些函数和哪些参数来访问某些库。

例如,我可以通过以下方式在 JavaScript 中使用 GTK 创建一个按钮:

我怎样才能知道我可以使用的函数的名称?有什么方法可以让我看到为 C 编写的文档的 JavaScript 函数的名称?

对于一些库,我看到了这个为 JavaScript 编写的文档。任何帮助将不胜感激,以了解有关 GNOME 应用程序开发的更多信息。

0 投票
1 回答
134 浏览

seed - GJs/种子 GtkSourceView

我可以Gtk.TextView使用以下代码 -</p>

但是,我宁愿使用 GtkSourceView,因为它有行号。我怎样才能做到这一点?我找不到有关该主题的太多文档。

谢谢!

0 投票
0 回答
989 浏览

javascript - 使用 Eclipse 作为 GNOME 扩展 IDE

我正在尝试开发自己的 GNOME 扩展。我读过几篇文章:

和官方的。

来自wiki.gnome.org

使用支持 JavaScript 的 IDE 进行开发非常有帮助。它将帮助我们进行代码折叠、自动完成、大纲等。

GNOME 有自己的开发 IDE,称为 Anjuta。问题是 IDE 有一些不足,比如自动完成、代码折叠等,所以对我来说最好使用 Eclipse 开发,直到 Anjuta 拥有这种功能。

因此,我们开始设置 Eclipse 以支持 JavaScript。设置 Eclipse

从您的发行版的应用商店安装 Eclipse。打开 Eclipse 并选择您的工作区。转到“帮助”。“安装新软件”。选择使用“所有可用站点”。搜索 JavaScript。安装。而已!

我设法使用 Eclipse 编写我的第一个扩展,但我想启用代码完成功能。我发现此功能对加快代码编写有很大帮助。

我假设我必须在我的 JavaScript 项目中设置正确的“包含路径”。但我找不到我必须添加的路径。

注意:我在 Fedora 19 上使用 Eclipse Kepler 和 JavaScript 开发工具。

0 投票
1 回答
696 浏览

javascript - Gnome-Shell 扩展,观察 GSettings 的变化?

所以我正在写一个扩展,它有一些偏好。我使用便利.js(如here所述)将首选项存储在GSettings中。相关代码如下所示:

到目前为止效果很好,我也可以使用命令

gsettings 监视器 org.gnome.shell.extensions.workspace-alt-tab 排序模式

确保我真的按照我的意愿设置了值。

但是,当我尝试捕获对这些设置所做的更改以在我的代码中反映它们时,这就是我的问题。从我在其他扩展中看到的内容来看,我猜它应该看起来像这样:

但问题是我只看到从 init 调用的日志行:

Gjs 消息:JS 日志:[_sortModeChanged] 新的 sortMode:最近使用的

另外,我完全不知道如何调试这种东西(即使在 LookGlass 中......)。如果有人可以指出我的愚蠢错误,或者就如何调试这类事情提供一些指示,将不胜感激!

0 投票
1 回答
1019 浏览

javascript - gjs 如何使用 g_data_input_stream_read_line_async 在 Gnome Shell 扩展中读取套接字流

我正在尝试编写一个通过套接字服务器与 Arduino 通信的 Gnome-Shell 扩展。服务器和 Arduino 运行良好,但我被困在监听传入服务器消息的扩展代码上。

由于我需要一种非阻塞方法,因此使用read_line_async似乎很完美。

但是我无法让它工作。这是我到目前为止得到的(相关部分):

_SocketRead当从服务器收到一行时,异步函数启动得很好,并且也被调用,但它无法使用read_line_finish().

我对 gio 和扩展开发完全陌生,所以我可能会错过一些明显的东西。

对我来说,似乎read_line_finish()可能缺少它的GAsyncResult参数,但我不知道如何实现它。

编辑:

回调函数和 read_line_finish() 缺少它们的参数。感谢 Gerd 的回答,我能够让它工作。帮助我找出“描述”下GIO 参考中链接的示例。所以这是用于比较的工作代码:

0 投票
1 回答
30 浏览

gnome - 如何使用 Telepathy-Glib-GJS 设置请求的存在?

根据Telepathy Developer's Manual:“要使帐户在线,请将 RequestedPresence 设置为在线状态[..]”

对于GJS 下的TelepathyGlib.Account,我可以看到 TelepathyGLib.Account.prototype.get_requested_presence 但不是等效的设置器。在 GJS/TelepathyGlib 中在线使用心灵感应帐户的正确方法是什么?

0 投票
0 回答
129 浏览

javascript - 在 Gnome Shell 面板的背景上绘制

我想在 Gnome Shell 顶部面板的背景上可视化一些数据,在所有其他元素的后面。就像在这个模型中一样:http: //imgur.com/5C9viLd

玩弄其他扩展并阅读 St API 文档 [2],我发现没有明显的方法来做这样的事情。Main.panel 中唯一具有插入功能的元素(例如_insert_child_at_index)是_leftBox 和_rightBox,但这不是我想要的,因为我希望我的可视化位于其他元素之后,而不是在它们旁边。

理想情况下,我想在 Main.panel 内的任何位置(或在它后面,如果可能的话)动态添加/删除和绝对定位元素,而不影响任何现有元素。

0 投票
1 回答
385 浏览

javascript - 用于 GNOME Javascript 应用程序开发的 Anjuta 配置

我试图在 Anjuta 中运行 GNOME JavaScript 应用程序教程

但我收到以下错误:

在 Anjuta 中,我对 JavaScript 环境进行了以下设置:

Anjuta JavaScript 环境设置

我正在使用 AntergOS(Arch Linux)。也许GirGjs路径不正确,因为我收到关于以下内容的错误:const: Command not found

上述错误可能是什么问题?

我发现了一个与 Anjuta Java 项目相关的问题:如何在 Anjuta IDE 中导入现有的 Java 项目?