Сегодня, обнаружил что при помощи файла panel.js можно настраивать размещение значков, кнопок и всего прочего на верхней панели. Наверное когда-нибудь всё это можно будет настроить в каком-нибудь dconf-editor, но пока я ничего другого не нашёл.
Сначала передвинем часы в лево. Для этого нужно с правами root открыть /usr/share/gnome-shell/js/ui/panel.js
Найти строку /* center */
между ней и строкой /* right */ должны быть строки
Затем строку
В том же файле найти строчку
Например, если нужно удалить значёк "универсального доступа", то строки
У меня это выглядит как-то так
Сначала передвинем часы в лево. Для этого нужно с правами root открыть /usr/share/gnome-shell/js/ui/panel.js
Найти строку /* center */
между ней и строкой /* right */ должны быть строки
this._dateMenu = new DateMenu.DateMenuButton();
this._rightBox.add(this._dateMenu.actor, { y_fill: true });
this._menus.addMenu(this._dateMenu.menu);
Нужно вырезать их и вставить после строки /* right */Затем строку
this._centerBox.add(this._dateMenu.actor, { y_fill: true });
заменить на this._rightBox.add(this._dateMenu.actor, { y_fill: true });
Я хотел, чтобы часы были между значками состояния и меню состояния, по этому вставил между строками this._rightBox.add(this._trayBox);и
this._rightBox.add(this._statusmenu.actor);То есть получилось так
/* center */
/*
this._dateMenu = new DateMenu.DateMenuButton();
this._centerBox.add(this._dateMenu.actor, { y_fill: true });
this._menus.addMenu(this._dateMenu.menu);
*/
/* right */
// System status applets live in statusBox, while legacy tray icons
// live in trayBox
// The trayBox is hidden when there are no tray icons.
this._trayBox = new St.BoxLayout({ name: 'legacyTray' });
this._statusBox = new St.BoxLayout({ name: 'statusTray' });
this._trayBox.hide();
this._rightBox.add(this._statusBox);
this._rightBox.add(this._trayBox);
this._dateMenu = new DateMenu.DateMenuButton();
this._rightBox.add(this._dateMenu.actor, { y_fill: true });
this._menus.addMenu(this._dateMenu.menu);
this._statusmenu = new StatusMenu.StatusMenuButton();
this._statusmenu.actor.name = 'panelStatus';
this._rightBox.add(this._statusmenu.actor);
В том же файле найти строчку
const STANDARD_TRAY_ICON_ORDER = ['a11y', 'display', 'keyboard', 'volume', 'bluetooth', 'network', 'battery'];['a11y', 'display', 'keyboard', 'volume', 'bluetooth', 'network', 'battery'] - это значки на верхней панели справа. Тут их можно менять местами и удалять.
Например, если нужно удалить значёк "универсального доступа", то строки
const STANDARD_TRAY_ICON_ORDER = ['a11y', 'display', 'keyboard', 'volume', 'bluetooth', 'network', 'battery'];
const STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION = {
'a11y': imports.ui.status.accessibility.ATIndicator,
'volume': imports.ui.status.volume.Indicator,
'battery': imports.ui.status.power.Indicator,
'keyboard': imports.ui.status.keyboard.XKBIndicator
};
превращаем в const STANDARD_TRAY_ICON_ORDER = ['display', 'keyboard', 'volume', 'bluetooth', 'network', 'battery'];
const STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION = {
/* 'a11y': imports.ui.status.accessibility.ATIndicator, */
'volume': imports.ui.status.volume.Indicator,
'battery': imports.ui.status.power.Indicator,
'keyboard': imports.ui.status.keyboard.XKBIndicator
};У меня это выглядит как-то так