我想开发GNOME Shell扩展,发现它很容易进入开发过程,但我仍然无法弄清楚如何有效地调试/测试我的扩展.
有没有为此目的的工具?在现代浏览器或javascript服务器环境中是否有任何类型的实时控制台?
我在 Gnome 上使用 VSCode(在 Arch 上的 XOrg 上)。最近,该快捷方式Ctrl+.停止工作,尽管仍然列在键盘快捷方式中并且所有扩展都被禁用。相反,会出现下划线e:
当按 Enter 两次或 ESC 一次时,该字符消失。当写一些东西然后按回车键时, 就会e消失,但所写的文本会保留。当更改带有下划线的窗口时e,它会变成常规的e。
这似乎与撰写键有点相似,按下后会显示一个带下划线的中心点。
Ctrl+.我在 Gnome 设置中找不到任何键盘快捷键。
这个功能是什么?到底有什么好处呢?我怎样才能恢复原来的行为?
keyboard-shortcuts xorg archlinux gnome-shell visual-studio-code
我发现很难找到有关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/CSS引擎的类型和版本Gnome 3也在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 Shell的扩展开发,但我似乎无法理解我是如何在Looking Glass中执行一些lg实际调试我的东西的任务.
global.log("hi");LG时,它会把我扔回去r(...) = undefined.为什么?Main.ExtensionSystem.loadExtension()但undefined无论是否给它扩展名的字符串或扩展名的对象,它都会返回.如果我拥有这些资源,我至少可以开始为更新的Gnome版本更新一些扩展.我不会问这些简单的问题,如果他们会在某处得到很好的解释,但获取所有信息看起来真的很难(我用谷歌搜索了几个小时).
我正在使用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扩展,我希望能够使用升级的权限做一些事情.所以,我想我需要使用"政策工具包",但我不知道如何去做这件事.
所以,说我想做点什么ifconfig eth0 down或者做什么ifconfig eth0 up
我可以从终端运行:pkexec ifconfig eth0 down它会提示输入密码然后再进行操作.
但是,我应该如何从扩展内部做到这一点?
我很确定它与在/ usr/share/polkit-1/actions中创建文件有关,但我在互联网上找不到任何东西.
我希望能够设置它,以便不需要输入密码,扩展只需运行某个命令.
我知道允许任何命令运行是一个非常糟糕的主意.这不是我要求的,我希望能够只运行一个程序/命令.
编辑:我不确定,但我认为没有必要输入密码可能是不可能的.我只是知道sudo第一次没有问一段时间的密码,所以我想要类似的功能.不确定有什么可能.
我的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通过python程序发送通知?我曾尝试Python绑定类似pynotify,python-notify2,但都给予弹出通知这是暂时的.是否有任何python绑定在消息托盘上发出通知GNOME?
gnome-shell ×10
gnome ×5
gnome-3 ×5
javascript ×3
archlinux ×1
css ×1
debugging ×1
linux ×1
python ×1
python-2.7 ×1
seed ×1
status ×1
xorg ×1