繁体   English   中英

如何禁用覆盖系统指示器的gnome-shell扩展

[英]How to disable gnome-shell extension that overrides a system indicator

在我的系统上,由于某种原因,亮度指示器无法更改亮度。 尽管xbacklight确实可以更改亮度。

我编写了一个扩展,以在xbacklight更改亮度时运行它。 有用。 尽管它没有禁用(不是我需要的,但是我想拥有良好的代码)。 我不确定如何正确禁用扩展。 这是所有代码。

const Main = imports.ui.main;
const Lang = imports.lang;
const Util = imports.misc.util;
const Brightness = imports.ui.status.brightness;

const BrightnessIndicator = new Lang.Class({
    Name : 'BrightnessIndicator',
    Extends : Brightness.Indicator,
    _sync : function () {
        let visible = this._proxy.Brightness >= 0;
        this._item.actor.visible = visible;
        if (visible) {
            this._slider.setValue(this._proxy.Brightness / 100.0);
        }
        let percent = this._proxy.Brightness.toString();
        Util.spawn(['xbacklight', '-set', percent]);
    }
});

function init() {
}

function enable() {
    var indicator = new BrightnessIndicator();
    Main.panel.statusArea.aggregateMenu._brightness = indicator;
}

function disable() {
    delete indicator;
    Main.panel.statusArea.aggregateMenu._brightness = null;
}

我也尝试过从enable()添加一个变量来保存旧的_brightness,然后在disable()代码中将_brightness重置为该变量。

两种方法都对我无济于事,因此不胜感激。

我经常检查GS扩展问题的第一位是GitHub中的代码。 在这种情况下,BrightnessIndicator扩展了panelMenu.SystemIndicator ,该菜单菜单不提供任何内容,因此从那里开始继承直到找到例如ClutterActor.destroy() 然后,我想像实例化panel.js一样实例化一个新的BrightnessIndicator。

要注意的一件事是,在锁定桌面时也会调用disable()。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM