В современных графических оболочках концепция тайлига очень сильно недооценивается, примитивный тайлинг есть и в Windows и в таких оболочках как KDE, Gnome, XFce. Но все это лишь частичная поддержка тайлинга. По настоящему тайлинг отлично реализован в таких оконных менеджерах как Awesome, DWM, i3WM. И сегодня как раз поговорим о последнем.
Один из самых легких, удобных и гибких в настройке оконных менеджеров Linux это несомненно i3WM. Львиную долю своей популярности он получил благодаря очень простой настройке, и в этом гайде мы разберем конфиг i3wm с примерами конфигурации оконного менеджера.
Содержание статьи
Введение
Думаю многие читатели этого поста уже знают что такое динамический оконный менеджер — коим и является i3WM. А те кто не знает — сообщаю, оконные менеджеры (составная часть любого DE) делятся на два типа, стековые (плавающие окна) и фреймовые (окна располагаются мозаикой). А если все это смешать, то получиться гибрид в виде динамических оконных менеджеров, в которых окна могут переключаться из плавающего режима в фреймовый.
Не важно почему вы выбрали именно i3wm среди многих других динамичных оконных менеджеров… Будто простота настройки (в чем вы убедитесь ниже), его легкость по сравнению с другими или же просто по совету более опытного линуксойда. Для начала я предлагаю рассмотреть что мы будем иметь из коробки после установки i3wm:
- i3 — Собственно сам оконный менеджер
- i3bar — «Родная» панель в i3wm все что умеет это отображение рабочих столов и строку терминала
- i3status — Отображение некоторой информации строчкой терминала
- i3lock — Экран разблокировки компьютера
Теперь давайте разберемся со всем по порядку.
Настройка i3WM
После запуска нас встретит окно выбора mod клавиши. Будет два варианта Meta (windows кнопка) и Alt. После запуска перед собой мы будем видеть только i3bar с запущенным в ней i3status и больше ничего.
В качестве терминала по умолчанию используется xterm — запускается комбинацией Mod+Enter. Не будем пока зацикливаться на управлении, уясним лишь то, что бы закрыть окно нужно нажать Mod+Shift+q , а что бы перезапустить i3 — Mod+Shift+r.
Теперь давайте проясним для себя то что нам надо
- Обои — Для этого будем использовать Nitrogen
- Лаунчер приложений — Тут есть много вариантов, рассмотрим мы только самые популярные
- Анимации и VSync — Для этого нам понадобится композитор, я предлагаю Compton потому что он легкий и стабильный
Устройство конфига в i3WM
По умолчанию конфиг i3WM находится в папке ~/.config/i3
Вообще для того чтобы виртуозно работать с конфигом i3wm надо всего лишь знать что все что идет после # - комментарий, и еще три вещи :
1) Запуск программ происходит с помощью exec, для того чтобы наш оконный менеджер что то запустил используем следующий шаблон
- Пример
При запуске i3 — запуститься и композитор compton - Пример
При запуске i3 — запуститься скрипт который лежит в домашней папке под именем script.sh - Пример
При запуске i3 — запуститься nitrogen с опцией restore
2) Установка переменных. В i3wm можно создать переменные, работает это все как define в C++. На место переменной встанет заданная ей строчка. Переменные можно задать с помощью set.
- Пример
Переменной $color задано значение #023537 - Пример
Переменной $fileManager заданное значение pcmanfm-qt
Переменные удобно использовать создавая блок настроек, дабы потом не бегать по конфигу i3wm и не искать нужный пункт.
3) Комбинации клавиш задаются с помощью bindsym, синтаксис предельно прост
- Пример
При нажатии mod клавиши и цифры 1 — мы перейдем на рабочий стол 1. - Пример
При нажатии кнопки Tools — запустится FireFox - Пример
При нажатии заданной в переменной кнопки — будет выполнена заданная в другой переменной программа.
В начале конфига стоит поправить пару строчек на свой вкус :
set $mod Mod4 # Установка mod клавиши
font pango:xos4 Terminus 8 # Установка шрифта для рамок окна
Теперь давайте поглубже копнем в создание горячих клавиш.
Скорей всего у вас на клавиатуре будет 6той ряд клавиш, который хочется использовать по полной. Что бы узнать имя клавиши я использую xev.
Запустите xev , и наведя на белое окно нажимайте нужную клавишу что бы узнать ее имя. Для удобства анализа 6го ряда запускайте его так
xev | grep XF
Этого было бы достаточно если бы не пару проблем с которыми я столкнулся когда пытался настроить некоторые клавиши.
1) Регулировка громкости. Я использую pactl для этих целей, и для работы кнопок +\- и переключения состояния микрофона и звука я использую вот такие бинды
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume 0 +5%
bindsym XF86AudioLowerVolume 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) Регулировка яркости. Вообще вряд-ли это будет проблемой, но для того что бы более менее избавить вас от гугления — я просто покажу как это делается
Внешний вид
Рамки окон
Изменить размер рамок окна по умолчанию можно с помощью new_window pixel <Размер рамки в пикселях> - я себе поставил 1, только чтобы видеть границы окон.
Цвет рамок окна можно задать по шаблону
Классы окон:
client.focused — окно в фокусе
client.unfocused — окно вне фокуса
client.focused_inactive — окно в фокусе но не активно
client.urgent — окно требует внимания (всплывающее уведомление например)
Пример настройки цвета;
# class border backgr. text indicator child_border client.focused #4c7899 #285577 #ffffff #2e9ef4 #285577 client.focused_inactive #333333 #5f676a #ffffff #484e50 #5f676a client.unfocused #333333 #222222 #888888 #292d2e #222222 client.urgent #2f343a #900000 #ffffff #900000 #900000 client.background #ffffff
Ну и думаю стоит привести пример настройки цветов i3bar - все по той же схеме, только немного другие теги.
Классы индикаторов рабочих столов:
- focused_workspace — Рабочий стол в фокусе;
- active_workspace — Активный рабочий стол;
- inactive_workspace — Неактивный рабочий стол;
- urgent_workspace — На рабочем столе есть приложение которое требует внимания;
Примернастройки цветов для i3bar:
bar { colors { background #000000 statusline #ffffff separator #666666 focused_workspace #4c7899 #285577 #ffffff active_workspace #333333 #5f676a #ffffff inactive_workspace #333333 #222222 #888888 urgent_workspace #2f343a #900000 #ffffff } }
Внешний вид приложений
Для настройки внешнего вида приложений надо будет попотеть.
Начнем с простого — настройки GTK+
Все что нам надо, это лишь программа lxappearance,в ней можно настроить иконки , тему GTK и курсора.
Теперь сложнее — настройка Qt.
Для настройки Qt нам нужно будет всего два приложения qt4config и qt5ct.
Запускаем qt4config — выбираем тему , шрифт и т. п. - все.
Но вот если мы запустим qt5ct то увидим сообщение о отсутствии переменной среды. Чтобы исправить нам надо будет отредактировать файл Xsession, т.к я использую sddm — то у меня он находиться по адресу /usr/share/sddm/scripts/Xsession. В него нам надо добавить строчку — после чего перелогинимся и уже спокойно можем запустить qt5ct и там провести настройку
По мимо стандартных тем для Qt можно выбрать движок тем. Советую обратить внимание на Kvantum - это SVG based движок для Qt. Простой в настройке, тем пока что мало, но то что есть выглядят очень круто и футуристично.
Анимации и VSync
Мы с вами уже условились что для обеспечения красивой анимации будем использовать композитор compton, сейчас я не буду писать про то как надо настраивать его, т.к пост про i3WM а не про compton, просто покажу с чего стоит начать.
Добавим в конфиг
И после перезапуска получаем красивые переходы, прозрачность и главное вертикальную синхронизацию, все очень просто !
Обои
Про обои мы тоже договорились что будем использовать nitrogen. Запускаем его, выбираем обоину и радуемся, все что остается, это только добавить в конфиг
Conky
Это необязательный пункт, но я подумал что стоит и его упомянуть, тут я просто покажу как надо запускать коньки в i3wm
Информации по настройке коньков в интернете уйма, от себя добавлю лишь то — что стоит исключить их из обработки теней в compton.
Лаунчер Приложений
Вообще под Linux есть уйма различный лаунчеров, рассмотрим самые популярные.
- Dmenu - каноничный лаунчер, по факту это выпадающая строка терминала с автодополнением. Минималистичный и легкий.
- Xfce AppFinder - лаунчер приложений из окружения XFace, основан на GTK+ , не сказать что удобное решение, но он простой и понятный.
- Rofi - Достаточно гибкий лаунчер, по мимо простого запуска приложений умеет навигацию по окнам и ssh клиент.
Вывод
Прочитав этот гайд вы точно сможете настроить оконный менеджер i3WM под себя, и иметь неповторимую среду рабочего стола. Лично от себя могу добавить что именно благодаря знакомству с i3WM я осознал насколько гибок Linux, и что можно работать именно с теми инструментами которые тебе удобны. В этом плане i3WM тебя не ограничивает, надо лишь только посидеть за конфигом.
Настоятельно рекомендую прочесть Официальный гайд
Ну раз уж такое дело, то думаю ShowMyDesktop тред в комментариях будет не лишнем.
Спасибо за внимание !
Здравствуйте!Я давно пользуюсь I3-MANJARO.Довольно не плохо работает.Многие настройки у его в ~/.i3/config
Вы конечно мзвените, но это полная лажа. Статья не о чем, не для кого
Напишите свою. С удовольствием почитаем.
их и так более чем достаточно. Смысл писать еще одну?
и сразу в кусты, ай-ай-ай
мне была полезна как бы...
Сначала слепая печать.. со временем наталкиваешься на vim.. потом i3wm. Где то на этом пути полностью переходишь на linux...... И жизнь больше никогда не будет прежней))
А что же будет дальше?)))) Меня это пугает...
я рад что наткнулся на vim, i3 ну и естественно на linux)
Дальше будет LaTeX вместо word/writer...
Кстати самое лучшее что встречалось в моей жизни.
Пара вечеров на освоить и я сверстал диплом примерно за час и без всяких косяков которые обычно бывают в ворд.
Как при старте i3wm запустить, скажем firefox, на пятом рабочем столе?
exec --no-startup-id i3-msg 'workspace 5:5; exec /usr/bin/firefox'
Как его удалить??? Сразу после установки он отказался у меня работать, выдавая: i3 status command not found or is missing a library depodency exit 127
Зачем удалять сказано же что у тебя нету i3status установи да все.
а как его через xrdp запустить?
как не пытался настраивать все lxde сессия идет.
Как запустить i3-wm в raspberry pi???? Захожу через Vnc к машине, вижу опенбокс, перезагрузаюсь захожу опять через Vnc, смотрю опять опенбокс, куда правки вносить? Что бы оболочка поменялась
Как заставить этот менеджер окон перечитать конфиг? Пробовал перезапускать менеджер дисплеев, не помогает, перезагружал устройство, не помогает.
У меня там настройки терминала и переключение раскладки по supe-пробел. Сейчас установил на свою голову setxkbmap ru, переключиться обратно не могу.
Перечитать конфиг Ctrl+Win+C и помните: человек попробовавший i3-wm, -навсегда останется человеком попробовавшим i3-wm. \\Если кому надо конфиг (https://i.imgur.com/NMrQfCA.jpg) пишите, поделюсь. https://t.me/alien108
а для блюпупа что нибудь есть? в гноме нормально наушники цеплялись, а тут не хотят...
Я blueman устанавливал
Но для того, чтобы наушники нормально цеплялись надо еще pulseaudio поставить
Хватило одного blueman
Compton я так понимаю это уже мертвечина? 4 года ни 1го комита есть более живые аналоги?
Установил i3 на новый ноутбук, почему-то эмулятор терминала с белым фоном (на старом ноутбуке с тем же Debian 10 терминал черцный). Не пойму как сделать его черным! Помогите. Неприятно на глаза. Копирование конфига со старого ноутбука не помогает.