- Тайлинговые оконные менеджеры в Linux
- Что такое оконный менеджер?
- Тайлинговые оконные менеджеры
- Популярные тайлинговые оконные менеджеры
- Почему я не использую тайлинговые оконные менеджеры
- i3wm
- Основные особенности
- Компоненты
- Размещение окон
- Конфигурация
- Горячие клавиши
- Установка
- Установка в Ubuntu (LinuxMint)
- Установка в ArchLinux (Manjaro)
- Установка в Fedora
Тайлинговые оконные менеджеры в Linux
Обычные пользователи привыкли к тому, что взаимодействие с системой происходит посредством клавиатуры и мыши. Но среди сообщества Linux есть те, кто считает использование мыши чрезмерным и замедляющим пользователя. Потому они всячески призывают работать только с клавиатуры, а в качестве оболочки для взаимодействия использовать тайлинговые оконные менеджеры. Вещь эта интересная, конечно, но не для всех. Ниже расскажу, что такое тайлинг, какие оконные менеджеры популярны и почему я не хочу их использовать.
Что такое оконный менеджер?
Оконные менеджеры представляют собой программу, которая отвечает за отрисовку, положение и поведение окон в системе. Именно оконный менеджер показывает вам окна, позволяют их сворачивать/разворачивать, открывать/закрывать. Каждая среда рабочего стола, про которые мы говорили ранее, имеет свой оконный менеджер.
Например, GNOME с третьей версии имеет оконный менеджер Mutter (до 3 версии оконным менеджером был Metacity), среда KDE предлагает пользователю менеджер окон kwin, XFCE основан на Xfwm4.
При этом большинство популярных сред рабочего стола потребляют определенную часть системных ресурсов, что не всегда подходит пользователям и они, либо выбирают легковесные среды (например, Lxqt или LXDE), либо используют оконные менеджеры без рабочей среды.
Тайлинговые оконные менеджеры
Суть тайлинговых оконных менеджеров состоит в том, что они разбивают рабочее пространство монитора на прямоугольные непересекающиеся области, именуемые фреймами или тайлами (от англ. frame — рамка или tile — плитка). Каждое запускаемое приложение занимает один такой тайл (фрейм), при этом чаще всего у окна отсутствует привычное оформление (заголовок, полоса прокрутки, кнопки для сворачивания/разворачивания и закрытия и пр.).
Пространство, которое занимает приложение, запущенное через тайлинговый менеджер, меньше пространства среды рабочего стола. Навигация между открытыми приложениями осуществляется при помощи клавиатуры, мышь используется редко. Пользователь сам определяет как будут открываться окна с приложениями — на каком экране (если их несколько), на каком участке рабочего пространства и как оно будет себя вести после открытия.
Популярные тайлинговые оконные менеджеры
Многообразие Linux добралось и сюда, потому количество тайлинговых оконных менеджеров огромно. Самыми популярными являются следующие:
Опять-таки, практически каждый популярный дистрибутив имеет сборку с одним или несколькими тайлинговыми оконными менеджерами. Например, такие сборки имеют Manjaro, Fedora. Мы не будем останавливаться на различиях и особенностях каждого менеджера, так как тогда объем информации будет огромен. Если тематика тайлинга вас заинтересует, то каким-то отдельным менеджерам я посвящу ряд статей.
Почему я не использую тайлинговые оконные менеджеры
Главная причина — необходимость конфигурации и тонкой настройки. После установки системы с тайлинговым оконным менеджером вы получаете просто черный экран, без привычных панелей, системного трея, настроенного поведения окон. Это все нужно конфигурировать вручную, затрачивая на это время. Я пробовал некоторые менеджеры (i3 и bspwm), но необходимость искать информацию только для того, чтобы добавить значок Яндекс Диска на панель или настроить работу Bluetooth меня убивает морально. Потому я лучше выберу какую-либо среду рабочего стола и буду использовать ее.
Несомненно, если потратить достаточное количество времени, то можно превратить системы в «конфетку» и в интернете достаточно скриншотов красиво настроенных и функциональных версии дистрибутивов Linux. Расскажите в комментариях, использовали ли вы тайлинговые оконные менеджеры и если да, то какие. Быть может, вы являетесь активным пользователем тайлинга.
i3wm
i3 (i3wm) — тайлинговый оконный менеджер. Высокая производительность. Настройка через конфигурационные файлы. Широкие возможности управления горячими клавишами.
Основные особенности
- Позиционируется, как оконный менеджер для продвинутых пользователей и разработчиков.
- i3 был написан с нуля. При разработке уделяется внимание чистоте исходного кода и документированию. Каждая новая функция требует документирования.
- Вместо Xlib используется Xcb. Xcb имеет более чистый API и во многих ситуациях работает быстрее, чем Xlib.
- Поддерживается работа с несколькими мониторами. Также поддерживается «горячее» подключение новых устройств вывода и поворот дисплея.
- Используется древовидная система хранения данных, что позволяет создавать более гибкие макеты, по сравнению с другими оконными менеджерами.
- Поддерживаются различные режимы работы. Например, можно использовать разные сочетания клавиш в режиме «resize» и в режиме по умолчанию.
- Реализована поддержка межпроцессного взаимодействия (IPC). Приложения могут подписываться на различные события и принимать команды.
- Поддержка UTF-8.
- Разработчики стараются не усложнять i3 излишними функциями и сосредоточены в первую очередь на исправлении ошибок и поддержке стабильности. Добавление новых функций рассматривается только в том случае, если польза от них явно перевесит дополнительное усложнение «внутренностей» i3. Поэтому, когда это возможно, рекомендуется добавлять новые функции с помощью IPC.
Компоненты
В составе i3 можно выделить следующие компоненты:
- i3 — оконный менеджер.
- i3bar — панель (отображает рабочие столы и строку терминала).
- i3status — строка состояния.
- i3lock — экран блокировки.
- dmenu — меню для запуска программ (команд).
Размещение окон
i3 относится к тайлинговым оконным менеджерам. Также используются понятия — мозаичный, плиточный.
Окна при размещении не перекрываются и располагаются в «табличном» виде.
Для отдельных окон поддерживается «плавающий» режим (Floating mode). Использование данного режима нарушает парадигму тайлинга, но он полезен, например, для различных диалоговых окон или окон панелей инструментов (например, панелей в GIMP). Плавающие окна всегда располагаются поверх плиточных окон. Принудительно перевести окно в «плавающий» режим можно с помощью сочетания клавиш mod+Shift+Space.
Поддерживается создание нескольких рабочих пространств (workspaces). Пространства нумеруются цифрами от 0 до 9.
Поддерживается расположение окон в стек и вкладки.
По умолчанию i3 не использует композитор. Для поддержки размытия, прозрачности и различных визуальных эффектов необходимо установить сторонний композитор, например, Picom.
Конфигурация
Для конфигурации используются текстовые файлы.
Базовая конфигурация (шаблон) расположена в файле: /etc/i3/config
Для задания пользовательских настроек необходимо скопировать /etc/i3/config в ~/.i3/config или ~/.config/i3/config
При первом запуске оконного менеджера i3 открывается диалог с предложением сгенерировать файл конфигурации в ~/.config/i3/config и выбрать клавишу-модификатор mod (Alt или Win).
Горячие клавиши
i3 поддерживает управление с помощью горячих клавиш. Использование мыши необязательно.
Все сочетания горячих клавиш используют базовую клавишу, которая называется mod. По умолчанию mod соответствует клавише Alt. Многие пользователи в качестве базовой клавиши выбирают клавишу Win.
Переназначить горячие клавиши можно через файлы конфигурации.
Ниже приведены некоторые популярные горячие клавиши (mod по умолчанию соответствует клавише Alt):
mod+Enter | Открыть новый Терминал. |
mod+j | Перевести фокус влево. |
mod+k | Перевести фокус вниз. |
mod+l | Перевести фокус вверх. |
mod+; | Перевести фокус вправо. |
mod+a | Перевести фокус на родительскую область. |
mod+Shift+j | Переместить окно влево. |
mod+Shift+k | Переместить окно вниз. |
mod+Shift+l | Переместить окно вверх. |
mod+Shift+; | Переместить окно вправо. |
mod+f | Переключить полноэкранный режим. |
mod+v | Разделить окно по вертикали. |
mod+h | Разделить окно по горизонтали. |
mod+r | Режим изменения размера. |
mod+e | Макет по умолчанию. |
mod+s | Макет Стек. |
mod+w | Макет Вкладки. |
mod+d | Открыть dmenu. |
mod+Shift+q | Закрыть окно (либо kill приложения, если оно не поддерживает события WM_DELETE). |
mod+1, mod+2, . | Переключиться на рабочее пространство (workspace) 1, 2, . |
mod+Shift+1, mod+Shift+2, . | Переместить окно на другой workspace. Если workspace не существует, он будет создан. |
mod+Shift+Space | Перевести окно в Плавающий режим. |
mod+Shift+c | Перезагрузить конфигурационный файл. |
mod+Shift+r | Перезапустить i3. |
mod+Shift+e | Корректно завершить i3. |