Порядок виджетов расширения оболочки выглядит случайным, как я могу его изменить? Я хочу иметь информацию о дате / времени слева, например.
Моя панель оболочки:
Порядок виджетов расширения оболочки выглядит случайным, как я могу его изменить? Я хочу иметь информацию о дате / времени слева, например.
Моя панель оболочки:
Ответы:
Для начала вам нужно найти соответствующий файл расширения, которое вы хотите изменить.
Обычно вы можете найти его здесь: ~/.local/share/gnome-shell/extensions
.
Если расширение было установлено через менеджер пакетов, вы можете найти его здесь: /usr/share/gnome-shell/extensions/
(Спасибо AB )
Затем перейдите в каталог расширения и откройте « extension.js
» в любом текстовом редакторе.
Перейдите в строку с: function enable()
(используйте функцию поиска в вашем редакторе - если вы не можете ее найти, перейдите в раздел « Обновление » ниже).
Внутри этой функции обычно есть строка Main.panel.addToStatusArea('NAME', _OTHERNAME, NUMBER, LEFT/CENTER/RIGHT);
(опять же: если вы не можете найти ее, перейдите в « Обновить» ). Может случиться так, что последние два параметра ( NUMBER
и POSITION
) отсутствуют; выглядит так: Main.panel.addToStatusArea('NAME', _OTHERNAME);
(Не волнуйтесь! Ваш компьютер интерпретирует более короткую версию с помощью: Не ('NAME', _OTHERNAME, 0, right);
стесняйтесь добавлять отсутствующие параметры. Но всегда в указанном порядке !!! )
В POSITION
определяет , где на панели значок должен быть. Есть три области: слева , в центре и справа . Возможно, вы не хотите менять это значение, но можете это сделать. Вот три возможных состояния для POSITION
панели:
------------------------------------------------------------------
Activities Date Other icons
------------------------------------------------------------------
left center right
Более важная ценность, которую вы, вероятно, хотите изменить NUMBER
. Он определяет порядок значков внутри вложенных панелей. Возможные значения:
0 : Мне все равно, где иконка.
отрицательные значения : позиция; начиная с правой стороны (может быть важно, поскольку все значки расширений загружаются после системных значков)
положительные значения : позиция; начиная с левой стороны. Более высокие значения будут расположены дальше к правой стороне.
Вы должны поэкспериментировать с этими значениями во всех ваших расширениях, потому что одни и те же значения конфликтуют друг с другом (два разных расширения в позиции 2 не имеют никакого смысла). И иногда даже следующие ценности вступают в противоречие.
Каждый раз, когда вы меняете значение, обязательно сохраняйте файл. Затем нажмите Alt+ F2, введите rи Enter. Панель обновится новыми заказанными значками. Это быстрый вариант поиграться с этими значениями.
Наконец, цитата из Математического Кофе :
Используйте Main.panel.addToStatusArea (unique_name_of_indicator, inidicator, position, box), чтобы добавить SystemStatusButton или PanelButton на панель. Это обрабатывает добавление его меню в менеджер меню для вас (box - это Main.panel ._ {left, right, center} Box, пропуск аргумента box по умолчанию дает правое поле, а пропуск позиции устанавливает позицию 0). Если ваша кнопка только ButtonBox (то есть без меню), то придерживайтесь. _ {слева, справа, по центру} Box.insert_child_at_index.
Пожалуйста, дайте мне знать, если у вас были какие-либо проблемы с этим подходом.
Я осмотрелся и понял, что этот способ не работает для всех расширений (в основном только для простых / новых расширений). В этом случае часто используемым расширением является «системный монитор». Способ изменения положения значков должен быть (как правило) одинаковым (я не проверял его. Поэтому обязательно создайте файл резервной копии) . Но есть некоторые отличия для «системного монитора»:
var enable = function ()
. Так что может быть лучше поискать слово enable
в файле.Место, где определяется положение значков, называется Main.panel._addToPanelBox('system-monitor', tray, 1, panel);
. Изменение номера должно иметь такой же эффект, как описано выше. Чтобы изменить всю область, у вас есть два варианта:
Изменив эту же строку на Main.panel._addToPanelBox('system-monitor', tray, 1, Main.panel._rightBox);
(Примечание: позиция в меню настроек расширения больше не будет работать).
Или изменив строку let panel = Main.panel._rightBox;
(снова используйте функцию поиска) на нужную вам позицию ( _leftBox, _centerBox, _rightBox ).
(Эти шаги могут быть применены к любому другому расширению. Но будут немного другие имена. Но все же: Общий способ был описан в моей первой попытке этого ответа)
Вся процедура в двух словах:
Найдите соответствующий файл. Затем найдите enable
внутри этого файла. Затем найдите что-нибудь подобное Main.panel...
и измените значения (вполне понятно).
И, наконец, я заметил, что вы упомянули панель времени. Я не нашел хорошего способа изменить свою позицию, но вот что-то еще:
У вас установлен «системный монитор». Это хорошо :)
Откройте соответствующее extension.js
и измените слово «вправо» на «лево» в этих двух строках:
Main.panel._addToPanelBox('dateMenu', dateMenu, -1, Main.panel._rightBox);
и Main.panel._rightBox.insert_child_at_index(dateMenu.actor, -1);
.
Наконец, вы должны проверить «переместить часы» в настройках этого расширения. Вот и вы! Я не проверял это, но это должно работать. Если нет, напишите комментарий :)
Ааа! Забыл упомянуть: каждый раз, когда вы меняете значения, сохраняйте файл и обновляйте панель нажатием Alt+ F2- type r- Enter. И обязательно создавайте резервные копии файлов !!! : D
/usr/share/gnome-shell/extensions/
Расширение меню Панель расширение позволит вам отсортировать индикаторы с «Tray смещением» функцией и вкладкой индикаторов. После установки расширения зайдите в настройки, чтобы настроить ваши индикаторы. Счастливого OCDing!
Там также более легкий способ просто открытие gnome-tweak-tool
, просмотр на Extensions вкладку, затем поворачивая расширения и включи его снова. При этом значки перемещаются влево.
off
и on
...?