13 декабря 2011 в 18:56

Возвращаем 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
v2t @v2t
карма
16,0
рейтинг 0,0
Похожие публикации
Самое читаемое Администрирование

Комментарии (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̢҉, не грузящие процессор, а ещё тут работает драг-н-дроп. Оно ещё сыровато малость, а потому и поста на эту тему пока не было.
  • 0
    Кстати вот при обновлениях по версиям у меня скайп не прижился с юнити, не было иконки в трее, крутил настройки выводил её. Не так давно устанавливал 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 и прочих.

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