Здравствуй мой уважаемый читатель. Этой статьёй я начну цикл, посвященный построению собственного окружения рабочего стола Linux. Не знаю как вы, но я в детстве очень любил разного рода конструкторы и эту любовь, по всей видимости, перенёс на свои современные увлечения. Мой конструктор сейчас - это операционная система Linux и различные электронные компоненты, собранные в единое целое. Если вам тоже нравится делать всё самому, что-то придумывать и с чем-то разбираться, при этом постоянно развиваясь - милости прошу под кат. Итак, приступим.
Прежде всего обозначим цели и задачи. Мы будем строить свой собственный рабочий стол, используя различные готовые программные компоненты. Весь комплект на выходе должен быть лёгким, красивым и функциональным. Linux предлагает нам многочисленные варианты решения одной и той же задачи, вот этим-то многообразием мы и воспользуемся.
Для начала пара слов о том, из каких компонентов состоит то, что мы называем рабочим столом. Базовый функционал работы с окнами (и не только, но сейчас это не важно) предоставляет X server или идущий ему на смену Wayland. Он непосредственно взаимодействует с аппаратной частью (видеокартой) через соответствующие модули (или драйвера). Поверх него работает менеджер окон. От этого компонента зависит то, как будут выглядеть сами окна, их границы, заголовки и декорации. Следующий компонент - композитный менеджер. Он отвечает за прозрачность и тени. Все элементы рабочего стола являются приложениями, запущенными в собственных окнах но не обычных, а с определенными атрибутами. И это логично. Ну зачем, скажите, какой-то панели, виджету или доку нужны декорации окна? Да, вы сделали правильный вывод, окна бывают разные ;-)
Все компоненты могут иметь очень разные возможности и, в следствии этого, отличаются аппетитом к ресурсам компьютера, в частности к количеству памяти, производительности процессора и видеокарты. Также на их аппетит влияет включение и выключение различных функций.
Итак, первым в нашем творении компонентом будет менеджер окон. Одним из самых лёгких и гибких в настройке является OpenBox. Его мы и будем использовать. Не важно какой дистрибутив Linux вы используете, вы можете установить несколько различных менеджеров окон. Для Debian - подобных дистрибутивов для установки OpenBox выполним команду:
sudo apt install openbox
Далее делаем logout из вашего текущего окружения, в меню приветствия вводим логин с паролем и выбираем тип сессии openbox.
Что мы видим? Да, серый экран и ничего более. Тем не менее этим сверхминималистичным окружением уже можно пользоваться. Нажимаем правую кнопку мышки в любом месте экрана и видим меню с базовым набором пунктов. Находим в этом меню терминал и запускаем. Отлично, теперь у нас есть нужный инструмент. Для удобства работы в терминале я использую консольный файловый менеджер Midnight Commander, что и вам рекомендую. Установить его можно командой
sudo apt install mc
в терминале набираем команду
mc
В результате будет запущен файловый менеджер. Смотрим на наш домашний каталог. Нас интересует папка .config. В основном все приложения хранят свои настройки в этой папке, в том числе и openbox. Используя стрелки курсора на клавиатуре переместим курсор Midnight Commander на папку .config и нажмём клавишу ENTER. Мы вошли в каталог и попутно начали учиться использовать файловый менеджер mc (если, конечно, раньше не умели. К стати, он очень похож на FAR в Windows). Теперь перейдём в каталог с именем openbox. Это будет одна из самых используемых нами директорий. Внутри каталога мы видим файл с именем rc.xml. Это и есть конфигурационный файл, в котором openbox хранит свои настройки. Его можно править вручную, но пока мы этого делать не будем, так как у нас есть графическая утилита для конфигурирования openbox. Ищем её в меню по правому клику мыши или просто пишем команду в терминале:
obconf
Пока мы находимся в каталоге ~/.config/openbox, сделаем одну полезную вещь, создадим файл автозагрузки с именем autostart.sh. Для этого вводим команду:
touch ~/.config/openbox/autostart.sh
Чуть поясню один момент. Путь, который мы указали в команде touch начинается с символа тильда ( ~ ). Это обозначает домашний каталог текущего пользователя и заменяет собой полный путь вида /home/username.
Ну что же, мы поигрались с настройками менеджера окон, и теперь пора продолжать. Нам нужна какая-то панель со всеми нужными элементами. Давайте посмотри, что нам может предложить сообщество. Да, важный момент, есть панели универсальные, есть доки, а есть и отдельные, специализированные для чего-либо компоненты. Их функционал может несколько пересекаться. Но сейчас мы рассмотрим именно панели, а с доками разберёмся несколько позже.
- tint2 - очень лёгкая и гибкая панель со всем необходимым. Имеет графический конфигуратор, что довольно удобно для выполнения базовой настройки. Пожалуй, это самая популярная панель для лёгких окружений рабочего стола.
- pyPanel - очень простая панель, написанная на Python, имеет базовый набор функций но в принципе самодостаточна. Будет полезна тем, кто хочет поэкспериментировать с кодом и что-то допилить под себя.
- ADeskBar - очень интересная панель и тоже написана на Python. Имеет графический конфигуратор. Написана для использования совместно с OpenBox и другими лёгкими менеджерами окон. К сожалению давно не обновлялась и в последних дистрибутивах есть не разрешенные зависимости, что требует некоторое количество действий руками и головой :)
- LxPanel - панель из проекта LXDE, но её вполне можно использовать как самостоятельное решение.
- Polybar - не совсем панель, но имеет сходный функционал. Автор позиционирует Polybar как специализированное средство отображения статус баров. Отличается широчайшими возможностями кастомизации.
На этом пока остановимся. Желающие могут сами поискать в сети другие панели и их описания. Сейчас же мы установим самую популярную панель tint2 и сделаем базовые настройки. Вводим в терминале:
sudo apt install tint2
И далее запустим панель командой:
tint2 &
Справка: знак амперсанд позволяет запустить команду в бэкграунде, как процесс.
Итак, панель tint2 с настройками по умолчанию запущена. В левой её части вы увидите кнопку запуска графического конфигуратора, который также можно запустить командой:
tint2conf
В этом окне вы можете выбрать базовую тему, а работать непосредственно с её настройками вам позволит соответствующий интерфейс по нажатию кнопки "Редактировать тему".
Я не буду в этой статье рассказывать, как пользоваться конфигуратором, думаю, всё достаточно просто. Во вкладке "Элементы панели" вы создаёте нужные элементы в соответствующем порядке и они появляются как дополнительные вкладки слева в конфигураторе. Например на моём скриншоте это всё, что ниже кнопки "Элементы панели". Если будут вопросы - спрашивайте в комментариях. Сейчас же мы сделаем последний на сегодня шаг, добавим нашу панель в автозагрузку. Переходим в каталог ~/.config/openbox и открываем файл autostart.sh любимым редактором. В Midnight Commander вам нужно встать курсором на файл и нажать клавишу F4. Теперь пишем первой строкой команду
tint2 &
сохраняем файл (F2 в Midnight Commander), завершаем сессию (делаем Logout) или по правому клику мыши в меню выбираем "Restart". После этой процедуры мы увидим нашу панель на рабочем столе.
Поздравляю, вы сделали первые шаги по пути создания своего кастомного окружения рабочего стола. В следующей статье мы рассмотрим панель Polybar и варианты настройки самого рабочего стола, например обои и отображение иконок на рабочем столе.
P.S. Не забываем ставить лайк если статья вам понравилась или была полезной.