标签: gnome-shell

如何测试/调试GNOME Shell扩展?那有什么工具吗?

我想开发GNOME Shell扩展,发现它很容易进入开发过程,但我仍然无法弄清楚如何有效地调试/测试我的扩展.

有没有为此目的的工具?在现代浏览器或javascript服务器环境中是否有任何类型的实时控制台?

javascript gnome-shell gnome-3 gnome-shell-extensions

60
推荐指数
5
解决办法
3万
查看次数

Ctrl+。(点) 使“e”出现,而不是在 Gnome 上的 VSCode 中显示建议

我在 Gnome 上使用 VSCode(在 Arch 上的 XOrg 上)。最近,该快捷方式Ctrl+.停止工作,尽管仍然列在键盘快捷方式中并且所有扩展都被禁用。相反,会出现下划线e

在此输入图像描述

当按 Enter 两次或 ESC 一次时,该字符消失。当写一些东西然后按回车键时, 就会e消失,但所写的文本会保留。当更改带有下划线的窗口时e,它会变成常规的e

这似乎与撰写键有点相似,按下后会显示一个带下划线的中心点。

Ctrl+.我在 Gnome 设置中找不到任何键盘快捷键。

这个功能是什么?到底有什么好处呢?我怎样才能恢复原来的行为?

keyboard-shortcuts xorg archlinux gnome-shell visual-studio-code

55
推荐指数
2
解决办法
5362
查看次数

如何开始编写Gnome Shell扩展

我发现很难找到有关Gnome Shell Extensions的文档.我在Gnome Wiki上发现了一些内容(它是第一级链接),但它并不多:

http://live.gnome.org/GnomeShell/Extensions

这里的问题是GJS和它的绑定.绝对没有文档,有很多SIGSEGV,绑定还没准备好(GLib,Gio等).唯一可行的是从GIR为种子JavaScript实现生成的非官方文档:

http://roojs.org/seed/gir-1.2-gtk-2.0/seed/

哪里可以获得更多例子?我想读取目录,文件,生成进程,打开网络套接字和做其他事情.

更新:演示如何在GJS中逐行读取文件.根据谷歌这是不可能的.谢谢.

javascript gnome seed gnome-shell gnome-3

30
推荐指数
1
解决办法
1万
查看次数

Gnome 3(Gnome Shell)JavaScript/CSS引擎

我想知道,JavaScript/CSS引擎的类型和版本Gnome 3也在Gnome Shell使用?

有关于当前版本等的信息吗?

javascript css gnome gnome-shell gnome-3

25
推荐指数
1
解决办法
6646
查看次数

如何在gnome shell扩展中处理键盘事件?

如何添加事件或其他方法来监听gnome shell扩展上的按键?例如,显示一个对话框,每个按键显示按下的键?

我找不到任何例子.该文件提到了一个keyboard模块,而是与通用名称搜索是困难的.

Class explanation
...
- General utils
   - Keyboard: Manage and define the keyboard events, etc. for gnome shell. 
Run Code Online (Sandbox Code Playgroud)

(在上面作为上面链接的文档的引用阅读.它被设计为代码,因为由于某种原因引用样式不保留此站点中的换行符)

我找到了一些使用波纹管代码的扩展,其结果类似于我的要求,但我再次找不到特定类和方法的文档:

workViewInjections['_init'] = injectToFunction(WorkspacesView.WorkspacesView.prototype, '_init', function(width, height, x, y, workspaces) {
        this._pickWorkspace = false;
        this._pickWindow = false;
        this._keyPressEventId = global.stage.connect('key-press-event', Lang.bind(this, this._onKeyPress));                                                                                
        this._keyReleaseEventId = global.stage.connect('key-release-event', Lang.bind(this, this._onKeyRelease));
        connectedSignals.push({ obj: global.stage, id: this._keyPressEventId });
        connectedSignals.push({ obj: global.stage, id: this._keyReleaseEventId });
        });
Run Code Online (Sandbox Code Playgroud)

此外,没有任何名字keyboard在那里命名...

-

edit1:更多搜索...我想我可能不得不使用Clutterapi.但同样,没有太多的例子或文件.我去的最远的是这个

edit2:更多搜索.在主ui树上查看gnome shell源代码,我认为答案是使用global扩展代码可用的提到的对象.例如

global.connect('key-press-event', function(if, i, …

gnome gnome-shell gnome-3 gnome-shell-extensions

23
推荐指数
1
解决办法
1112
查看次数

如何使用GNOME的镜子?

我想进入Gnome Shell的扩展开发,但我似乎无法理解我是如何在Looking Glass中执行一些lg实际调试我的东西的任务.

  1. 当我输入global.log("hi");LG时,它会把我扔回去r(...) = undefined.为什么?
  2. 当我想调试不加载的扩展时,我该怎么做?
    很高兴看到无法加载扩展的原因.
    我试过Main.ExtensionSystem.loadExtension()undefined无论是否给它扩展名的字符串或扩展名的对象,它都会返回.
  3. 我在哪里可以找到类,对象和成员方法的文档?
    (LG检查员似乎无法检查功能.)

如果我拥有这些资源,我至少可以开始为更新的Gnome版本更新一些扩展.我不会问这些简单的问题,如果他们会在某处得到很好的解释,但获取所有信息看起来真的很难(我用谷歌搜索了几个小时).

debugging gnome-shell gnome-shell-extensions looking-glass

12
推荐指数
1
解决办法
2808
查看次数

在Gjs中使用Shell对象

我正在使用Gjs(Gnome JavaScript绑定)编写gtk +应用程序由于没有可用的文档,我正在阅读gnome-shell JavaScript的源代码.在我的应用程序中,我需要访问global.userdatadir.

我试图将Shell对象添加到我的脚本:

const Shell = imports.gi.Shell;
Run Code Online (Sandbox Code Playgroud)

然后运行它#gjs myscript.js 但是当我这样做时它会抛出一个错误说:

JS ERROR: !!!   Exception was: Error: Requiring Shell, version none: Typelib file for namespace 'Shell' (any version) not found
    JS ERROR: !!!     lineNumber = '0'
    JS ERROR: !!!     fileName = '"gjs_throw"'
    JS ERROR: !!!     stack = '"("Requiring Shell, version none: Typelib file for namespace 'Shell' (any version) not found")@gjs_throw:0
@manager.js:5
"'
    JS ERROR: !!!     message = '"Requiring Shell, version none: Typelib file for namespace 'Shell' …
Run Code Online (Sandbox Code Playgroud)

gnome-shell

11
推荐指数
1
解决办法
1382
查看次数

Gnome shell权限升级

我正在构建一个Gnome shell扩展,我希望能够使用升级的权限做一些事情.所以,我想我需要使用"政策工具包",但我不知道如何去做这件事.

所以,说我想做点什么ifconfig eth0 down或者做什么ifconfig eth0 up

我可以从终端运行:pkexec ifconfig eth0 down它会提示输入密码然后再进行操作.

但是,我应该如何从扩展内部做到这一点?

我很确定它与在/ usr/share/polkit-1/actions中创建文件有关,但我在互联网上找不到任何东西.

我希望能够设置它,以便不需要输入密码,扩展只需运行某个命令.

我知道允许任何命令运行是一个非常糟糕的主意.这不是我要求的,我希望能够只运行一个程序/命令.

编辑:我不确定,但我认为没有必要输入密码可能是不可能的.我只是知道sudo第一次没有问一段时间的密码,所以我想要类似的功能.不确定有什么可能.

linux gnome-shell gnome-3 gnome-shell-extensions

10
推荐指数
1
解决办法
902
查看次数

如何在St.Icon的Gnome Shell扩展中设置PNG文件

我的Gnome Shell扩展程序有一个文件夹'icons',里面有一个名为'MyIcon.png'的图标文件.我想把它作为St.Icon对象的参数.

let icon = new St.Icon({ /* I need what to code here*/ });
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

塞尔丘克.

gnome gnome-shell gnome-shell-extensions

9
推荐指数
2
解决办法
1930
查看次数

在Gnome Shell中显示通知

如何GNOME通过python程序发送通知?我曾尝试Python绑定类似pynotify,python-notify2,但都给予弹出通知这是暂时的.是否有任何python绑定在消息托盘上发出通知GNOME

python gnome status python-2.7 gnome-shell

9
推荐指数
1
解决办法
3942
查看次数