Hello,
in
/usr/share/gnome-shell/js/ui/status/system.js
I prefer to have
this._altSwitcher = new
AltSwitcher(this._suspendAction,
this._powerOffAction);
in line 352 instead of the default
this._altSwitcher = new
AltSwitcher(this._powerOffAction,
this._suspendAction);
as my switching of that setting breaks
with every Gnome-Shell update, I'd like to
have that set by an extension.
My problems starting this are:
1. IMHO, the cleanest way would be to address
that button and change its settings. But:
(a) what does "this" stands for here? I
tried PanelMenu.SystemIndicator._altSwitcher
(with PanelMenu = imports.ui.panelMenu), but
didn't reach it that way.
(b) Is there a way at all to change from
(this._powerOffAction, this._suspendAction) to
(this._suspendAction, this._powerOffAction) for an
existing button?
2. If 1 doesn't work, what would be the best way?
(a) Try to monkeypatch the _createSubMenu()
function in the indicator class? or
(b) Remove the old button and create a new one in
its place instead? (how?)
thanks,
Bazon
reference:
I'm talking about /usr/share/gnome-shell/js/ui/status/system.js:
....
const PanelMenu = imports.ui.panelMenu;
...
const Indicator = new Lang.Class({
Name: 'SystemIndicator',
Extends: PanelMenu.SystemIndicator,
_createSubMenu: function() {
let item;
...
item = new PopupMenu.PopupBaseMenuItem({ reactive:
false,
can_focus:
false });
...
this._suspendAction =
this._createActionButton('media-playback-pause-symbolic',
_("Suspend"));
this._suspendAction.connect('clicked', Lang.bind(this,
this._onSuspendClicked));
this._powerOffAction =
this._createActionButton('system-shutdown-symbolic', _("Power
Off"));
this._powerOffAction.connect('clicked', Lang.bind(this,
this._onPowerOffClicked));
this._altSwitcher = new AltSwitcher(this._suspendAction,
this._powerOffAction);
item.actor.add(this._altSwitcher.actor, { expand: true,
x_fill: false });
this._actionsItem = item;
this.menu.addMenuItem(item);
},
});