Итак, пару слов про графические оболочки. Строго говоря, если бы основная тема была бы про линуксы, то начинать ее следовало бы с другого. Например, с истории создания, первых дистрибутивов, деревьев дистрибутивов и и.д., и т.п.
Однако в нашей основной теме линукс хоть и занимает важное место, но не первостепенное. Поэтому в рамках теме про линуксы в первую очередь будут размещаться публикации, которые:
- либо позволяют более подробно рассмотреть важные нюансы, затронутые в публикациях по основной теме;
- либо рассматривают нюансы, которые будут затронуты в ближайших публикациях по основной теме, информацию по которым лучше знать заранее.
Также будут высоко приоритетные «вбоквелы». Например, уже обозначенная в планах тема по обзору функциональности ПО «ProjectLibre». Высокий приоритет связан с тем, что данное ПО будет является непосредственно одним из компонентов комплексного продукта по управлению проектами.
Но вернемся все же к графическим оболочкам.
Линукс без установленной графической оболочки (на примере Ubuntu Server)
Итак, у многих людей, особенно далеких от темы ИТ, Линукс ассоциируется в первую очередь именно с терминалом (или как я его называю «черный экран страха пользователя» :)).
Действительно, если установить, например, Ubuntu Server, то единственным интерфейсом на входе является терминал:
Тем не менее:
- Есть дистрибутивы, в которых установка графической оболочки предусмотрена уже на этапе установки самого дистрибутива (например, рассмотренные в более ранних публикациях Linux Mint (ссылка) и Debian (ссылка), но далеко не ограничиваясь ими);
- При желании можно установить графическую оболочку для тех линуксов (и не только линуксов), для которых она не предусмотрена из дистрибутива. Где-то проще, где-то придется немного повозиться.
Например, для того, чтобы установить на Ubuntu Server те оболочки, которые были инсталлированы нами в ходе установки Linux Mint и Debian, Mate и LXQt (усовершенствованная LXDE) соответственно, достаточно ввести всего 1 команду. Все необходимые компоненты будут «подтянуты» и установлены автоматически.
Установка графической оболочки LXQt
Для установки LXQt нужно ввести команду:
sudo apt install lubuntu-desktop
Далее ждем окончания установки и перезагружаем:
Вводим пароль:
Получаем ubuntu с графической оболочкой LXQt:
Установка графической оболочки Mate
Для установки графической оболочки Mate нужно ввести команду:
sudo apt install ubuntu-mate-desktop
Далее ждем окончания установки и перезагружаем:
Вводим пароль:
Получаем Ubuntu server с графической оболочкой Mate (+1 шаг по русификации - все делается штатными средствами):
Расположение и количество панелей слегка розниться с Linux Mint. Но это при необходимости решается настройками.
Помимо рассмотренных оболочек, ест множество других вариантов - Cinnomon, Xfce, KDE, Gnome, Pantheon, Budgie и другие. Но пока остановимся на 2 вариантах, рассмотренных выше.
Таким образом, при работе с веткой Debian (Debian, Ubuntu, Linux Mint + еще порядка 200 активных дистрибутивов Linux) не наблюдается ни сложности с установкой самих дистрибутивов, ни сложностей с установкой графических оболочек (в случае необходимости).
Вопрос надо ли устанавливать графическую оболочку на сервер - это другой вопрос. Во-первых, может снизится один из важнейших показателей сервера - время без перезагрузки, поскольку в обоих случаях устанавливается около 1400 дополнительных пакетов, а значит возрастает количество точек отказа. Во-вторых, потенциально увеличивается количество точек уязвимости сервера. Аргумент же с увеличением количеством потребляемых ресурсов в настоящее время считаю несущественным (примерно +0,5-1 Гб ОЗУ, +3-4 Гб дискового пространства).
Псевдографические инструменты
Кроме того, есть варианты консольных утилит, которые могут обеспечить работу с ОС в псевдографическом режиме. Например, Midnight commander. Если вы застали времена MS DOS, то наверняка использовали Norton Commander. Для Windows в свое время была очень популярна программы Far и Total commander. Так вот, Midnigth commander - из этой же серии, в ближайшее время рассмотрим ее в отдельной публикации. Приложение выглядит так:
Разумеется не со всеми дистрибутивами все так же просто. Иногда требуется ставить оболочку «по компонентам» и прописывать параметры в конфигурационные файлы.Да и установить основной дистрибутив бывает не так просто установить...
Более сложные варианты рассматривать пока не будем (по крайней мере в ближайшие пару-тройку месяцев). Однако рассмотрим основные компоненты графических оболочек.
Основные компоненты графических оболочек Linux
Дисплейный сервер (Display Server)
Основное назначение - обеспечить взаимодействие между клиентом (по-сути, это любая программа, использующая графический режим работы видеокарты) с ядром ОС Linux.
Основная реализация - Xorg сервер, взаимодействующий с клиентами (т.е. с графическими программами) по протоколу X11.
Несмотря на то, что к настоящему времени считается устаревшим, является, данная реализация является стандартом в мире Linux. Многие смотрят «в сторону» перехода на более новый протокол Wayland, тем не менее в большинстве дистрибутивов Linux по умолчанию используются X11 в реализации Xorg.
Ранее мы устанавливали Linux Mint и Debian (ссылки на публикации даны выше). Давайте проверим, какой протокол и какая его реализация там используется.
Для получения информации по протоколу следует ввести в терминал (правильнее говорить - в эмулятор терминала, но не суть) следующую команду:
echo $XDG_SESSION_TYPE
Для получения информации по установленному X-серверу, в терминал следует ввести команду:
dpkg - l | grep xserver-xorg-core
В результате Linux Mint выдаст следующую информацию:
Схожую информацию выдаст и Debian:
Как видно в обоих случаях в изначальной установке используется Xorg.
Дисплейный менеджер(Display Manager)
Обеспечивает пользователю графический экран входа для запуска графического сеанса:
- позволяет ввести данные для авторизации, передает введенные данные в ОС, отображает результаты (т.е. либо осуществляет дальнейшую загрузки, либо оповещает о неверном вводе логина/пароля);
- загружает Дисплейный сервер и графическую оболочку (Display Environment);
- если в ОС установлено несколько графических оболочек - позволяет выбрать, какую именно требуется загрузить после авторизации;
- отображает (и позволяет переключить) текущую раскладку клавиатуры;
- позволяет вызвать ряд сервисов на экране входа, например, вызвать экранную клавиатуру, экранный диктор, сделать высококонтрастное отображение, увеличить размер шрифта и др. (в зависимости от дистрибутива один и тот же DM может иметь разный набор сервисов).
Просмотр информации об используемом дисплейном менеджере
Давайте посмотрим, какой дисплейный менеджер используется в установленных ранее ОС. Для этого в терминал следует ввести команду:
systemctl status display-manager.service
В результате Linux Mint выдаст:
Debian выдаст:
Таким образом в обоих ОС используется Light Display Manager (или lightdm).
Соответственно, если по каким-либо причинам lightdm вас не устраивает, есть возможность его сменить. Вопрос «Зачем?» в данном случае оставляем за скобками, но вообще-то прежде чем что-либо менять, крайне не лишним будет его задать хотя бы самому себе до изменений и сформулировать на него четкий ответ. Кроме того, результат установки может быть несколько непредсказуем, поэтому прежде чем тянуть изменения на рабочую машину, неплохо в начале протестировать эти изменения, например, на ОС, развернутой на виртуалке.
Давайте в качестве примера заменим:
- в Debian (LXDE) lightdm на SDDM (Simple Desktop Display Manager);
- в Linux Mint (Mate) - на GDM (Gnome Display Manager).
Замена дисплейного менеджера в Debian на SDDM
Открываем Debian, запускаем терминал, вводим команду:
sudo apt install sddm -y
В процессе установки система задаст вопрос «Какой DM использовать по-умолчанию?». Выбрать sddm (курсорными клавишами на клавиатуре) и нажать Enter.
Ждем окончания установки и перезагружаем компьютер, после перезагрузки первое изменение, которые мы увидим - другой экран входа в систему:
Как было видно из процесса установки, установилась подозрительно много пакетов. А все потому что по окончанию установки вы будете «счастливым обладателем» не только SDDM, но и графической оболочки KDE Plasma, и дисплейного сервера, использующего протокол Wayland. В этом, конечно, нет ничего плохого, только корректнее было бы позволить пользователю выбрать, что из этого всего добра ставить, а что - нет.
Короче говоря, теперь у нас появилось куча незапланированных вариантов:
Выберем вариант LXDE и посмотрим какой дисплейный сервер и дисплейный менеджер активен в системе:
Как говорится, спасибо, что принудительно не оставили только Wayland.
Теперь давайте выберем на экране загрузки ОС вариант «Plasma (Wayland)» и посмотрим параметры:
Как видно, в установках сменился не только дисплейный менеджер, но и дисплейный сервер.
Замена дисплейного менеджера в Linux Mint на GDM
Теперь давайте поменяем lightdm на gdm в нашей инсталляции Linux Mint (Mate). Для этого введем в терминале следующую команду:
sudo apt install gdm -y
В процессе установки система задаст вопрос «Какой DM использовать по-умолчанию?». Выбрать gdm (курсорными клавишами на клавиатуре) и нажать Enter.
Ждем окончания установки и перезагружаем компьютер, после перезагрузки мы также увидим, что экран входа в систему изменился:
Надо кликнуть по иконке пользователя и ввести пароль:
И тут нас будет поджидать очередной сюрприз. Дело в том, что если в случае с SDDM автоматически будет загружена графическая оболочка KDE Plasma, которая в плане визуализации похожа на Mate (да и на более привычный в основной массе графический интерфейс Windows), то при установке GDM автоматически будет загружена графическая оболочка Gnome 3. А она имеет имеет абсолютно другую визуальную концепцию. Более того, если в случае с SDDM на экране будет подсказка о смене графической оболочке(хоть и в углу экрана), то здесь - шестеренка, которая ассоциируется скорее с системным настройками, чем с переключением визуализации. В общем если загрузиться c графической оболочкой по-умолчанию, то увидим следующий интерфейс:
Давайте, посмотрим какой дисплейный сервер и дисплейный менеджер сейчас активен в загруженной ОС:
То есть Wayland и gdm.
Давайте выберем исходную графическую оболочку (Mate), которую мы не планировали менять при установке другого дисплейного менеджера. Для этого нужно перезагрузиться:
После перезагрузки кликаем по имени пользователя, далее жмем на шестеренку, выбираем «Mate», вводим пароль, жмем Enter, ждем загрузки:
В результате видим исходный интерфейс графической оболочки Mate. Открываем терминал, вводим уже известные команды:
Результат - Xorg и GDM.
Замена дисплейного менеджера в Debian на SLiM
И тут в пору задать вопрос - а есть ли возможность поменять DM того, чтобы туда не затянулась графическая система в целом (а дисплейный сервер + дисплейный менеджер + графическая оболочка - это и есть собственно графическая система ОС)?
Во-первых, да можно, но не так просто (уж во всяком случае не одной командой). Во-вторых, есть и такие DM, которые поставить достаточно просто, при этом они не потянут за собой все остальные компоненты. Первый вариант мы пока трогать не будем, а вот в качестве примера во второму варианту давайте установим SLiM (Simple Login Manager).
Для установки возьмем исходную машины с Debian (LXDE) запускаем терминал, вводим команду:
sudo apt install slim -y
В процессе установки система задаст вопрос «Какой DM использовать по-умолчанию?». Выбрать slim (курсорными клавишами на клавиатуре) и нажать Enter:
Ждем окончания установки, по скорости завершения установки сразу понятно, что в данном случае был установлен только SLiM и ничего более. По окончании установки нужно перезагрузить компьютер. И вот экран входа SLiM. Вводим сначала логин:
Затем - пароль:
Проверяем, что установлено в системе теми же командами, которые использовали для этого ранее:
И вот, наконец, ожидаемый результат - запустил команду установки DM SLiM, установился только DM SLiM и ничего более.
Графическая оболочка (Display Environment)
Третий компонент - это собственно графическая оболочка (Display Environment). Все графические элементы (окна, панели, меню и д.р.), их обработка их взаимодействия, курсор мыши, оформление рабочего стола и сам рабочий стол, настройки - все это элементы графической оболочки (кроме окна входа в систему - это элемент дисплейного менеджера). Давайте проведем поэлементный обзор в разрезе тех ОС, установку которых мы рассматривали ранее (Debian LXDE и Linux Mint Mate).
Оконный менеджер (Window manager)
Оконный менеджер (Window manager) - как и следует из названия, является ПО для оформления окон приложений и обработки событий связанных с окнами приложений (отображение, перемещение, изменение размера, закрытия). Одни оконные менеджеры работают только с окнами, другие могут работать с панелями, эффектами и другими элементами графической оболочки. Чаще всего могут работать без запуска графической оболочки (само-собой дисплейный сервер должен быть предварительно запущен).
Просмотр информации об оконном менеджере в Debian (LXDE)
В LXDE (в нашей инсталляции Debian) используется openbox. Для того, чтобы убедиться в этом, установим утилиту wmctrl (в Linux Mint данная утилита уже установлена, а в Debian - нет, но содержится в репозитариях). Для этого в терминале вводим:
sudo apt install wmctrl:
После установки утилиты нужно ввести следующую команду:
wmctrl -m | grep «Name»
Настройки и управление эффектами осуществляется через приложение Obconf. Запустить приложение можно из главного меню («Параметры» --> «Менеджер настройки Openbox»):
Данный оконный менеджер может быть запущен отдельно от прочих элементов графической оболочки. Запустим и посмотрим.
На экране входа в систему надо нажать на иконку документа с ключом, в открывшемся меню - выбрать вариант «Openbox», далее вводим логин и пароль и загружаемся:
После загрузки перед нами предстает пустой рабочий стол. Нет панели, ни ярлыков. Если кликнуть правой копкой мыши по рабочему столу, то на экране появится контекстное меню, но пункты будут отличается от аналогичного, если мы данную операцию сделали в LXDE.
Перечень пунктов контекстного меню Openbox:
Для сравнения - перечень пунктов контекстного меню LXDE:
И по большому счету, за исключением некоторых неудобств, при необходимости можно полноценно работать исключительно под Openbox без прочих элементов LXDE.
Нужен проводник - пожалуйста:
Нужен интернет - не проблема:
Нужны офисные приложения - вопросов нет:
И даже если нужна панель, то вывести ее на экран вполне возможно. Для этого надо открыть терминал, ввести в него lxpanel . Внизу экрана появится панель (правда, если терминал закрыть, то панель тоже и панель тоже исчезнет):
Вопрос «А зачем это делать, если есть полноценная графическая оболочка» оставим за скобками.
Замена оконного менеджера а Debian (LXDE)
По нашей доброй традиции, давайте сменим оконный менеджер в Debian LXDE.
Перезагружаем Debian, заходим в LXDE, открываем терминал, набираем команду:
sudo apt install compiz -y
По окончании установки запускаем «Настройки сессии рабочего стола» (главное меню --> «Параметры»), переходим на закладку «Расширенные параметры», прописываем вместо «openbox-lxde» - «compiz», жмем кнопку «ОК»:
Перезагружаемся, проверяем, какой оконный менеджер используется в нашей ОС (требуется предварительно установить утилиту wmctrl, для установки нужно выполнить команду: sudo apt install wmctrl ):
Как видно из скриншота, оконный менеджер сменился на compiz. Кроме того есть и визуальные изменения:
- обратите внимание на заголовок окна и сравните с предыдущими скриншотами;
- к сожалению, в публикации не передать, но изменились эффекты элементов графической оболочки, например, открытие меню, сворачивание / разворачивание окон и т.д. (самый удобный способ - развернуть 2 виртуалки с Debian LXDE, одну оставить «как есть», на другую - поставить compiz, а далее сравнивать эффекты).
Для управления эффектами compiz используется приложение CCSM, при установке compiz устанавливается автоматически. В меню данное приложение называется «Менеджер настройки CompizConfig» (в «Параметрах»):
Соответственно, в данном приложении можно настроить различные эффекты для элементов графической оболочки.
Просмотр информации об оконном менеджере в Linux Mint (Mate)
В Mate (в нашей инсталляции Linux Mint) в качестве оконного менеджера используется Marco. Удостовериться можно, выполнив команду:
wmctrl -m | grep «Name»
Кроме того «из коробки» дополнительно доступны Metacity и Compiz. Также в системе уже установлен CCSM для управления эффектами Compiz:
Marco, в отличии от Openbox, не предназначен для запуска без графической оболочки, равно как Metacity и Compiz.
По настройкам. Есть программа для настройки окон («Параметры» --> «Окна»):
Выбираемые параметры распределены по 3 закладкам: Отдельно следует обратить внимание на закладку «Композитный диспетчер окон»(см. точку 7). На этой закладке всего 1 активный элемент - галка «Включить программный композитинг». Если оконный менеджер является одновременно композитором, то для эффектов отображения, обеспечиваемых композиторов, данная галка должна быть включена:
Если используются эффекты другого композитора, то наличие этой галки значения не имеет.
Для выбора оконного менеджера и варианта его использования нужно открыть настройки рабочего стола в главном меню («Параметры» --> «Настройка рабочего стола»), в открытом окне выбрать «Окна», а в списке справа выбрать оконный менеджер и вариант его использования:
Соответственно надо выбрать один из вариантов. Причем тут есть особенности:
- варианты «Marco» и «Metacity» - использование оконных менеджеров без программного композинга.
- варианты «Marco + Композитинг» и «Metacity + Композитинг» - использование указанных оконных менеджеров с программным композитингом встроенного композитора. При этом для варианта «Marco + композинг» можно выключить программный композинг в приложении «Окна» (см.выше), а для варианта «Metacity + Композитинг» - галка не снимается.
- варианты «Marco + Compton» и «Metacity + Compton» - оконные менеджеры не предоставляют эффекты композитинга, эта функция ложится на композитор Compton.
- вариант «Compiz» - использование оконного менеджера и встроенного в него композитора. При этом если после переключения вызвать программу «Окна», то она выдаст сообщение о том, что она не работает с параметрами данного оконного менеджера.
Если вы планируете использовать связку «оконный менеджер» + «Compton», то можно установить удобную утилиту «Эффекты окна». Для этого в терминале следует ввести:
sudo apt install compton-conf
После установки ее можно открыть через главное меню («Параметры» --> «Эффекты окна»):
Соответственно, возможные эффекты сгруппированы по 4-м закладкам: тень (5), непрозрачность (6), затухание (7), прочее (8).
После конфигурирования эффектов надо:
- кликнуть кнопку «Установить» (9) - изменится конфигурация, но не применится к системе;
- для применения эффекта можно, например, в приложении «Настройки рабочего стола» сначала выбрать другой вариант оконного менеджера, а затем выбрать исходный вариант.
После этого изменения эффектов применятся к ОС.
Замена оконного менеджера и композитора в Linux Mint
По славной традиции данной публикации давайте установим дополнительно 1 вариант оконного менеджера и 1 вариант композитора. После этого посмотрим, как их применить к системе, а в завершении раздела - посмотрим одну интересную утилиту.
Итак, установим оконный менеджер Openbox и композитор Picom, а также программу для управления эффектами композитора Picom. Для этого нужно в терминал ввести команду:
sudo apt install openbox picom picom-conf
Далее переходим в приложение «Настройки рабочего стола» и смотрим какие варианты оконных менеджеров появились:
Как видно из скриншота, появилось 5 дополнительных вариантов:
- Marco + Picom
- Metacity + Picom
- Openbox
- Openbox + Compton
- Openbox + Picom
То есть все вновь устанавливаемые оконные менеджеры автоматически комбинируются с имеющимися и вновь установленными композиторами (в связке с которыми они могут работать). Ну а для выбора варианта нужно его просто выбрать, он применится автоматически.
Кроме того, появилась программа для управления эффектами композитора Picom, которая тоже называется «Эффекты окна» («Параметры» --> «Эффекты окна»):
Работает так же, как и программа для управления эффектами композитора Compton (выбрать эффекты, применить, перечитать).
Также в завершении раздела давайте рассмотрим консольную утилиту inxi, с помощью которой можно быстро понять, какой композитор используется в системе, а также понять, есть ли функции композитора в оконном менеджере.
Итак, давайте в «Настройках рабочего стола» качестве оконного менеджера выберем вариант «Openbox»:
Как видно, терминал не выдал никакой информации. Это потому, что Openbox является «чистым» оконным менеджером и не поддерживает композинг.
Теперь давайте выберем вариант «Marco» и запустим нашу команду:
Соответственно, терминал выдает информацию, что в системе используется композитор Marco, без привязки к тому, разрешены ли функции композинга в ОС или нет.
Сделаем 3-ий вариант. Выберем в «Настройках рабочего стола» вариант «Metacity + Compton» и введем команду в терминал:
И терминал выдает информацию, что в ОС задействованы 2 композитора - Compton и Metacity. При этом утилита не знает, какой из них выполняет функцию оконного менеджера, а какой - функцию композитора.
В виду ограничений по количеству графических материалов статью пришлось разбить на 2 части. Окончание - в следующей статье.