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