
Как известно, GNOME Shell использует нижний трей с автоскрытием. Вообщем-то неплохое решение. Но иногда, например как в случае с "My weather indicator" или "Skype", хочется лицезреть их трей-иконки. Есть неплохое расширение "Classic systray", которое возращает весь системный трей на панель GNOME Shell. Но когда иконок много и, в принципе, часть из них не нужна, было бы хорошо, чтобы они так и оставались в нижнем трее.
И так, одно из решений это создание расширения, которое будет отражать трей-иконку нужного приложения на верхней панели.
Покажу на примере программ, таких как Mу-weather-indicator и Skype:
Создаем две папки:
1 2 |
mkdir ~/.local/share/gnome-shell/extensions/my-weather-indicator-status mkdir ~/.local/share/gnome-shell/extensions/skype-status |
Создаем в папке my-weather-indicator-status файлы extension.js:
1 |
gedit ~/.local/share/gnome-shell/extensions/my-weather-indicator-status/extension.js |
С содержанием:
1 2 3 4 5 6 7 8 9 |
const StatusIconDispatcher = imports.ui.statusIconDispatcher; function enable() { StatusIconDispatcher.STANDARD_TRAY_ICON_IMPLEMENTATIONS[`my-weather-indicator`] = `my-weather-indicator`; } function disable() { StatusIconDispatcher.STANDARD_TRAY_ICON_IMPLEMENTATIONS[`my-weather-indicator`] = ``; } function init() { } |
И metadata.json:
1 |
gedit ~/.local/share/gnome-shell/extensions/my-weather-indicator-status/metadata.json |
С содержанием:
1 2 3 4 5 6 |
{ "shell-version": ["3.0", "3.2", "3.4"], "uuid": "my-weather-indicator-status", "name": " My-weather-indicator Status Icon", "description": "Integrates My-weather-indicator into the status bar" } |
Создаем в папке skype-status файлы extension.js:
1 |
gedit ~/.local/share/gnome-shell/extensions/skype-status/extension.js |
С содержанием:
1 2 3 4 5 6 7 8 9 |
const StatusIconDispatcher = imports.ui.statusIconDispatcher; function enable() { StatusIconDispatcher.STANDARD_TRAY_ICON_IMPLEMENTATIONS[`skype`] = `skype`; } function disable() { StatusIconDispatcher.STANDARD_TRAY_ICON_IMPLEMENTATIONS[`skype`] = ``; } function init() { } |
И metadata.json:
1 |
gedit ~/.local/share/gnome-shell/extensions/skype-status/metadata.json |
с содержанием:
1 2 3 4 5 6 |
{ "shell-version": ["3.0", "3.2", "3.4"], "uuid": "skype-status", "name": " Skype Status Icon", "description": "Integrates Skype Icon into the status bar" } |
Вот и все перезапускаем GNOME Shell (Alt + F2 и команда r или выходим и входим обратно в систему), запускаем gnome-tweak-tool и включаем наши расширения.
Всё, можно запускать наши программы. Таким образом можно переместить в верхний бар трей-иконку практически любого приложения заменив в файле extension.js имя программы "skype" на имя другой программы (и заменив, соответственно, описание расширения в metadata.json). Для себя я сделал расширения еще для программ Deadbeef , Psi+, Turpial.
Всем приятного открытия! Буду рад видеть в группе vk.com/hybryde.