问题标签 [gnome-shell-extensions]
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.
javascript - 您的 gnome-shell-extension 如何获取关键焦点?
我有一个 BoxLayout,里面有多个演员。其中一位演员是St.Entry。我希望这个条目具有键盘焦点,所以当创建窗口时,我可以立即开始输入。
我已经找到了“grab_key_focus()”方法,但是如果我在我的条目上调用它,它什么也不做。
我很感谢你能给我的任何帮助,因为这有一个非常稀缺的文档..
javascript - 在 Gnome Shell 面板的背景上绘制
我想在 Gnome Shell 顶部面板的背景上可视化一些数据,在所有其他元素的后面。就像在这个模型中一样:http: //imgur.com/5C9viLd
玩弄其他扩展并阅读 St API 文档 [2],我发现没有明显的方法来做这样的事情。Main.panel 中唯一具有插入功能的元素(例如_insert_child_at_index)是_leftBox 和_rightBox,但这不是我想要的,因为我希望我的可视化位于其他元素之后,而不是在它们旁边。
理想情况下,我想在 Main.panel 内的任何位置(或在它后面,如果可能的话)动态添加/删除和绝对定位元素,而不影响任何现有元素。
javascript - GJS:Gtk.TextView 按键事件不起作用
我正在尝试使用 gjs 为 gnome-shell 创建简单的 gtk 应用程序。
它的窗口仅包含 Gtk.TextView ,我想在用户键入时处理事件。
这是我的代码:
它通常可以工作,但我无法读取 event.keyval:控制台输出为“未定义”:
有人可以告诉我我做错了什么吗?谢谢!
c - 使用 Gnome 库 (GDK) 获取键盘修饰符状态仅获取初始状态
我正在尝试通过 gnome GDK 或 GTK 库获取当前的键盘修饰符状态,以实现显示该状态的可访问性 gnome shell 扩展。
我知道如何使用 xlib 获得他们的状态,但是 gnome gjs 没有完全绑定。
下面的代码仅获取初始状态。它不更新状态。
这是一个示例输出,其中 CAPS 锁定处于活动状态,然后处于非活动状态,但没有变化:
目前使用的是 Kubuntu 15.04。
我的代码有什么问题?
javascript - 如何从 gnome-shell-extension 中启动 GtkApplication?
我的目标是在用户按下 Gnome 顶部栏中的按钮时启动一个新的 GtkApplication。顶部栏中的按钮可以通过 gnome-shell-extension 完成,但我很难打开 GtkApplication。
因此,现在下面的代码应该只是启动 GtkApplication。
将代码放入其中后启用此扩展~/.local/share/gnome-shell/extensions/test@test/extension.js
总是会SIGSEGV
产生gnome-shell
.
debian - 如何在 Gnome Shell 3.16.2 中显示 gnome-shell 扩展的堆栈跟踪?
今天,我从 Debian Jessie(稳定版)升级到了 Stretch(测试版),许多我需要工作的扩展不再被标记为兼容。我很确定这对他们中的大多数人来说没什么大不了的(也许只是manifest.json
为了更新)。
但我的问题是我找不到让js 回溯来识别加载问题的方法。以前,执行gnome-shell --replace
命令时在控制台中有日志,或者只是在~/.xsession-errors
文件中。据我所见,~/.xsession-errors
文件似乎没有从 js 记录任何内容。为了测试,我使用了窥镜并试图记录一些东西。
我查看了Debian changelog,但没有帮助。
日志是否转到另一个文件?不使用 gdb调试 js 的简单方法在哪里?
任何帮助将非常感激 !谢谢
dbus - 如何将字符串发送到 gnome-shell 扩展?
我认为应该使用 D-Bus。基本上,我想要这样的东西——https: //wiki.gnome.org/Gjs/Examples/DBusClient——但反过来。
在扩展中,将有一个功能:
运行后将调用此函数:
… 在终端中,带有s == "abc"
.
根据@Jasper 和@owen at #gnome-shell
on 的建议irc.gnome.org
,我改编了一些来自https://github.com/GNOME/gnome-shell/blob/master/js/ui/magnifierDBus.js的代码:
现在,发出后:
… 什么都没发生。
javascript - 从 gjs 读取异步标准输出
我正在尝试从 gjs 运行命令并异步读取输出。
这是我的同步代码
这很好,但是如果我尝试异步执行它就行不通
根本不调用回调
gtk - Gnome 3.10 与 3.14 中的扩展事件循环
我写了这个可访问性扩展:
- https://extensions.gnome.org/extension/975/keyboard-modifiers-status/
- https://github.com/sneetsher/Keyboard-Modifiers-Status
在 Gnome Shell v3.14 和 v3.16 中可以正常工作,但在 v3.10 中没有。它显示了我重新启动它后唯一的初始键盘修饰符状态,之后再也不更新它。
这里是完整的代码:
尝试调试,我修改了代码以显示(状态标签+计数器)
我可以确认这些:
keymap.connect('state_changed', _update );
永远不会发出这个信号- 超时回调效果很好
- 标签已更新并显示初始状态和递增计数器
所以我认为事件循环有一些东西,因为它不拉状态更新或不处理它的事件。
您能否指出解决此问题的方法以及 v3.10 和 v3.14 之间的区别?
javascript - 带有 gnome 扩展的 ClutterShaderEffect
我的项目的目的是实现一个着色器并将其附加到舞台上。我想要一个使用 JS gnome 扩展系统的全屏变形。(我在 C 中完成并重新编译了 gnome,但我想使用一种不需要任何编译的技术)。
然后,我正在寻找实现并将自定义 ShaderEffect 附加到舞台。我尝试使用以下代码来执行此操作,但整个屏幕冻结:
this._actor = global.stage。这是有效的,但屏幕冻结。所以我阅读了文档并找到了这个文档链接:
实现 ClutterOffscreenEffect 创建 ClutterOffscreenEffect 的子类需要在重写 ClutterEffect 虚函数的情况下链接到 ClutterOffscreenEffect 的实现。在 ClutterEffect 的虚函数之上,ClutterOffscreenEffect 还提供了一个 ClutterOffscreenEffectClass.paint_target() 函数,它封装了包含离屏重定向结果的纹理的有效绘制。
但是我想在 JS 中怎么做呢?
因为我有一些 C 文件在做,但我不知道如何在 JS 中实现它。非官方的 JS 文档没有帮助。
我还用 Clutter.Shader 尝试了其他方法:
但是着色器只应用于孩子,而不是舞台。this._actor = global.stage。这是使用第二种方法的结果的概述。我的着色器正在复制纹理,只是为了测试。但是为什么只在图标上而不是在整个屏幕上,因为我将它附加在舞台上?