Как и большинство пользователей Ubuntu 10.04 с его графической оболочкой Gnome2, как-то привык к верхнему трею, особенно ко всяким, живущим в нем, апплетам. И для меня было большой неожиданностью, что в Unity исчезла возможность легко управлять этими апплетами. Кроме того, некоторые программы (Skype, например) сворачиваются в трей, то есть, просто, пропадают в никуда.
Но Linux на то и Linux, что дает пользователю широкие возможности для всевозможных настроек. В этой статье попробую описать, как можно настроить трей, чтобы получилось что-то похожее на трей 10.04 Вместо достаточно скромного, предлагаемого по умолчанию в 12.04:

Разрешаем программам и апплетам использовать трей

FIXME В Ubuntu 12.10 перенесли ветку настройки systray-whitelist. В dconf-editor путь выглядит следующим образом Com > Canonical > Desktop > Unity > Panel

Для начала, разрешим Skype использовать трей. Дело в том, что разработчики Unity завели так называемый белый список приложений, все приложения, не вошедшие в него, не будут отображаться в трее. Skype, по вполне понятным причинам, в этот список не входит.
Исправим это. Открываем терминал (Ctrl+Alt+T) и пишем:

gsettings get com.canonical.Unity.Panel systray-whitelist

В ответ получим «белый список» приложений, которым разрешено использование трея:

['JavaEmbeddedFrame','Wine','Update-notifier']

Как видим - не густо. Для того, чтобы добавить в него Skype (а также любое другое приложение), достаточно добавить его в этот список. Набираем в терминале следующее:

gsettings get com.canonical.Unity.Panel systray-whitelist "['JavaEmbeddedFrame','Wine','Update-notifier','Skype']"

Посколько мы будем добавлять много апплетов, то, чтобы не добавлять каждый вручную, проще разрешить всем приложениям использовать трей:

gsettings set com.canonical.Unity.Panel systray-whitelist "['all']"

После этого, чтобы настройки вступили в силу, необходимо перезапустить Unity, для этого нажмите Alt+F2 и введите команду

unity --replace

Теперь осталось в самом Скайпе выставить «галочку» напротив «запускать свернутым в системный трей» и… Вуаля! - наслаждаемся значком Скайпа. Поскольку мы разрешили всем приложениям использовать трей, то, при установке других приложений или апплетов, никаких манипуляций проводить уже не нaдо. Все должно работать автоматически. Естественно, в настройках самого приложения надо включить опцию использования трея.

Как показывает практика, лучше устанавливать Скайп из партнерского репозитория, а не с сайта самого Скайпа. Во-первых, добавляя репозиторий, мы имеем автоматические обновления, а во-вторых, почему-то именно версия из репозитория корректно работает с треем. Для установки надо:
  1. Удалить Скайп, если он уже установлен (естественно закрыв саму программу перед этим);
  2. Добавить партнерский репозиторий;
  3. Установить Скайп.

В терминале это выполняется несколькими командами:

killall skype
sudo apt-get purge skype
sudo apt-add-repository "deb http://archive.canonical.com/ $(lsb_release -sc) partner"
sudo apt-get update
sudo apt-get install skype

Изменяем внешний вид часов

Немного изменим внешний вид часов. По умолчанию апплет отображает только время, мне хотелось бы также день недели и число. Идем в настройки часов (Правая кнопка мыши на апплете, в выпадающем меню выбираем «настройки времени и даты») и выставим соответствующие «галочки». Ну вот - совсем другое дело. Но есть один неприятный момент: цифры сливаются, нету четкого разделения между днем недели, датой и временем, как это было в 10.04. Но и это лечится. Для этого нам понадобится редактор конфигурации dconf-editor (не путайте с gconf-editor). Установить можно либо через терминал:

sudo apt-get install dconf-tools

либо через центр приложений. Откроем его и наберем в строке поиска dconf

Нам нужен именно Редактор dconf, а не collect system information

Запускаем редактор (либо через лаунчер, либо набрав в терминале dconf-editor) идём com → canonical → indicator → datetime и изменяем значение time-format на custom, кликнув ЛКМ по local-default в time-format. Далее необходимо отредактировать ячейку custom-time-format согласно Вашим предпочтениям, например, так:


Значения для редактирования можно узнать набрав в терминале:

man strftime

Вот, что у нас получилось:


Меняем индикатор раскладки клавиатуры

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

Значки с флагами стран

Значки с индикаторами языка

Значки надо переименовать в соответствии с раскладкой: для русской - ru.png, для английской - us.png, украинской - ua.png и т.д. Затем, перенести значки в соответствующую папку: /home/Имя пользователя/.icons/flags (для изменения значков одного пользователя) или /usr/share/icons/flags (для изменения значков всех пользователей, нужны права root). Если директорий не существует, создать. После, разрешить системе использовать флаги в индикаторе раскладки. Для этого в терминале нужно выполнить команду:

gsettings set org.gnome.libgnomekbd.indicator show-flags true

Наконец, надо завершить сеанс или перезагрузиться.

Замечания

  • Формат файла должен быть либо .png либо .svg.
  • Желательно подогнать значек под размер трея. Сделать это можно в GIMP или в Inkskape (для .svg). Обе эти программы есть в репозиториях. Экспериментальным путем установлено, что высота значка в 50 пикселей оптимальна.

Убираем апплет смены учетной записи

Если в системе только один пользователь и гостевой сеанс не используется, то апплет смены учетных записей тоже не нужен. Можно убрать и его: запускаем уже знакомый нам редактор конфигурации, идем apps/indicator-session и снимаем галочку с user-show-menu. Перезагружаемся.

Добавляем полезные апплеты

Теперь осталось только добавить несколько полезных апплетов и все будет готово.

Апплет погоды

Из погодных апплетов я предпочитаю My-Weather-Indicator, посколько кроме, собственно, текущей погоды он показывает и прогноз на ближайшие 3 дня. Этого апплета нет в стандартном репозитории Ubuntu, поэтому нам придется добавить его репозиторий. Открываем терминал и вводим:

sudo apt-add-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install my-weather-indicator

Добавить репозиторий и установить программу можно и через Центр программного обеспечения: отрываем Центр, в меню находим Изменения→Источники программного обеспечения, в открывшемся окне, вторая закладка «Другое программное обеспечение», нажимаем на кнопку «Добавить» и вводим ppa:atareao/atareao. Затем в строке поиска Центра приложений вводим my-weather-indicator и устанавливаем его.

Запускаем апплет. Он появляется в трее. Осталось только настроить. ПКМ на апплете Параметры и настраиваем свое расположение (апплет позволяет настроить сразу два), и нe забудьте поставить «галочку» напротив параметра Автозапуск. Кроме текущего состояния погоды, апплет показывает также прогноз на ближайшие 3 дня. Вот что у нас получилось: Апплет в трее: И прогноз на ближайщие 3 дня:

С некоторых пор, для использования сервера World Weather Online (именно он, кроме текущей погоды, дает прогноз на ближайшие 4 дня), нужно зарегистрироваться на сайтеhttp://www.worldweatheronline.com/register.aspx. После регистрации на электронную почту приходит письмо с кодом и ссылкой, на которую надо нажать для активации кода. После активации этот код нужно ввести в настройках программы. Если регистрироваться, по каким-то причинам, не хочется, можно пользоваться сервером Yahoo, но там прогноз только на 1 день.

Апплет датчиков

Терминал:

sudo apt-add-repository ppa:alexmurray/indicator-sensors
sudo apt-get update
sudo apt-get install indicator-sensors

Запускаем. Настраиваем. Смотрим.
Этот апплет сам прописывается в автозагрузку, поэтому больше ничего делать не надо.

Апплет классического меню Gnome2

Специально для любителей Gnome2 добавим апплет классического меню. Итак, открываем терминал:

sudo apt-get install classicmenu-indicator

Запускаем апплет и видим привычное классическое меню.

Индикатор скорости сетевого трафика Indicator Netspeed Unity

В режиме реального времени показывает объем входящего и исходящего трафика.

Также показывает, сколько всего было скачено и отдано данных за текущую сессию.

Установка в терминале:

sudo apt-add-repository ppa:fixnix/netspeed
sudo apt-get update
sudo apt-get install indicator-netspeed-unity

Скачать вручную: здесь.

После установки индикатор можно запустить, значок располагается в главном меню в разделе «Интернет» под именем «Индикатор netspeed-unity». Индикатор при установки прописывается в автозагрузку, поэтому после перезагрузки запускается сам.

Индикатор Keylock

Индикатор Keylock — это очень полезная утилита, если у вашей клавиатуры или ноутбука нет лампочек, оповещающих о том, что клавиши Num/Caps/Scroll Lock включены или выключены. Она также отображает оповещения, когда какие-либо кнопки включаются или выключаются. Также среди клавиш Num/Caps/Scroll Lock можно выбрать одну, состояние которой будет отображаться на панели на иконке индикатора.

sudo apt-get install indicator-keylock

Индикатор System Monitor

Этот индикатор отображает использование центрального процессора и памяти на панели. Также через него вы можете получить доступ к системному монитору.

sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor
sudo apt-get update
sudo apt-get install indicator-sysmonitor

Системный трэй для Ubuntu 14.04 и выше - Indicator Systemtray Unity

Индикатор, при нажатии на который появляется трэй.

Также есть режим отображения «отдельно от индикатора» - поверх панели на подобии дока. В этом режиме - положение по горизонтали можно менять - крутя колёсиком мыши над значком индикатора. Режимы отображения можно менять нажатием средней кнопки мыши (у ноутбука: одновременно нажатием левой и правой клавиши тачпада) над значком индикатора.

Установка в терминале:

sudo apt-add-repository ppa:fixnix/indicator-systemtray-unity
sudo apt-get update
sudo apt-get install indicator-systemtray-unity

Затем необходимо завершить сеанс и снова зайти под своим пользователем.

Для удаления использовать команду:

sudo apt-get --purge remove indicator-systemtray-unity

Другие апплеты

Вот здесь и здесь есть еще очень много полезных апплетов.

Меняем апплеты местами

Вот что у нас получилось после всех наших манипуляций: Все апплеты на месте, но все немного перемешано. Давайте приведем это в порядок. К сожалению, в Юнити убрали возможность простого перетаскивания апплетов мышкой. (Также нельзя изменять положение системных апплетов. Так что переместить апплеты сессии, даты-времени и т.п. не получится.) Для изменения порядка, нам нужно, просто, отредактировать файл /usr/share/indicator-application/ordering-override.keyfile. Итак, отрываем терминал (Ctrl+Alt+T, надеюсь, еще не забыли) и вводим:

sudo gedit /usr/share/indicator-application/ordering-override.keyfile

И приводим его к следующему виду:

[Ordering Index Overrides]
nm-applet=1
gnome-power-manager=2
ibus=3
classicmenu-indicator=4
gst-keyboard-xkb=5
gsd-keyboard-xkb=6
indicator-sensors=7
my-weather-indicator=8
skype=9

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

Таким образом мы поменяем порядок для всех пользователей в системе. Если нужно поменять только для какого-то одного (или выставить каждому свой), то вышеназванный файл надо скопировать в ~/.local/share/indicators/application/ordering-override.keyfile и править его.

Вот что у нас получилось:

Заметьте, порядок апплетов в трее несколько отличается от заданного нами в файле (апплет датчиков находится правее апплета клавиатуры). Изменить этот порядок никакими обходными способами у меня не получилось. Поэтому отнесу это к глюку системы и будем ждать обновлений. Пока использовал версию Скайпа с оффициального сайта, наблюдались проблемы со значком, который пропадал с панели после перезагрузки или смены пользователя. Помогает убить процесс и запустить заново, или, что еще лучше, установить из партнерского репозитория, как уже было сказано выше. Также еще не знаю, как можно добавить разделители между апплетами. Буду искать.

Убираем индикатор раскладки клавиатуры

Не точно! Нужно проверить! После выполнения действий, описанных в данном руководстве, наблюдаются проблемы со значком трея skype- он так же перестаёт отображаться.

Для того, что бы полностью убрать стандартный индикатор раскладки клавиатуры (иконку клавиатуры и обозначение текущей ракладки) необходимо изменить один бит в библиотеке libkeyboard.so, которая лежит:

  • для Ubuntu старее 11.04 по пути
    /usr/lib/gnome-settings-daemon-2.0/libkeyboard.so

  • для Ubuntu 11.04 и новее по пути

    /usr/lib/gnome-settings-daemon-3.0/libkeyboard.so

Делаем резервную копию файла:

sudo cp /usr/lib/gnome-settings-daemon-3.0/libkeyboard.so /usr/lib/gnome-settings-daemon-3.0/libkeyboard.so.bak

Открываем файл на редактирование любым HEX-редактором1)

sudo bless /usr/lib/gnome-settings-daemon-3.0/libkeyboard.so

Ищем кусок кода

FF 83 F8 01 0F

и меняем 01 на 02, должно получится так: Сохраняем файл и перезаходим в сессию.

Значок не будет отображаться, если у вас меньше 3 вариантов раскладки клавиатуры.

Старый способ (для ubuntu 10.04)

Выполните в терминале команду:

gconftool-2 -s /desktop/gnome/peripherals/keyboard/general/disable_indicator -t bool true

Или воспользуйтесь Редактором Конфигурации GNOME:

gconf-editor

В нем перейдите desktop → gnome → peripherals → keyboard → general и отметьте галочкой ключ disable_indicator.

Если данный ключ не существует, его нужно создать. Для этого в контекстном меню выберите пункт «Создать ключ» и введите следующие параметры:

Ссылки

1) например bless