Настройка i3WM
В современных графических оболочках концепция тайлига очень сильно недооценивается, примитивный тайлинг есть и в Windows и в таких оболочках как KDE, Gnome, XFce. Но все это лишь частичная поддержка тайлинга. По настоящему тайлинг отлично реализован в таких оконных менеджерах как Awesome, DWM, i3WM. И сегодня как раз поговорим о последнем.
Один из самых легких, удобных и гибких в настройке оконных менеджеров Linux это несомненно i3WM. Львиную долю своей популярности он получил благодаря очень простой настройке, и в этом гайде мы разберем конфиг i3wm с примерами конфигурации оконного менеджера.
Введение
Думаю многие читатели этого поста уже знают что такое динамический оконный менеджер — коим и является i3WM. А те кто не знает — сообщаю, оконные менеджеры (составная часть любого DE) делятся на два типа, стековые (плавающие окна) и фреймовые (окна располагаются мозаикой). А если все это смешать, то получиться гибрид в виде динамических оконных менеджеров, в которых окна могут переключаться из плавающего режима в фреймовый.
Не важно почему вы выбрали именно i3wm среди многих других динамичных оконных менеджеров… Будто простота настройки (в чем вы убедитесь ниже), его легкость по сравнению с другими или же просто по совету более опытного линуксойда. Для начала я предлагаю рассмотреть что мы будем иметь из коробки после установки i3wm:
Теперь давайте разберемся со всем по порядку.
Настройка i3WM
После запуска нас встретит окно выбора mod клавиши. Будет два варианта Meta (windows кнопка) и Alt. После запуска перед собой мы будем видеть только i3bar с запущенным в ней i3status и больше ничего.
Окно выбора Mod клавиши
Теперь давайте проясним для себя то что нам надо

Устройство конфига в i3WM
По умолчанию конфиг i3WM находится в папке
2) Установка переменных. В i3wm можно создать переменные, работает это все как define в C++. На место переменной встанет заданная ей строчка. Переменные можно задать с помощью set.
Переменные удобно использовать создавая блок настроек, дабы потом не бегать по конфигу i3wm и не искать нужный пункт.
3) Комбинации клавиш задаются с помощью bindsym, синтаксис предельно прост
В начале конфига стоит поправить пару строчек на свой вкус :
font pango:xos4 Terminus 8 # Установка шрифта для рамок окна
Этого было бы достаточно если бы не пару проблем с которыми я столкнулся когда пытался настроить некоторые клавиши.
1) Регулировка громкости. Я использую pactl для этих целей, и для работы кнопок +\- и переключения состояния микрофона и звука я использую вот такие бинды
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume 0 +5%
bindsym XF86AudioMute exec pactl set-sink-mute 0 toggle
bindsym XF86AudioMicMute exec pactl set-source-mute alsa_input.pci-0000_00_1b.0.analog-stereo toggle
2) Регулировка яркости. Вообще вряд-ли это будет проблемой, но для того что бы более менее избавить вас от гугления — я просто покажу как это делается
Внешний вид
Рамки окон
Кнопки управления окном в i3wm заменены хоткеями
Цвет рамок окна можно задать по шаблону
Классы окон:
client.focused — окно в фокусе
client.unfocused — окно вне фокуса
client.focused_inactive — окно в фокусе но не активно
client.urgent — окно требует внимания (всплывающее уведомление например)
Пример настройки цвета;
Классы индикаторов рабочих столов:
Примернастройки цветов для i3bar:
Внешний вид приложений
Анимации и VSync
Мы с вами уже условились что для обеспечения красивой анимации будем использовать композитор compton, сейчас я не буду писать про то как надо настраивать его, т.к пост про i3WM а не про compton, просто покажу с чего стоит начать.
Conky
Conky достаточно популярный виджет в мире Linux
/.config/i3/conky_c
Информации по настройке коньков в интернете уйма, от себя добавлю лишь то — что стоит исключить их из обработки теней в compton.
Лаунчер Приложений
Вообще под Linux есть уйма различный лаунчеров, рассмотрим самые популярные.
Вывод
Прочитав этот гайд вы точно сможете настроить оконный менеджер i3WM под себя, и иметь неповторимую среду рабочего стола. Лично от себя могу добавить что именно благодаря знакомству с i3WM я осознал насколько гибок Linux, и что можно работать именно с теми инструментами которые тебе удобны. В этом плане i3WM тебя не ограничивает, надо лишь только посидеть за конфигом.
Настоятельно рекомендую прочесть Официальный гайд
Лучшие оконные менеджеры Linux
Оконные менеджеры Linux используются для управления окнами приложений в системе. Например, когда вы запускаете любое графическое приложение, оно открывает своё окно. Для того, чтобы этим окном можно было двигать и оно выглядело красиво, в фоне работает менеджер, который отвечает за все эти функции.
Обычно оконный менеджер встроен в ваше окружение рабочего стола, но для создания очень лёгких систем вы можете использовать оконный менеджер без окружения. В этой статье мы собрали лучшие оконные менеджеры Linux, которые вы можете установить и использовать в своей системе.
Лучшие оконные менеджеры Linux
Не путайте оконные менеджеры с окружением рабочего стола. Окружения рабочего стола обычно содержат панели инструментов, обои, виджеты, папки и иконки. Также они обычно имеют отдельный набор библиотек и приложений, чтобы вам было удобнее работать за своим компьютером. А оконные менеджеры же только управляют окнами. В окружениях рабочего стола уже есть встроенные оконные менеджеры и компоновщики окон, которые позволяют рисовать и создавать окна отдельно.
Переключение между плавающими окнами выполняется с помощью Win+Shift+Space. Оконный менеджер активно развивается, а обнаруженные ошибки исправляются разработчиками. Также можно использовать терминал для выполнения нужных действий.
2. Awesome WM
Конфигураций по умолчанию достаточно для удобной работы. Здесь поддерживается несколько рабочих столов, возможно, изменение размера и перемещение панелей с помощью мыши. Любой компонент можно изменить через конфигурационный файл.
3. XMonad
XMonad идеально подойдёт для вас, если вы хотите иметь возможность расширять оконный менеджер на языке программирования Haskell. Вы не будете ограничены никакими запрограммированными шаблонами и сможете запрограммировать что угодно в конфигурации. Настройки по умолчанию очень просто изменить, а код программы всегда поддерживается чистым и безопасным. XMonad очень быстрый и легкий, поэтому будет работать даже в медленной системе.
Из особенностей можно отметить поддержку нескольких мониторов, а также, если вам не хватает какой-либо функции, то её можно добавить с помощью модулей.
4. Openbox
Он высоко настраиваемый и простой в использовании. Вы можете редактировать конфигурационные файлы или использовать утилиты для настройки.
5. DWM
Этот оконный менеджер Linux входит в пакет программного обеспечения Suckles Suite. Обычно пользователи могут настраивать и расширять его возможности путём изменения исходного кода. Весь код dwm помещается меньше, чем в 2000 строк, поэтому он является примером очень чистого и читабельного кода. Кроме того, dwm очень лёгкий, имеет простой дизайн и потребляет мало ресурсов.
Простые настройки dwm и горячие клавиши хорошо продуманы, и это делает его одним из лучших оконных менеджеров. Вы можете группировать приложения и окна на рабочем столе. Статус бар-менеджера показывает информацию о Wi-Fi-соединении, уровне громкости и состоянии батареи.
6. Gala
Этот оконный менеджер работает на основе клиентской декорации GTK. У него простой, но в то же время продуманный дизайн, как будто использовались правила проектирования ElementaryOS.
Gala подходит для новичков. Он невероятно конфигурируемый и имеет все необходимые горячие клавиши для удобного использования. Для горячих углов можно назначить выполнение определённых задач или своих команд.
Также в Gala есть анимации и интересные эффекты. Вы можете добавлять их и удалять по мере необходимости. Оконный менеджер очень лёгкий и хорошо работает на слабом оборудовании, например хромбуках или старых ноутбуках. Gala стабилен. А ещё он считается одним из самых упоминаемых диспетчеров окон за всё время.
7. KWin
Легко настраиваемый оконный менеджер в окружении рабочего стола KDE. Но его можно использовать и в другой графической среде. Любые настройки можно поменять через графический интерфейс.
KWin предлагает больше всего эффектов по сравнению с другими оконными менеджерами. К окнам можно прикрепить тени, сделать их липкими и шаткими, добавить различные эффекты для сворачивания и разворачивания окон, а также многое другое.
8. Fluxbox
Если вы ищете самый лёгкий оконный менеджер для Linux, тогда Fluxbox будет лучшим выбором для вас. На любом железе он будет работать очень быстро. А также он прост в использовании и настройке.
9. Musca
Этот менеджер окон считается очень простым и понятным. Он также очень эффективен в плане использования дискового пространства и памяти. Здесь нет никаких панелей и декораций для окон. Но их можно добавить, установив дополнительные приложения. Система группировки окон очень похожа на виртуальные рабочие столы.
Окна распределяются по различным именованным группам, и вы можете очень просто переключаться между ними. Пользователь может создавать или удалять группы. Musca поддерживает несколько мониторов и может создавать группы окон автоматически.
10. SpectrWM
Этот менеджер окон очень похож на Xmonad. Но здесь используются файлы конфигурации в формате обычного текста. После изменения настроек можно пересчитать конфигурацию без перезагрузки окружения. Это позволяет пользователям видеть результаты изменений без перезагрузки менеджера. По умолчанию интерфейс очень простой.
Настраивать spectrwm очень просто, поскольку здесь есть базовый набор настроек и вам не нужно знать никакого языка программирования для их изменения. Поэтому он идеально подходит для новичков и тех, кто хочет использовать Xmonad, но не знает Haskell.
11. HerbstluftWM
Для настройки здесь используется скрипт на Bash, но в остальном здесь всё достаточно просто. Можно использовать разные шаблоны расположения, а также создавать шаблоны на лету. Также поддерживается использование двух мониторов.
12. Enlightenment
Если вы новичок, то это лучший оконный менеджер для вас. Он не требует никаких знаний в программировании для настройки окружения. Да и вообще, он больше похож на окружение рабочего стола. Все настройки выполняются через графический интерфейс.
13. JWM
14. Window Maker
Дизайн Window Maker очень похож на графический интерфейс NeXT и пользователю будет удобно работать с ним. Оконный менеджер очень лёгкий и элегантный, поддерживает расширение с помощью различных док-панелей.
15. IceWM
16. Pantheon
Новички в Linux могут решить, что Pantheon создан для людей, которые раньше имели опыт использования MacOS. Это современный оконный менеджер с красивым дизайном. Здесь есть док-панель, которую можно использовать для запуска приложений. Программы можно отсортировать по категории или алфавиту.
17. XFWM
С помощью этого композитного менеджера вы можете очень просто разделить экран на части и разместить там окна. Здесь есть встроенная возможность привязки окон, а также есть множество тем оформления и возможность создавать новые темы. Можно настроить, где будут открываться новые окна: у края экрана или по центру.
18. Ratpoison
Ratpoison очень прост в конфигурации. На настройку понадобится намного меньше времени, чем для других менеджеров, поскольку он имеет очень простую структуру. Основные действия в программе выполняются с помощью клавиатуры, работы с мышью будет очень мало. Если нужно, вы можете создать несколько рабочих столов.
19. Compiz
куб рабочего стола Compiz
20. Wayland
Выводы
Есть три основных типа оконных менеджеров в Linux: стековые, тайлинговые и композитные. Композитные заботятся о 2D- и 3D-окружении. Стековые позволяют окнам перекрывать друг друга поверх фонового рисунка рабочего стола. А тайлинг гарантирует, что все окна будут видны одновременно и не будут перекрываться.
В этой статье мы рассмотрели лучшие оконные менеджеры Linux. У каждого из них есть свои плюсы и минусы. Перед тем, как определиться с выбором, определитесь, что именно вам нужно, и попробуйте как можно больше вариантов. Программы бесплатны и достаточно всего несколько команд для их установки. Какие лучшие оконные менеджеры вы знаете? А какой из них будете использовать? Напишите в комментариях!
Установка и настройка i3wm на arch linux
Итак, мы установили arch, базово настроили систему, настало время установить графическое окружение.
А почему i3?
Ведь есть много других графических окружений рабочего стола (Desktop Environment, или коротко DE). И действительно, выбор на linux довольно велик, чего не скажешь конечно ни о Windows, ни о MacOs, где нет подобной гибкости в кастомизации. Я перепробовал разные окружения, и возможно в дальнейшем подробно расскажу о тех, с которыми имел дело. В целом у каждой оболочки есть свои плюсы, свои минусы. Своя история, философия, назначение, и целевая аудитория. А ставлю я все равно i3, и на это есть ряд причин.
В-третьих, i3 создан для работы с клавиатурой, и в работе с ним волей не волей пользуешься горячими клавишами. Горячие клавиши тут имеют важную роль. И любителям все делать через клавиатуру должно понравиться.
В-четвертых, i3 благоволит минималистичности. Минимум UI нагроможденностей. Все настройки системы производятся из файловых конфигов. Можно использовать любые программы конечно же, но очень хорошо тут заходят именно минималистичные, консольные утилиты вроде ranger как файловый менеджер, и тому подобное.
Установка
i3 работает на графическом сервере x-org, поэтому нам потребуется установить его. Также мы установим не сам оригинальный i3wm, а его немного модернизированный форк i3-gaps. Еще сразу нам понадобится программа i3status для отображения системного бара, и программа dmenu для запуска установленных программ (которую в последствии заменим на аналог, rofi).
После установки создадим и отредактируем файл
Записки программиста
Поставил оконный менеджер i3
Как вы, должно быть, помните, моим первым тайловым оконным менеджером был Xmonad. Он вполне устраивает меня на стационарном компьютере, но, к сожалению, на EeePC с ним много возни — нужно допиливать индикатор батареи, выводить куда-то уровень сигнала Wi-Fi и тп. После небольшой консультации с народом в Twitter’е, я решил попробовать оконный менеджер i3.
Устанавливается i3 примерно так (ох уж эта Бубунта):
Завершаем работу в текущем оконном менеджере, вводим имя пользователя и пароль, выбираем оконный менеджер i3. При первом запуске i3 спросит вас, создать ли дефолтный конфиг (да, само собой разумеется) и что использовать в качестве Mod-клавиши (Win, потому что она все равно ни для чего не нужна).
Все, мы работаем под i3. Основные сочетания клавиш следующее:
Изменить размеры окон можно перетягивая их границы с помощью мыши. Также можно перейти в режим изменения размера окна нажатием Mod + R. В этом режиме с помощью стрелочек или буковок вы выбираете границу окна, со стороны которой окно нужно уменьшить или, если нажат Shift, увеличить. Возврат в обычный режим осуществляется нажатием Enter или Escape.
Теперь рассмотрим следующий скриншот (кликабелен):
Чтобы добиться такого расположения окон, сначала я переключился на вертикальное разбиение (Mod + V) и создал три окна (Mod + Enter). Затем я по очереди выбрал каждое из трех окон (Mod + Стрелочки), для каждого из них переключился на горизонтальное разбиение (Mod + H) и создал еще по два окна. В верхнем ряду я оставил расположение по умолчанию, в среднем переключился на размещение с табами (Mod + W), а в нижнем — на стековое размещение (Mod + S).
Важным моментом здесь является то, что окна в i3 образуют древовидную структуру (с родителями и потомками). Изменение способа разбиения (Mod + H/V) создает новый контейнер (поддерево), а переключение layout’а действует только на текущий контейнер. За счет такого подхода i3 позволяет добиться куда более сложного расположения окон, чем Xmonad.
Основные конфигурационные файлы i3 — это
/.i3/config я дописал:
bar <
position top
status_command i3status
>
Первой строчкой я повесил на сочетание Mod + T изменение border style. По-умолчанию окна в i3 имеют заголовки и границы, которые могут оказаться совершенно лишними, если у вас, например, во весь экран открыт Chrome.
Следующие три строчки добавляют на автозапуск некоторые программы. С Dropbox все понятно. Утилита wicd — это такая штука, которая висит в трее и позволяет управлять подключением к проводным и беспроводным сетям. Устанавливается она следующим образом:
Чтобы NetworkManager не мешал работе wicd, говорим:
Обратите также внимание на консольный аналог wicd, утилиту wicd-curses.
Дополнение: Все оказалось намного проще:
Xneur, думаю, не нуждается в представлении. Его я использовал просто в качестве индикатора текущей раскладки клавиатуры (без которого, впрочем, вполне можно обойтись). Устанавливается xneur следующим образом:
В конце конифга (блок bar) я говорю отображать панельку с часами, треем и так далее вверху экрана, а не внизу, как это делается по-умолчанию.
/.i3status.conf я взял файл /etc/i3status.conf. В нем я поправил формат отображения текущей даты, изменил имена сетевых интерфейсов, убрал лишнюю информацию об IPv6, DHCP и VPN. Не вижу смысла приводить здесь результат. Что радует в i3, так это интуитивно понятный формат конфигов и хорошая документация.
Ну и последним штрихом будет добавление в
/.bashrc следующей строки:
Утилита i3lock предназначена для блокировки экрана. В отличие от многих аналогичных утилит она вообще ничего не показывает пользователю. То есть экран тупо остается черным (цвет можно изменить) до тех пор, пока не будет введен пароль текущего пользователя. Помимо определенного цвета также можно использовать картинку в формате PNG.
В целом оконный менеджер i3 вполне оправдал мои ожидания. Он оказался проще в настройке и более гибок по сравнению с Xmonad. Все необходимое я получил «из коробки», а всякие мелочи подстроил под себя за считанные минуты.
Как обычно, я буду рад вашим вопросам и дополнениям.
Настройка i3status в i3wm
Почти в любой ОС, или отдельных графических окружениях мы, как пользователи, привыкли к системному бару, панели на экране, на котором в Windows расположена кнопка пуск и иконки запущенных программ, в Mac OS глобальное меню активного приложения. Часто общим для всех систем является то, что на ней расположен трей с иконками запущенных программ, дата, время, и многое другое.
i3bar
i3status
Если вы наблюдаете JSON вместо человекопонятной строки в консоли, то возможно у вас в конфиге i3 установлен формат вывода output_format отличный от term
Мы видим не что иное, как обычную строку, содержащую метрики системы, обновляющуюся через определенный интервал времени. По умолчанию метрики отделены разделителем в виде прямой черты, а также могут быть раскрашены в цвета.
Если верить описанию программы, то i3status хорошо оптимизирован, порождая не большое количество системных вызовов, т.к. рассчитан на частое обновление предоставляемых метрик. Это позволяет занимать минимум процессорного времени, экономить заряд батареи, и гарантировать, что даже при высокой нагрузке строка состояния будет обновляться правильно.
Модули
i3status содержит 16 встроенных модулей, из которых будет состоять выходная строка статуса. Каждый модуль имеет свой набор индивидуальных настроек, задаваемых в едином конфигурационном файле. Есть ряд общих параметров, применимых ко всем модулям. Модули в строке можно переиспользовать по нескольку раз, управляя порядком вывода.
Список доступных модулей
Конфигурация
Для того, чтобы начать конфигурировать содержимое данной строки, скопируем файл конфига по умолчанию к себе в домашнюю директорию:
Конфигурацию условно можно разделить на 3 части:
После чего мы сможем искать подходящие иконки на официальном сайте, и вставлять их прямо в шаблоны вывода модулей i3status
Расширение штатного функционала
Чтобы добавить результат в выдачу, сначала добавим в конфигурационный файл
/.config/i3status/config следующий блок, который назовем custom_uptime :
добавим его к order для вывода в нужном нам порядке между другими блоками. На tztime не обращаем внимания, просто копируем
Переработаем скрипт обертку, и сохраним в
Осталось только в конфигурационном файле i3wm заменить запуск i3status на наш собственный скрипт
Результат выглядит так:
Аналоги
Расширение функционала i3status возможно, но не очень изящно потому, что программа изначально не содержит для этого никаких штатных возможностей. Однако есть более настраиваемые аналоги, например:



































