Сегодня, обнаружил что при помощи файла 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 };
У меня это выглядит как-то так