标签: gnome-shell-extensions

Lang.Class在Javascript中

我正在尝试使用GJS(Gnome Javascript)开发Gnome Shell扩展,但是,我遇到了Lang库(我认为它是一个库,如果不正确的话).但我在网上找不到任何有关它的资源.

在代码中它看起来像这样:

const Lang = imports.lang;

const ObjectA = new Lang.Class({ ... });
Run Code Online (Sandbox Code Playgroud)

我在哪里可以找到有关它的文档?它是一个Gnome lib吗?一个Mozilla lib?

javascript gnome gnome-shell-extensions

7
推荐指数
1
解决办法
1762
查看次数

GJS:Gtk.TextView按键事件不起作用

我正在尝试使用gjs为gnome-shell创建简单的gtk应用程序.

它的窗口只包含Gtk.TextView,我想在用户输入时处理事件.

这是我的代码:

#!/usr/bin/gjs

var Gtk = imports.gi.Gtk;

function MainWindow () {
    this._init ();
}

MainWindow.prototype = {
    _init: function () {
        this.window = new Gtk.Window ({
            title: "Just Calculator",
            window_position: Gtk.WindowPosition.CENTER,
            default_height: 400,
            default_width: 440,
        });

        //this.window.show ();
        this.window.connect ("hide", Gtk.main_quit);
        this.window.connect ("delete-event", function () {
            Gtk.main_quit();
            return true;
        });

        this.textbox = new Gtk.TextView();
        this.textbox.connect('key-press-event', this._keyPress);

        var sw = new Gtk.ScrolledWindow ({shadow_type:Gtk.ShadowType.IN});
        sw.add (this.textbox);
        this.window.add(sw);

        this.window.show_all();
    },

    _keyPress: function(textview, event) {
        print(event, event.type, event.keyval);
        textview.buffer.text = 'ok';
        return true; …
Run Code Online (Sandbox Code Playgroud)

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

7
推荐指数
1
解决办法
504
查看次数

Gnome Shell扩展键绑定

(全局)将键组合(例如<Super>+A)绑定到gnome shell扩展中的函数的最简单方法是什么?

检查了几个扩展,我遇到了以下代码:

global.display.add_keybinding('random-name',
                              new Gio.Settings({schema: 'org.gnome.shell.keybindings'}),
                              Meta.KeyBindingFlags.NONE,
                              function() { /* ... some code */ });
Run Code Online (Sandbox Code Playgroud)

我知道组合键是由schema参数指定的,并且可以创建描述组合的XML文件.有更简单的方法吗?

linux hotkeys key-bindings gnome-shell gnome-shell-extensions

6
推荐指数
2
解决办法
1272
查看次数

以编程方式调用 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 快捷方式?

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

6
推荐指数
1
解决办法
302
查看次数

如何在Gnome终端中为Python错误的输出着色?

注意:在研究如何实际执行此操作后,我会问这个问题。其他与我的问题有些相似但实际上不同的问题涉及:

  1. 彩色编码的python脚本
  2. 脚本中导入颜色库
  3. 使用诸如Solarized改进工具之类的工具Vim对python代码进行颜色编码。

我要寻找的是: 我已经有一个简单的python脚本(例如test.py),并且正在Gnome终端上执行它。

python test.py
Run Code Online (Sandbox Code Playgroud)

test.py将在终端上输出一些错误。错误示例:

Traceback (most recent call last):
  File "test.py", line 2, in <module>
    with open('', 'rb') as csvfile:
IOError: [Errno 2] No such file or directory: ''
Run Code Online (Sandbox Code Playgroud)

我希望错误关键字以粗体红色表示,例如,行号具有特定的颜色,以便易于查找错误。

如您所见,Stackoverflow已经很好地对错误进行了颜色编码。在我的Gnome终端上,输出是单色的。如何在终端上获得如此出色的颜色编码输出?

谢谢!

python error-handling terminal colors gnome-shell-extensions

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

Gnome 3.10与3.14中的扩展事件循环

我写了这个辅助功能扩展:

这适用于Gnome Shell v3.14和v3.16中的假设,但不适用于v3.10.它显示了重新启动它之后唯一的初始键盘修饰符状态,并且在此之后永远不会更新它.

这里是完整的代码:

const St = imports.gi.St;
const Mainloop = imports.mainloop;
const Main = imports.ui.main;
const Gdk = imports.gi.Gdk

let button, label, keymap;

function _update() {
    let symbols = "????????";
    let state = keymap.get_modifier_state();    
    label.text = " ";
    for (var i=0; i<=8; i++ ) { 
        if (state & 1<<i) {
            label.text += symbols[i];
        } else {
            //label.text += "";
        }
    }
    label.text += " ";
}

function init() {
    button = new St.Bin({ style_class: 'panel-button',
                          reactive: …
Run Code Online (Sandbox Code Playgroud)

gtk gnome event-loop gnome-shell-extensions gjs

5
推荐指数
1
解决办法
277
查看次数

Gnome Shell扩展:如何使用管道运行命令

所以我正在做一个Gnome Shell扩展。我希望能够使用管道运行某些命令。(该命令实际上是"xrandr --query | awk 'something'",但这不是主题)

所以,到目前为止我所做的是

GLib.spawn_async_with_pipes(null,
                            ['/usr/bin/xrandr', '--query', '|', 'awk...'], null,
                            GLib.SpawnFlags.DO_NOT_REAP_CHILD, null);
Run Code Online (Sandbox Code Playgroud)

但这不起作用!我找不到在带有管道的gnome扩展中运行命令的任何示例。

我是否必须"|"像以前一样在命令中编写代码?

javascript gnome glib gnome-3 gnome-shell-extensions

5
推荐指数
1
解决办法
1654
查看次数

有什么办法可以编写GNOME-Shell扩展的单元测试

我目前正在尝试重构现有的gnome-shell扩展的代码库。部分原因是引入了单元测试,因为在2016年不使用测试似乎是微不足道的。

经过一番修补,我设法建立了一个有效的node-phantomjs-qunit管道,该管道实际上使我进入了某个地方。

然而,外壳扩展使用自定义imports-mechanic以及一些修订打造类别(例如:String.format通过GJS),使得它不可能在一个单独的环境来实际测试这些文件,那就是:没有壳。

所以我的问题是:真的不可能为shell扩展编写单元测试吗?

gnome-shell gnome-shell-extensions

5
推荐指数
1
解决办法
140
查看次数

Gnome Shell扩展未加载,没有可用的错误消息

我有两个gnome-shell扩展,升级到3.24后似乎没有加载.在gnome-tweak-tool中,他们有一个带有"Error loading extension"的警告标志图标,没有别的.我尝试使用look glass(lg),它只是说"Error",并且扩展名"没有报告任何错误".

如何调试扩展程序以找出未加载的原因?

gnome-shell gnome-shell-extensions

5
推荐指数
4
解决办法
4598
查看次数

无需重新启动即可安装 GNOME Shell 扩展?

我写了一个小的 GNOME Shell 扩展,我想分发给一些同事。

为此,我创建了一个 RPM。安装后需要重新启动 GNOME-Shell 才能使扩展可见,因此可以启用它。使用 X11 时使用<ALT-F2>后跟r或使用 Wayland 时注销并登录。

只有在重新启动后,扩展才在 GNOME-Tweaks 中可见,或者可以使用gnome-extensions enable ....

有人告诉我,可能有一种方法可以让 GNOME-Shell 知道该扩展程序而无需重新启动。我四处寻找,但没有找到任何东西。

那么:GNOME-Shell 扩展是否可以以无需重新启动即可激活的方式安装?

Fedora 31 和 32 上的环境是 GNOME-Shell 3.34 和 3.36。

gnome-shell gnome-shell-extensions gjs

5
推荐指数
1
解决办法
208
查看次数