Налаштування i3WM, Losst
У сучасних графічних оболонках концепція тайліга дуже недооцінюється, примітивний тайлінг є і 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 і більше нічого.

Вікно вибору Mod клавіші
Як термінал за замовчуванням використовується xterm - запускається комбінацієюMod+Enter. Не будемо поки зациклюватися на управлінні, усвідомимо лише те, щоб закрити вікно потрібно натиснутиMod+Shift+q, а щоб перезапустити i3 —Mod+Shift+r.
Тепер давайте проясним для себе те, що нам треба
- Для цього будемо використовувати Nitrogen
- Лаунчер додатків - Тут є багато варіантів, розглянемо ми тільки найпопулярніші
- Анімації та VSync — Для цього нам знадобиться композитор, я пропоную Compton тому що він легкий та стабільний


Пристрій конфігу в i3WM
За промовчанням конфіг i3WM знаходиться в папці
- Приклад exec compton Під час запуску i3 - запуститися і композитор compton
- Приклад exec
/script.sh При запуску i3 — запуститися скрипт, який лежить у домашній папці під ім'ям script.sh
2) Встановлення змінних. У i3wm можна створити змінні, працює все це як define в C++. На місце змінної стане заданий їй рядок. Змінні можна встановити за допомогою set.
- Приклад set $color #023537 Змінною$color встановлено значення #023537
- Приклад set $fileManager pcmanfm-qt Змінної$fileManager задане значення pcmanfm-qt
Змінні зручно використовувати створюючи блок налаштувань,щоб потім не бігати конфігою i3wm і не шукати потрібний пункт.
3) Комбінації клавіш задаються за допомогою bindsym, синтаксис гранично простий
- Приклад bindsym $mod+1 workspace 1 При натисканні mod клавіші та цифри 1 ми перейдемо на робочий стіл 1.
- Приклад bindsym XF86Tools exec firefox При натисканні кнопки Tools — запуститься FireFox
- Приклад set $press XF86Search set $search dmenu bindsym $press $search При натисканні заданої в змінній кнопки буде виконана задана в іншій змінній програма.
На початку конфігу варто поправити пару рядків на свій смак:
set $mod Mod4 # Установка mod клавіші
font pango:xos4 Terminus 8 # Установка шрифту для рамок вікна
Цього було б достатньо якби не кілька проблем, з якими я зіткнувся, коли намагався налаштувати деякі клавіші.
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) Регулювання яскравості. Взагалі навряд чи це буде проблемою, але для того, щоб позбавити вас від гугленія - я просто покажу як це робиться
bindsym XF86MonBrightnessUp exec xbacklight -inc 6 bindsym XF86MonBrightnessDown exec xbacklight -dec 6
Зовнішній вигляд
Рамки вікон
Кнопки керування вікном у i3wm замінені хоткеями
Змінити розмір рамок вікна за замовчуваннямдопомогою new_window pixel - я собі поставив 1, щоб бачити межі вікон.
Колір рамок вікна можна встановити за шаблоном
Класи вікон:client.focused - вікно у фокусіclient.unfocused - вікно поза фокусомclient.focused_inactive - вікно в фокусі але не активноclient.urgent — вікно вимагає уваги (наприклад, спливаюче повідомлення)
Приклад налаштування кольору;
Ну і думаю, варто навести приклад налаштування кольорів i3bar - все за тією ж схемою, тільки трохи інші теги.
Класи індикаторів робочих столів:
- focused_workspace — робочий стіл у фокусі;
- active_workspace - Активний робочий стіл;
- inactive_workspace - Неактивний робочий стіл;
- urgent_workspace — На робочому столі є програма, яка потребує уваги;
Прикладналаштування кольорів для i3bar:
Зовнішній вигляд додатків
Для налаштування зовнішнього вигляду додатків треба буде попітніти. Почнемо з простого - налаштування GTK+ Все, що нам треба, це лише програмаlxappearance, у ній можна налаштувати іконки, тему GTK та курсора.
По мимо стандартних тем для Qt можна вибрати движок тем. Раджу звернути увагу наKvantum - це SVG based двигун для Qt. Простий в налаштуванні, тим поки що мало, але те, що є, виглядають дуже круто і футуристично.
Анімації та VSync
Ми з вами вже домовилися що для забезпечення гарної анімації будемо використовувати композиторcompton, зараз я не писатиму про те як треба налаштовувати його, тому що пост про i3WM а не проcompton, просто покажу з чого варто розпочати.
Додамо в конфіг exec compton -f --vsync drm І після перезапуску отримуємо гарні переходи, прозорість та головне вертикальнусинхронізацію, все дуже просто!

Про шпалери ми теж домовилися, що будемо використовувати nitrogen. Запускаємо його, вибираємо шпалери і радіємо, все що залишається, це тільки додати в конфіг exec nitrogen --restore

Conky досить популярний віджет у світі Linux
Це необов'язковий пункт, але я подумав, що варто і його згадати, тут я просто покажу як треба запускати ковзани в i3wm exec conky -c
/.config/i3/conky_c Інформації з налаштування ковзанів в інтернеті безліч, від себе додам лише те - що варто виключити їх з обробки тіней в compton.
Лаунчер Додатків
Взагалі під Linux є безліч різних лаунчерів, розглянемо найпопулярніші.
- Dmenu - канонічний лаунчер, за фактом це рядок терміналу, що випадає, з автодоповненням. Мінімалістичний та легкий.
- Xfce AppFinder - лаунчер додатків з оточення XFace, заснований на GTK+, не сказати що зручне рішення, але він простий і зрозумілий.
- Rofi - Досить гнучкий лаунчер, повз простий запуск додатків вміє навігацію по вікнах і ssh клієнт.

Прочитавши цей гайд, ви точно зможете налаштувати віконний менеджер i3WM під себе, і мати неповторне середовище робочого столу. Особисто від себе можу додати, що саме завдяки знайомству з i3WM я усвідомив наскільки гнучкий Linux, і що можна працювати саме з тими інструментами, які тобі зручні. У цьому плані i3WM тебе не обмежує, треба тільки посидіти за конфігом.
Настійно рекомендую прочитати Офіційний гайд