Добавляем лончеры в Ubuntu

Не всем нравится интерфейс Unity рабочего стола Ubuntu: при добавлении значков в лончер значительно снижается его «откликабельность», а вместе с ней и удобство. Из-за этого недостатка кто-то устанавливает плохо настраиваемые костыли вроде gnome-panel или ClassicMenu Indicator или добавляет на рабочий стол настраиваемые докбары. Последние – неплохое решение, но, начиная со средненького 2-х-ядерника и хуже, навороченные докбары своей неповоротливостью больше мешают, чем помогают. Вот и отказывается народ от Ubuntu, переходя на другие сборки. Не спешите делать это! Проще кое-что позаимствовать из других сборок впридачу к Unity, не отягощая систему.

Давным-давно, для минималистского оконного менеджера openbox3 была разработана чрезвычайно лёгкая настраиваемая панель tint2. Оказывается, эта панель вписывается практически в любую популярную сборку Линукса. Поначалу она не обладала лончером, но теперь он есть. Им-то и воспользуемся, остальное можно выбросить. Менеджер панели имеется в репозиториях Ubuntu и устанавливается командой

sudo apt-get install tint2

Сразу после установки в папке /.config появляется папка tint2, содержащая файл конфигурации tint2rc. Откройте его любым редактором. «Что есть что» можно почитать здесь.

Поначалу в дефолтном конфигфайле панели tint2, установленной из репозиториев Ubuntu, нет места лончеру. Но его можно создать. Для этого в секцию Panel дописываем примерно следующее:

panel_items = LTSBC

launcher_icon_theme = Faenza

launcher_padding = 4 2 2

launcher_background_id = 0

launcher_icon_size = 24

Здесь переменная panel_items кодирует наличие элементов панели:

L – лончер,

T – таскбар (задачи),

S – системный трей,

B – индикатор батареи,

С – часы.

Элементы T,S,B,C можно исключить, как присутствующие по умолчанию, да и лишние для нашей цели. Системный трей на панели tint2 отображаться не будет, так как Ubuntu уже имеет собственный трей.

Сначала оформляем геометрию панели. Рассказывать об этом не имеет смысла, поскольку это достаточно подробно изложено по вышеприведенной ссылке. Далее добавляем значки в лончер, дописывая строки с путями к файлам-пускачам, имеющим расширение .desktop. Например:

launcher_item_app = /usr/share/applications/brasero.desktop

launcher_item_app = /usr/share/applications/skype.desktop

launcher_item_app = /usr/share/applications/marlin.desktop

И т.д. Каждый значок – это текстовый файл c расширением .desktop. Так принято. Но есть одна тонкость. Если вы собственноручно сделали на рабочем столе свой особый значок или создали его с помощью фоггера, то файл значка следует скопировать в папку /usr/share/applications командой

sudo cp ~/'Рабочий стол'/имя_значка.desktop' /usr/share/applications

А чтобы этот значок появился на панели tint2 необходимо подредактировать файл /usr/share/applications/имя_значка.desktop в части параметра Icon. Этому параметру через знак равенства надо присвоить без расширения имя файла изображения значка, который должен находиться в папке usr/share/icons/Faenza/apps/24. Ветвь темы в пути может быть и не Faenza, если в конфигфайле панели параметр launcher_icon_theme оговаривает другую установленную тему. Также и ветвь 24 может быть другой, если в этом же конфигфайле параметр launcher_icon_size оговаривает размер значка не 24x24. Главное, чтобы нужная папка соответствовала нужной теме и содержала значок нужного размера, иначе утилита tint2 или не сможет найти и отобразить его, или исказит. Кроме того, такая «хитрость» заставляет самодельные значки отображаться в даше при поисках по названию, прежнему использованию и т.д.

Как при необходимости сделать красивый значок? Я для этого использую приложение inkscape, делаю квадратный рисунок, сохраняю в формате png, потом генерирую миниатюру командой

mogrify -thumbnail размер имя_рисунка.png

Размер здесь указывается, как SIZExSIZE, например, 24x24. Миниатюру надо скопировать в папку с выбранной темой и в соответствии с размером. Чтобы команда mogrify работала, надо установить инструментарий imagemagick, он есть в репозиториях Ubuntu.

Вот мы и подошли к тому, ради чего затевалось написание статьи. Идея в том, чтобы по мере надобности горячими клавишами или жестами можно было включать экране разные панели, описываемые разными конфигфайлами, содержащими разные лончеры. Приложение tint2 специально для этого заточено. Например, команда

tint2 -c ~/.config/tint2/tint2rc_0

включит на экране панель, которая описывается конфигфайлом tint2rc_0 и никаким другим, а команда

tint2 -c ~/.config/tint2/tint2rc_1

включит панель, описываемую файлом tint2rc_1. И т.д. Чтобы команды срабатывали одновременно, а не enter-поочередно, в скрипте их нужно объединить оператором &:

#!/bin/bash

tint2 -c ~/.config/tint2/tint2rc_0 & tint2 -c ~/.config/tint2/tint2rc_1

Сохраните скрипт под каким-нибудь именем в домашней папке и дайте ему права на выполнение. Скрипт запускается командой

/home/имя_пользователя/имя_скрипта

Можно сделать несколько скриптов для разных наборов лончеров. Разумеется, разные пользователи могут иметь разные наборы значков.

Выключаются все лончеры командой

killall tint2

Скрипты можно усложнить проверкой на наличие уже работающих лончеров. Кто желает поупражняться в написании скриптов – пожалуйста, есть поле для творчества. Но можно и без этого. И очень надеюсь, что читатель уже умеет связывать команды с горячими клавишами или жестами. Если нет – пожалуйста, спрашивайте или ищите сами, как это делается.

Описанным способом можно строить лончеры практически для любого оконного менеджера. Получается примерно, как на этом фрагменте экрана:


Вы сможете так же легко сделать то же в Windows? Сомневаюсь.

Успехов!

Версия для печатиВерсия для печати

Рубрики: 

  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 0
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

Страницы

Аватар пользователя mike

"Вы сможете так же легко сделать то же в Windows?" - Правая кнопка мышки - "Закрепить на панели задач". И всё! В чём проблема?

Проблемы нет, если напишешь, как в Windows (независимо от версии)  сделать несколько управляемых НЕЗАВИСИМЫХ лончеров, разделённых тематически и по разным столам.

Аватар пользователя Al

Да мне абсолютно полностью хватает дома и на работе одного рабочего стола и одной панели задач. А решать задачи ради самого процесса решния задачи - зачем? Тем, кому это надо - пусть делают. Однако, позволю себе предположить, что если бы это было востребовано хоть каким-нибудь достаточно значимым количеством пользователей винды, то это было бы уже реализовано  на уровне системы самой виндой. Нет спроса - нет предложения.

Аватар пользователя mike

Мне абсолютно полностью хватает дома и на работе одного рабочего стола и одной панели задач.

Охотно верю. Значит, эта статья не для тебя. Ну, а мне не хватает. Нередко для моих проектов (кстати,  скромных и не программистских, а по промавтоматике) одного рабстола и монитора мало. И не только мне.

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

Спрос есть. Поэтому в Windows можно подключать более одного монитора к компу. Но Windows была разработана для массового пользователя, а для продвинутых -- костыли, позволяющие иметь несколько  рабстолов.  Переключения не такие удобные, как в Линуксе, но скачиваний -- "Вестям" и не снилось. Осталось сделать независимые лончеры, и концепция комнат реализована. Пока Windows архитектурно для этого не очень приспособлена, но я уверен: и это будет.

Аватар пользователя Al

Вот одного монитора быват не хватает. Сейчас на работе 24", и если открыть несколько удалённых компов плюс своя работа - экрана мало. В самом деле - может воставить второй? Видюха позволяет, винда тоже не против...

Аватар пользователя mike

А если бы был второй рабстол, то, возможно, и 2-ой монитор бы не понадобился.

Аватар пользователя Al

Нет, надо работать и контролировать именно одновременно два монитора.

Аватар пользователя mike

Да, 2 моня лучше, чем 1 с двумя столами. А 4 моня ещё лучше. Именно так брокеры и работают.

Страницы