如何从终端运行 gnome javascript 扩展 (gjs)

cie*_*cie 4 shell gnome gnome-shell

我为 gnome shell 创建了一个扩展,并希望能够使用键盘快捷键(类似于 ctrl+space)启动它。我没有找到好的文档或教程来帮助我首先创建扩展,而且我发现的那些没有提到键盘快捷键。我能想到的最简单的解决方法是编写一个运行扩展的 bash 脚本,然后将该脚本映射到一个快捷键。当我使用gjs extension.js我得到这个:

(gjs:2929): Gjs-WARNING **: JS ERROR: Error: Requiring St, version none: Typelib file for namespace 'St' (any version) not found
@extension.js:5

JS_EvaluateScript() failed
Run Code Online (Sandbox Code Playgroud)

小智 6

作为先决条件,Gnome Shell 扩展必须安装在 gnome-shell 可以找到它的地方。这是在

  • /usr/share/gnome-shell/extensions/ 用于系统范围的扩展(由您的发行版包管理器管理)
  • $HOME/.local/share/gnome-shell/extensions/ 用于用户扩展(这是您放置您的扩展的地方)。

然后,启用/禁用扩展,使用gnome-shell-extension-tool-e-d选项。例如要启用扩展test@test,请使用

gnome-shell-extension-tool -e test@test
Run Code Online (Sandbox Code Playgroud)

您可以通过 Gnome 控制中心为此命令指定键盘快捷键。

话虽如此,这可能不是您想要做的。相反,您应该编写扩展,使其始终处于启用状态。启用后,您的扩展程序应通过Main.wm.addKeybinding(). 此键绑定会触发您的扩展所需的操作。有关如何执行此操作的详细信息,请在stackoverflow上寻求帮助,查看gnome-shell源代码或查看其他扩展的源代码。