Возвращаем Pidgin и Skype на верхнюю панель GNOME Shell



Хочу рассказать несложное действие по оптимизации рабочего пространства, которое упростит жизнь многим пользователям GNOME Shell, привыкшим видеть в трее иконки любимых IM (Pidgin и др.), Skype или других приложений. В стандартной настройке они находятся в «нижнем» трее, вызов которого осуществляется наведением мыши на нижний край экрана. Неудобство упомянутого «нижнего» трея в плане общения по jabber, skype, icq и т.д. состоит в том, что пропустив от кого-либо сообщение (например, отойдя от ПК), увидеть его при возвращении без дополнительного вызова дефолтного трея невозможно. Иконка же на верхней панели сразу бросается в глаза, поэтому пропустить важное сообщение или не ответить на него вовремя менее вероятно.

На многих ресурсах этот вопрос поднимался, но непросто найти универсальную инструкцию, которая состояла бы с четкой последовательности действий, необходимых для решения вопроса с учетом некоторых нюансов.

Реализуется такое действие с помощью дополнительных параметров системы, для выполнения которых, в т.ч. и управления пользовательскими приложениями (GNOME Shell Extensions) в debian-подобных дистирибутивах (в моем случае это Ubuntu 11.10 + GNOME Shell), используется пакет gnome-tweak-tool. Если он еще не установлен, выполняем в терминале:

sudo apt-get install gnome-tweak-tool


Создаем две папки:

mkdir ~/.local/share/gnome-shell/extensions/pidgin-status
mkdir ~/.local/share/gnome-shell/extensions/skype-status


Создаем в каждой папке файлы:

nano ~/.local/share/gnome-shell/extensions/pidgin-status/extension.js


с таким содержанием

const StatusIconDispatcher = imports.ui.statusIconDispatcher;
function enable() {
    StatusIconDispatcher.STANDARD_TRAY_ICON_IMPLEMENTATIONS['pidgin'] = 'pidgin';
}
function disable() {
    StatusIconDispatcher.STANDARD_TRAY_ICON_IMPLEMENTATIONS['pidgin'] = '';
}
function init() {
}


nano ~/.local/share/gnome-shell/extensions/pidgin-status/metadata.json 


{
  "shell-version": ["3.2.1", "3.2"],
  "uuid": "pidgin-status",
  "name": "Pidgin Status Icon",
  "description": "Integrates Pidgin Client into the status bar"
}


nano ~/.local/share/gnome-shell/extensions/skype-status/extension.js


с таким содержанием

const StatusIconDispatcher = imports.ui.statusIconDispatcher;
function enable() {
    StatusIconDispatcher.STANDARD_TRAY_ICON_IMPLEMENTATIONS['skype'] = 'skype';
}
function disable() {
    StatusIconDispatcher.STANDARD_TRAY_ICON_IMPLEMENTATIONS['skype'] = '';
}
function init() {
}


 nano ~/.local/share/gnome-shell/extensions/skype-status/metadata.json 


{
  "shell-version": ["3.2.1", "3.2"],
  "uuid": "skype-status",
  "name": "Skype Status Icon",
  "description": "Integrates Skype Client into the status bar"
}


В «shell-version» указываем версию GNOME Shell, которая у вас установлена.

Завершаем сеанс пользователя.
Логинимся в систему.
Переходим в Приложения-Прочие-Дополнительные параметры системы-Расширения Shell.
Включаем наши дополнения.



Еще раз завершаем сеанс пользователя и логинимся в систему.
Запускаем Pidgin и Skype, наблюдаем их значки на верхней панели. Не забываем включить отображение значка в настройках самого Pidgin'a (Средства-Настройки-Интерфейс-Показывать значок системного лотка), у Skype он отображается автоматически.



Данный метод можно использовать и для других клиентов, подставив его имя в соответствующие поля файлов extension.js и metadata.json.
Стоит также заметить, что с помощью дополнений пользователя можно настроить еще много чего интересного. Об этом детальнее можно прочитать здесь.

Основные источники информации:
forum.ubuntu.ru/index.php?topic=172495.0
mo.morsi.org/blog/taxonomy/term/72
extensions.gnome.org
Поделиться публикацией
Похожие публикации
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама
Комментарии 53
  • +2
    надо попробовать
    • 0
      работает.
      автору респект.
      • 0
        Спасибо. Рад, что не зря старался.
    • 0
      Странно, переключатель не активен для всех сторонних расширений
      • +1
        Может, «shell-version» отличается от того, который прописан в metadata.json?
        • +1
          Точнее сказать, версия установленного в ОС GNOME Shell отличается от значения в «shell-version» в metadata.json.
          • 0
            нет, это похоже бага gnome-tweak-tool в Debian
        • 0
          В extension.js впишите следующий код вместо указанного выше:

          const StatusIconDispatcher = imports.ui.statusIconDispatcher;

          function main(metadata) {

          StatusIconDispatcher.STANDARD_TRAY_ICON_IMPLEMENTATIONS['pidgin'] = 'pidgin';

          }


          Другая модель плагинов.
        • 0
          Спасибо. Надо будет затестить.
          • +3
            > Завершаем сеанс пользователя.
            > Логинимся в систему.

            Вроде для подхватывания дополнений достаточно просто шелл рестартануть — alt+F2 и R. При этом приложения остаются запущенными.
            • 0
              Спасибо, читал об этом. Но у меня данное сочетание клавиш не работало/не было настроено, поэтому написал такой вариант. С запущенными приложениями — да, удобнее.
              • 0
                У меня в gnome-tweak-tool без этого и не появились новые расширения, кстати.
              • +1
                немного не в тему: ни у кого не бывает такого, что skype как бы виснет и вываливается из сети (хотя на текущем компе показывается, что все в порядке)? Как побороть? два-три раза за день приходится перезапускать скайп…
                • +2
                  это изветсный баг линуксовой версии, есть куча упоминаний в сети, есть тема на форуме скайпа — им пофиг. эта вещь так замучала, что юзаю imo.im
                  • +1
                    Я такое наблюдаю после перезапуска pulseaudio, т. е. скайп пытается воспроизвести звук и какой-то из фоновых потоков «виснет».
                    • +1
                      походу это проблема скайпа на 64 битных пингвинах… сам сейчас с этим мучаюсь, но тьфу-тьфу пока что не так часто происходит и к сожалению альтернатив нет (imo.im не понравился). А на 32 битных системах все ок.
                    • 0
                      Для арчеводов есть расширение aur/gnome-shell-extension-skype-status
                      • +1
                        посматрите дату, когда это мы описывали тут
                        www.gnome-3.ru/catalog/item2.html
                        • 0
                          как же вы трансмишн-то забыли, а? :)
                          • 0
                            да что угодно можно
                          • 0
                            Спасибо за ссылку. Ни в коем случае не претендую на первенство в этой теме. Просто собрал материал с нескольких источников в единую пошаговую инструкцию для устранения данного недочета, который мне доставлял много неудобства после недавнего перехода с GNOME 2 на Shell. Возможно, еще кому-то пригодится. Знаю также, что в последнем релизе Mint это реализовано «из коробки», с Ubuntu нужно немного повозиться.
                          • 0
                            Выход Gnome 3 — веский повод начать инспользовать Xfce/awesome/etc
                            • 0
                              Xfce\awesome\… тоже не панацея, везде хватает косяков и подводных камней. Идеальных вещей не бывает. Всё дело в субъективном мнении и не стоит навязывать его другим.
                            • +1
                              Вы ещё дополните статью тем, как у пиджина иконки трея поменять на гномзо-френдли без костылей. Я серьёзно, вопрос грустный.
                              • НЛО прилетело и опубликовало эту надпись здесь
                                • 0
                                  В дебиане, например, не проще.
                                  • НЛО прилетело и опубликовало эту надпись здесь
                                    • 0
                                      ЕМНИП, с дебиановским гномзом он не пускался.
                                      • НЛО прилетело и опубликовало эту надпись здесь
                                        • 0
                                          Я бы назвал это «переписать» :)

                                          Поэтому в дебиане и не проще. Пакетированный софт старый, к сожалению. Мучаемся-с…
                                • +1
                                  Оу. Раз пошёл разговор про линуксовые скайпы, подразню народ скриншотом.
                                  • 0
                                    Сказали «А», говорите уж и «Б». Пожалуйста.
                                    • 0
                                      не следите вы за ке*3ксом )
                                      Он эти табы уже который год продвигает в массы.
                                      • 0
                                        Когда я видел это в последний раз (давно-давно) они еще страшно лагали :(
                                        • 0
                                          Нет, это другие, принципиально новые, не тащящие за собой MO̸̢И҉O̢҉, не грузящие процессор, а ещё тут работает драг-н-дроп. Оно ещё сыровато малость, а потому и поста на эту тему пока не было.
                                    • Кстати вот при обновлениях по версиям у меня скайп не прижился с юнити, не было иконки в трее, крутил настройки выводил её. Не так давно устанавливал 11.10 только на новый винчестер и скайп из коробки работает как нужно. Как уже говорилось неоднократно обновления всё ещё оставляют желать лучшего.
                                      • 0
                                        Что-то я не понимаю. Почему меня и Skype и Pidgin в gnome-shell просто показываются в «области уведомления» и мне не приходилось всё это делать? Что я делал не так?
                                        • 0
                                          Область уведомлений та, которая по умолчанию находится внизу рабочего стола? Какой дистрибутив?
                                        • 0
                                          Ubuntu 11.10
                                          • 0
                                            А область уведомлений? На верхней панели или в «нижнем» трее?
                                            • 0
                                              Немного не врубаюсь о чём речь. Стандартный гномовский апплет «область уведомлений» (не знаю как по-английски он найзывается.) В нём и индикаторы громкости, сети, клавиатуры.
                                              • 0
                                                Сеанс при авторизации GNOME или GNOME Classic?
                                                • 0
                                                  GNOME Classic
                                                  • 0
                                                    Это все объясняет. Эта инструкция нужна для сеанса GNOME. В GNOME Classic обе панели по умолчанию видимые, что отбрасывает необходимость «поднимать» значки с нижней невидимой на верхнюю видимую.
                                          • 0
                                            А из нижнего правого угла иконки уходят?
                                            • 0
                                              Да. Получается как-то так

                                            • 0
                                              А кто-нибудь знает как этого инвалида убрать? Который дает доступ к спец. возможностям.
                                              • 0
                                                стандартным экстом, с сайта экстов
                                                extensions.gnome.org/extension/43/noa11y/
                                                • 0
                                                  К сожалению, эти экстеншены не ставятся на версию 3.0.2, которая присутствует в debian wheezy, который я и использую.
                                                  • 0
                                                    Посмотреть тривиальный код этих экстеншенов и адаптировать под старую версию.
                                                    Профит.
                                              • 0
                                                Спасибо.

                                                Лучше для подобных вместо «используйте nano/vim и вставьте вот такой текст» пользоваться here-document. Как нибудь так:

                                                cat > ~/.local/share/gnome-shell/extensions/pidgin-status/extension.js <<EOF
                                                const StatusIconDispatcher = imports.ui.statusIconDispatcher;
                                                function enable() {
                                                    StatusIconDispatcher.STANDARD_TRAY_ICON_IMPLEMENTATIONS['pidgin'] = 'pidgin';
                                                }
                                                function disable() {
                                                    StatusIconDispatcher.STANDARD_TRAY_ICON_IMPLEMENTATIONS['pidgin'] = '';
                                                }
                                                function init() {
                                                }
                                                EOF


                                                cat > ~/.local/share/gnome-shell/extensions/pidgin-status/metadata.json <<EOF
                                                {
                                                  "shell-version": ["3.2.1", "3.2"],
                                                  "uuid": "pidgin-status",
                                                  "name": "Pidgin Status Icon",
                                                  "description": "Integrates Pidgin Client into the status bar"
                                                }
                                                EOF


                                                cat > ~/.local/share/gnome-shell/extensions/skype-status/extension.js <<EOF
                                                const StatusIconDispatcher = imports.ui.statusIconDispatcher;
                                                function enable() {
                                                    StatusIconDispatcher.STANDARD_TRAY_ICON_IMPLEMENTATIONS['skype'] = 'skype';
                                                }
                                                function disable() {
                                                    StatusIconDispatcher.STANDARD_TRAY_ICON_IMPLEMENTATIONS['skype'] = '';
                                                }
                                                function init() {
                                                }
                                                EOF


                                                cat > ~/.local/share/gnome-shell/extensions/skype-status/metadata.json <<EOF
                                                {
                                                  "shell-version": ["3.2.1", "3.2"],
                                                  "uuid": "skype-status",
                                                  "name": "Skype Status Icon",
                                                  "description": "Integrates Skype Client into the status bar"
                                                }
                                                EOF


                                                Вот оригинальный код (на всякий случай, чтобы форматирование не потерялось).
                                                pastebin.com/Ar9E4Yts
                                                • 0
                                                  А кто-нибудь знает, как избавиться от значка gsd-keyboard-xkb в нижнем трее? Или хотя бы перенести его наверх, к остальным? Ни одно расширение, которое я пробовал, подхватывать его не хотело.
                                                  • 0
                                                    Можно просто кликнуть 1 раз вот тут extensions.gnome.org/extension/192/status-icon-fixer/ и результат тот же. Еще и для vlc и прочих.

                                                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.