Как отключить расширение gnome-shell, которое переопределяет системный индикатор

В моей системе почему-то не работал индикатор яркости для изменения яркости. Хотя 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, а затем сбросить _brightness до значения в коде disable().

Ни один из подходов не сработал для меня, поэтому любая помощь будет оценена по достоинству.


person linuxfreak003    schedule 26.05.2017    source источник


Ответы (1)


Первое место, где я всегда проверяю вопросы о расширении GS, — это код в GitHub. В этом случае BrightnessIndicator расширяет panelMenu.SystemIndicator, который вам ничего не предлагает, поэтому оттуда идите вверх по наследству, пока не найдете, например, ClutterActor.destroy(). Затем, я думаю, просто создайте новый BrightnessIndicator, как это делается в panel.js.

Стоит отметить, что disable() также вызывается, когда рабочий стол заблокирован.

person andy.holmes    schedule 26.06.2017