Перейти к содержимому

Как установить i3wm ubuntu

  • автор:

GOAPPLE: быстрая настройка I3-wm

Привет, Хабр! Сегодня я хотел бы рассказать вам о моём переезде на Linux под управлением оконного менеджера I3-wm. Попробую немного раскрыть тему настройки оконного менеджера и поделюсь своим опытом. Надеюсь кому-то будет полезно получить такого рода информацию.

P.s если вы не новичок, то вряд ли узнаете много нового, но благодарю за внимание!

Итак! Данная программа была разработана в целях бэкапа конфигурации системы, которую я использую каждый день — Manjaro I3. Я приготовил 3 конфигурации оконного менеджера I3-wm для систем: Manjaro, Solus и Fedora, так как они наиболее популярны на мой взгляд. Я использовал каждый из представленных дистрибутивов и временами меняю свой основной дистрибутив на один из них.

Я пользуюсь Linux с 18 февраля 2019 года, но летом 2020 я начал использовать Linux как основную систему (на тот момент ещё Ubuntu 20.04 LTS).

Что меня привело к Linux

Как я уже писал выше, до 2019 года я использовал операционную систему Windows, но в один момент мне захотелось преобразить её и моя затея сильно затянулась, т.к оформление, которое я надумал, требовало большой работы над Windows 10 и некоторые нужные мне задачи реализовались не так удобно и практично, как могли бы. По этому, я решил попробовать что-то новое и открыл для себя Linux, а именно дистрибутив KDE Neon. Я быстро настроил внешний вид системы и решил попробовать использовать её для своих нужд (программирование, серфинг в интернете, игры).

Немного разобравшись в теме Linux я открыл для себя терминал, и то как нужно его применять и был приятно удивлен его возможностями по сравнению с командной строкой Windows. Стало удобнее обращаться с системой, я мог быстрее реализовать нужные мне задачи. Да и в целом, система была чуть менее требовательна к ресурсам ПК, нежели Windows 10.

Мне очень понравилось так взаимодействовать с системой, и с тех пор я использую Linux, как основную ОС на своем домашнем ПК. В процессе изучения, как и все, сменил много дистрибутивов и через время остановился на Manjaro.

Как зарождался мой проект

В августе 2021 года мне стали интересны тайловые оконные менеджеры, и почему некоторые люди предпочитают их стековым оконным менеджерам. Поразмыслив на эту тему, я решил посмотреть, что в них такого интересного и установил I3-wm на мой дистрибутив . С тех пор я заинтересовался возможными конфигурациями таких систем под управлением I3, так же мне очень понравилось то, что теперь системе нужно намного меньше ресурсов в отличие от Windows 10, которая требует 4гб ОЗУ для нормальной работы с ней.

Вкратце про оконные менеджеры

Оконные менеджеры бывают двух видов:

Стековые — это оконные менеджеры, с плавающими окнами как на OS X или Windows. Самый простой случай, когда это просто обычные окна, которые можно расположить по оси Z (Окна перекрывают друг друга).

Тайловые – разбивают оконное пространство. “Тайловые” в переводе “Мозаичные”, то есть приложения занимают экранное пространство так, как будто оно разбито на “мозаику” из неперекрывающихся областей, окон или фреймов. Главный плюс тайловых оконных менеджеров в скорости работы с ними, невероятной легковесности и гибкой настройке под нужды пользователя.

Fedora KDE (Стековый оконный менеджер KWM)ARCH Gonome (Стековый оконный менеджер Gnome Shell)Manjaro I3 (Тайловый оконный менеджер I3-wm)

Так я начал изучать тайловый оконный менеджер I3-wm. Я экспериментировал с его конфигурациями, собрав свою собственную. Через некоторое время я понял, что мне нужен бэкап моей системы, я сохранил мою конфигурацию и все нужные файлы на мой github, чтобы в случае сбоя системы, при очередных экспериментах, я мог быстро восстановить старую сборку.

Ещё через некоторое время я понял, что не стоит ограничиваться одной системой, и написал конфигурации под все дистрибутивы , которые использовал или когда-нибудь буду использовать, чтобы если я решу перейти на тот или иной дистрибутив, я мог бы как всегда применить свой конфиг I3-wm. Таким образом, я написал все нужные мне конфигурации и решил обернуть их в небольшую утилиту, которая мне поможет их автоматически установить, опять же ради экономии времени (иначе пришлось бы вручную переносить все файлы в конфиг системы). Спустя некоторое время, методом проб и ошибок, я написал эту утилиту.

Так же я надеюсь, что моя работа поможет новичкам, изучающим I3, быстрее и лучше разобраться в настройке своей системы.

Как работает программа

  • Клонировать репозиторий: git clone https://github.com/Avdushin/GOAPPLE
  • Перейти в репозиторий: cd GOAPPLE
  • Запустить утилиту: ./goapple или ./goapple -ru для запуска русифицированной версии

При запуске программы вы видите главное меню:

Главное меню GOAPPLE

  • DISTROS — открывает меню выбора дистрибутивов

В этом пункте нужно выбрать ваш дистрибутив, нажав нужную кнопку, и программа начнет устанавливать все необходимые компоненты и файлы на ваш ПК. После будет проведена перезагрузка системы.

меню выбора дистрибутивов

  • MYOS — выводит информацию о системе

MYOS - информация о системе

  • SETTINGS — открывает настройки утилиты (можно выбрать язык)

Меню настроек

Что я использовал для написания программы

Изначально, я решил писать проект на bash , так как подумал что было бы интересно реализовать на нем эту затею (первые версии программы были написаны на bash). Но потом, я решил поработать над интерфейсом, и тут мне на помощь пришёл Python, т.к я понимал как можно реализовать на нём поставленные мной задачи, но через время я решил что python не так эффективен для моей программы и переписал её на GO.

Для реализации программы я использовал библиотеки GO:

«os/exec» — для запуска команд

«github.com/mbndr/figlet4go» — для вывода логотипа

«flag» — для запуска с помощью флагов (-ru, -h)

Можно заметить, что код простой, но при этом он выполняет поставленную задачу.

Как настраивается конфигурационный файл I3

Конфигурация I3 настраивается с помощью всего одного конфигурационного файла, он находится в ~ /.config/i3/config

«~» — домашняя директория пользователя

Конфигурационный файл I3

В начале конфига назначается клавиша $MOD — главная клавиша в системе, с помощью которой можно управлять окнами, запуском приложений и другими действиями в системе.

Назначение главных клавиш системы

Далее я настроил раскладку клавиатуры:

exec —no-startup-id setxkbmap -model pc105 -layout us,ru -variant -option grp:alt_shift_toggle

русский, английский языки и переключение раскладки на alt+shift

Настройка мониторов (экрана)

Настройка рабочих столов для нескольких мониторов:

exec --no-startup-id xrandr --output HDMI-0 --left-of DP-1-1 --auto set $firstMonitor HDMI-0 set $secondMonitor DP-1-1 # Выбор монитора рабочих для мест workspace 1 output $firstMonitor . workspace 6 output $secondMonitor . 

P.s если у вас один монитор, всё автоматически будет подстроено под него.

Настройка перемещения окон и смены переключения на рабочее место

# перемещение на рабочие места bindsym $mod+1 workspace 1 bindsym $mod+2 workspace 2 bindsym $mod+3 workspace 3 . # перемещение выделенных окон на рабочее место bindsym $mod+Shift+1 move container to workspace 1; workspace 1 bindsym $mod+Shift+2 move container to workspace 2; workspace 2 bindsym $mod+Shift+3 move container to workspace 3; workspace 3 . 

Старт меню запуска программ

Для меню запуска программ я использую приложение rofi

# старт rofi bindsym $mod+space exec --no-startup-id rofi -show run -font "Noto Sans 13"

Автостарт программ

Таким образом можно настраивать автоматический старт программ

exec_always —no-startup-id ~/.config/polybar/launch.sh &

Запуск программ по горячим клавишам

# запуск терминала kitty bindsym $mod+Return exec kitty;focus # сделать скриншот экрана bindsym Print exec --no-startup-id flameshot gui

Управление плавающими/статичными окнами

# плавающее окно for_window [class="gcolor3"] floating enable # статичное окно for_window [class="Nitrogen"] floating disable

Отступы между окнами

# отступы с помощью I3-gaps for_window [class="^.*"] border pixel 2 # внутренние отступы gaps inner 8 # внешние отступы gaps outer 2

Настройка цвета окна

# Настройка цвета окна # class обводка фон текст индикатор client.focused #6790EB #6790EB #e5e5e5 #6790EB client.unfocused #222222 #222222 #aaaaaa #222222 client.focused_inactive #222222 #222222 #a9a9a9 #222222 client.placeholder #222222 #222222 #aaaaaa #222222 client.urgent #d42121 #d42121 #f7f7f7 #d42121 client.background #242424

Настройка панели POLYBAR

Polybar — это панель, которая расположена у меня в верхней части экрана, она позволяет использовать её встроенные модули или дописывать свои собственные, с помощью простого синтаксиса и программирования.

Конйиг файл панели Polybar

Конфигурационный файл POLYBAR находится в ~/.config/polybar/config

Как выглядит панель

В конфиге панели я дописал пару тем оформления и несколько модулей (подробнее см. в моём GitHub)

Настройка цветов панели

; Solarized Dark ======= background = #223C43 foreground = #f3f4f5 ; ======================

Радиус и отступы

РАСПОЛОЖЕНИЕ МОДУЛЕЙ

#(Слева, по центру, справа) modules-left = i3 xwindow modules-center = modules-right = cpu2 memory3 volume date xkeyboard2 uptime variety trash wireless-network powermenu

Трей

По умолчанию системный трей в polybar включен, но я не использую его. Чтобы его включить, вам нужно раскомментировать строки:

; комментарий выглядит так «;»

tray-detached = false tray-offset-x = 0 tray-offset-y = 0 tray-padding = 2 tray-maxsize = 20 tray-scale = 1.0 tray-position = right tray-background = $

Значки рабочих мест

# ЗНАЧКИ РАБОЧИХ СТОЛОВ

ws-icon-0 = 1; ws-icon-1 = 2; ws-icon-2 = 3; ws-icon-3 = 4; ws-icon-4 = 5; ws-icon-5 = 6; ws-icon-6 = 7; ws-icon-7 = 8; ws-icon-8 = 9; ws-icon-9 = 10; ws-icon-default = ""

Модуль корзины

[module/trash] type = custom/script interval = 1 exec = ~/.config/polybar/trash format-prefix = "  " format-prefix-padding-left = 0 format-prefix-padding-right = 0 format-prefix-foreground = $ label-padding = 0 label-foreground = $ click-left = rm -rf ~/.local/share/Trash/files/* ;exec notify-send 'Корзина пуста' format-background = format-underline = #FF7676

Модуль даты и времени

(По умолчанию я добавил 12-часовой формат, он меняется при клике на модуль на самой панели)

[module/date] type = internal/date interval = 1 date = " %d-%m-%Y " date-alt = " %d-%m-%Y" time = %l:%M:%S %p #time = %H:%M:%S time-alt = %H:%M:%S format-prefix = " " format-prefix-foreground = #c1941a format-underline = #6C6565 format-foreground = $ format-background = $ label =  %time% |  %date% 

Выше я продемонстрировал как выглядят модули панели изнутри, вы можете попробовать написать нужные вам модули сами, или поискать их в интернете.

Приглашаю вас на GitHub репозиторий проекта — там вы можете ознакомиться с его кодом/скриптами и посмотреть интересующие вас настройки.

Благодарю за внимание! Надеюсь, я поделился чем-то новым и интересным для вас.

Установка и настройка i3wm

Тайлинг i3wmВ этой статье расписал, как я настроил под свои нужды i3wm. Конечно же тут можно многое еще что добавить и настроить. Можно поставить и полибар и разные плюшечки, можно поставить также и rofi для “более удобного” поиска установленных программ, но мне как-то и так хорошо. Вы если хотите можете все это себе поставить. Я даю тут все в упрощенном варианте и без особых наворотов. Далее уже вы сами подстраивате конфиги под свой вкус и цвет, под свои “фломастеры”.

Простой вариант установки и настройки i3wm (минимализм)

Ссылки

Установка

Сначала давайте установим все, что нам понадобится. При этом помним, что это вариант минимализма. Чтобы понять, что к чему, а далее уже будем делать рюшечки ��

  • i3wm – оконный менеджер и его форк (ответвление) i3-gaps
  • i3status – вывода строки статуса в i3bar
  • dmenu – утилита для запуска программ
  • ttf-font-awesome – шрифтовые иконки
  • feh – установка обоины на рабочий стол
  • lxappearance – установка тем для окон, иконок, курсора
  • pcmanfm – файловый менеджер
  • gvfs и udiskie – для авто монтирования внешних дисков
  • xorg-xbacklight – для управлением яркостью экрана
  • ristretto, viewnior или tumbler – для просмотра фото
  • picom – для прозрачности окон и для устранения тиринга (вместо compton)

Можно еще поставить sbxkb – индикатор раскладки и переключения клавиатуры, но можно и без этого! Когда вы последний раз смотрели на раскладку? Уверены, что это вам нужно? Еслитакой вариант переклюения клавиатуры вам не нравтся, а хотите тектовой, то есть другой вариант, но для этого вам уже нужно будет ставить polibar. Если нужно то пишите в комментах. Будет много желающих напишу как это делать.

Ставим пакеты из pacman:

pacman -S i3-wm i3-gaps i3status sbxkb dmenu pcmanfm ttf-font-awesome feh lxappearance thunar gvfs udiskie xorg-xbacklight ristretto tumbler picom

Настройка конфига i3wm

При первичной загрузке вы увидите сообщение.

Нажмите 2 раза на Enter – это создаст конфигурационный файл, который мы потом будем менять. Вы увидите просто черный экран и возможно курсор мыши :))) Не пугайтесь все нормально, система работает и вы сделали все правильно.

Зачастую можно видеть символ загрузки, который постоянно вращается (до 60 сек.) – система пытается запустить какой-то процесс. Если вас это раздражает, то можно убрать прописав перед запуском программ код:

--no-startup-id

Обои на рабочий стол

Устанавливаем обои на рабочий стол

exec --no-startup-id feh --bg-scale /usr/share/backgrounds/xfce/bg.jpg

Автозагрузка программ

Прописываем автозагрузку программ кодом

exec --no-startup-id flameshot

Отключение заголовков окон

Я предпочел отключить заголовки окон. Освободив дополнительное пространство на рабочем столе.

default_border pixel

Настройка толщины рамки i3wm

Для увеличение толщины рамки, чтобы было лучше видно активное окно используем следующий код:

for_window [tiling] border pixel 3

Назначаем свои горячие клавиши
Прописываем запуск программ на определенных горячих клавишах:

bindsym $mod+F1 exec firefox
bindsym $mod+F3 exec subl
bindsym $mod+F4 exec cherrytree
bindsym $mod+F5 exec galculator

Я, к примеру, использую консольный вариант проигрывателя VLC, запуская его горячими клавишами. При этом, радио начинает играть автоматом. Авто подключение радио потока прописано в настройках vlc.

bindsym $mod+Home exec cvlc

Убить процесс

И т.к. программа запускается без GUI, ее удобнее выключать горячими клавишами, которые просто убивают процесс vlc.Для того, чтобы убить процесс использую команду killall -s 6.

bindsym $mod+Prior exec killall -s 6 vlc

Как найти название клавиш

Тут возникает вопрос, что за клавиша такая “Prior”, которую мы использовали выше и как вообще найти название клавиш, которые нам хотелось бы использовать. Клавиша “Prior” – на моей клавиатуре это клавиша Pg Up/■ . Используется для управлением проигрывателя (старт, стоп, пауза, перемотка и т.д.) Для того, чтобы найти название клавиш используем утилиту xev, вбив в консоли команду:

После запуска, вы увидите белый экран с квадратом вверху.

Подведите курсор мышки к квадрату и не уводя с него, нажмите на нужную клавишу. В терминале увидите ее название.

Или же используйте вот эту команду, которая покажет только то что нужно, урезая все лишнее.

xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.keycode ([0-9]).* (., (.)).*$/\1 \2/p'

Думаю тут все понятно не вызовет никаких трудностей. Идем дальше.

Открытие программ в плавающем окне

Если определенную программу нужно открыть не в тайлинге, а в плавающем окне используйте код

for_window [class="Xfce4-terminal"] floating enable

Где “Xfce4-terminal” это название программы.

Открытие программ в нужном рабочем столе

В i3wm есть фишка, которую я не встречал в других DE/WM – это запуск программ на определенном рабочем столе. Удобно, когда вы знаете, какая программа и на каком рабочем столе она запускается.

Данный код запустит Firefox на 3-м рабочем столе

for_window [class="Firefox"] move to workspace $ws3

Название программ нужно писать с заглавной буквы, иначе не сработает.

Регулировка яркости экрана

Управление яркостью экрана, нужно установить xbacklight. Он у вас уже должен стоять, если вы следуете этому ману.

bindsym XF86MonBrightnessUp exec xbacklight -inc 20 bindsym XF86MonBrightnessDown exec xbacklight -dec 20

Настройка конфига i3status

Копирование конфига

Прежде чем вносить изменения, нужно скопировать настройки для i3status.

Для этого сначала создадим папку i3status (если у вас ее нет).

$ mkdir ~/.config/i3status

Далее копируем конфиг в домашнюю директорию, выполнив следующий код:

$ cp /etc/i3status.conf ~/.config/i3status/config

Настройки конфига i3status

Все иконки можете брать с сайта fontawesome и вставлять в конфиг

Индикатор звука

Для того, чтобы у вас был индикатор звука используйте код:

olume master

Тут особо расписывать нечего. Смотрите мои настройки конфиг i3status

Дополнительные настройки смотрите в документации по i3status

Установка и настройка i3wm на arch linux

Итак, мы установили arch, базово настроили систему, настало время установить графическое окружение.

А почему i3?

Ведь есть много других графических окружений рабочего стола (Desktop Environment, или коротко DE). И действительно, выбор на linux довольно велик, чего не скажешь конечно ни о Windows, ни о MacOs, где нет подобной гибкости в кастомизации. Я перепробовал разные окружения, и возможно в дальнейшем подробно расскажу о тех, с которыми имел дело. В целом у каждой оболочки есть свои плюсы, свои минусы. Своя история, философия, назначение, и целевая аудитория. А ставлю я все равно i3, и на это есть ряд причин.

Во — первых i3 — это не DE, а только оконный менеджер. Отличие в том, что в отличие от DE, оконный менеджер не имеет предустановленного ПО, программ по управлению и настройкой оболочки. Что отлично ложится в философию арча и под мои задачи, когда требуется по кирпичикам собрать минималистичную систему только с тем, что действительно нужно. i3 поддерживает возможности отрисовки окон, управления их расположением, работа с рабочими столами. Все остальное по кирпичиком собирается из других программ, которые можно заменить на аналоги, если что — то не устраивает.

Во — вторых, i3 относится к категории “тайлинговых” оконных менеджеров. Это означает, что окно по умолчанию разворачивается на весь экран, занимая все свободное пространство. Оболочка позволяет размещать несколько окон на экране, окна пропорционально делят пространство экрана. Тут проще показать, чем описать словами. В youtube или просто поиском по картинкам можно найти кучу видео и изображений с красиво настроенными и не очень окружениями i3. Я приведу скриншот своего экрана

Скриншот экрана оконного менеджера i3wm с шестью окнами различных открытых программ

Данный тип окружения с первого взгляда конечно может отпугнуть. Но на самом деле, используя все предоставляемые возможности, можно эффективно работать. Дело привычки и вкуса. К слову i3 не единственная в своем классе, есть и другие вроде awersome , sway , и т.д. Кстати любителям тайлинга советую обратить внимание на sway , который набирает популярность. Он содержит все фишки i3, только работает под графическим сервером wayland вместо стремительно устаревающего и уходящего xorg .

В-третьих, i3 создан для работы с клавиатурой, и в работе с ним волей не волей пользуешься горячими клавишами. Горячие клавиши тут имеют важную роль. И любителям все делать через клавиатуру должно понравиться.

В-четвертых, i3 благоволит минималистичности. Минимум UI нагроможденностей. Все настройки системы производятся из файловых конфигов. Можно использовать любые программы конечно же, но очень хорошо тут заходят именно минималистичные, консольные утилиты вроде ranger как файловый менеджер, и тому подобное.

В-пятых, это минимальные системные требования. Сам i3 легковесен и не прожорлив. Потребляет минимум оперативной памяти. Если у Вас слабое железо, то это несомненно большой плюс. У меня допустим в мак нет возможности добавить оперативной памяти, т.к. она распаяна. А сменить ноутбук пока не получается. Были попытки, но пока неудачные, возможно позже расскажу об этом в отдельной статье.

В-шестых это наверное уникальность. Из — за не большой распространенности как самого линукса, так и арча (по сравнению с убунто подобными), так и самой i3, выглядит оболочка довольно экзотично. И это не может не радовать) Когда вокруг у всех винда, маки, или “убунты на гномах”, i3 выделяется из толпы, как ни крути. И то, как быстро и удобно можно быстро укрощать с помощью нее свои задачи, поражает глаз случайных свидетелей. А это всегда повод завести беседу 🙂

Итак я насчитал шесть причин. Возможно что — то упустил, но суть такова, что стоит один раз попробовать самому, а там уже решить, стоит оно того, или нет) Ведь действительно тайлинг не каждому зайдет.

Установка

i3 работает на графическом сервере x-org, поэтому нам потребуется установить его. Также мы установим не сам оригинальный i3wm, а его немного модернизированный форк i3-gaps. Еще сразу нам понадобится программа i3status для отображения системного бара, и программа dmenu для запуска установленных программ (которую в последствии заменим на аналог, rofi).

sudo pacman -S xorg-server xorg-xinit i3-gaps i3status dmenu 

После установки создадим и отредактируем файл ~/.xinitrc, записав в него текст “exec i3”

echo 'exec i3' >> ~/.xinitrc 

Эта инструкция при запуске графического сервера xorg запустит наш i3wm

И наконец, впервые запустим наш i3!

startx 

Скриншот экрана оконного менеджера i3wm, Первый вид после установки

Настройка

После запуска i3 нас спросит о создании конфигурационного файла в домашней директории, согласимся, нажав Enter. Путь к файлу нам понадобится неоднократно для кастомизации. Далее i3 спросит о том, какую клавишу использовать по умолчанию для модификатора. Дело вкуса, я оставлю Win (на маке у меня Win — это Cmd)

Перед нами черный экран, т.к. не установлены обои, и пустота) На помощь придет официальная документация по i3 или любые другие ресурсы.

Горячие клавиши

Новичку потребуется выучить горячие клавиши для работы. Самое базовое, что нужно знать сейчас, это:

  • mod + Enter — запустить терминал
  • mod + d — запустить dmenu для запуска любой программы

Скриншот экрана оконного менеджера i3wm, Открыт терминал alacritty и dmenu

Скриншот экрана оконного менеджера i3wm, Открыт терминал alacritty и sublime

  • mod + Shift + q — закрыть активное окно программы
  • mod + 1, mod + 2, mod + …n — переключение рабочих столов от 1 до 9
  • mod + Shift + 1, mod + Shift + … n — перемещение активного окна на другой рабочий стол
  • mod + Shift + … ←, →, ↑, ↓ — изменение положения окон в рамках рабочего стола
  • mod + r — ресайз активного окна
  • mod + Shift + c — перечитать конфиг
  • mod + Shift + r — перезапуск i3
  • mod + Shift + e — выход из i3 с подтверждением
  • mod + Shift + space — перевод окна в плавающий режим

Это далеко не все хоткеи, все остальное можно увидеть на официальном сайте. Но на первых парах этого должно хватить.

mod — клавиша модификатора доступа, выбранная ранее. Это основная кнопка в i3, на ней завязано много горячих клавиш, как видно.

Любые биндинги горячих клавиш и остальные настройки i3 хранятся в ~./config/i3/config . У меня уже есть готовый конфиг с предыдущей системы. Никому не советую вслепую использовать чужие конфиги потому, что в люди подгоняют в любом случае все под себя. И Ваш конфиг у вас получится свой, уникальный. В сети куча конфигов разных людей. Есть также готовые темы оформления i3, стоит присмотреться к разным вариантам, в итоге собрав из всего понравившегося что — то свое, и потихоньку это подтачивать под свои нужды.

Немного о моем конфиге

При старте системы через программу setxkbmap устанавливается смена раскладки клавиатуры (установленная в /etc/vconsole.conf почему — то не задействована в i3)

sudo pacman -S setxkbmap vim ~/.config/i3/config 
# раскладка клавиатуры exec --no-startup-id setxkbmap us,ru -option 'grp:alt_shift_toggle' 

Также у меня есть отдельный материал по настройке раскладки клавиатуры в i3wm

Перед самой командой фигурирует ключевое слово exec , т.е. запуск, и параметр -no-startup-id , который нужен для того, чтобы курсор мыши не превращался в бесконечно крутящиеся часы. Похожим образом мы можем поставить любую программу или команду на автостарт i3.

Установим запуск firefox на сочетание горячих клавиш mod + F1 (файл ~/.config/i3/config )

bindsym $mod + F1 exec firefox 

Все довольно просто, после ключевого слова bindsym следует сочетание клавиш, затем exec и имя программы.

Заменим dmenu на аналог rofi. Концептуально ничего нового, просто rofi мне больше нравится тем, что расположен не в баре, а плавающей строкой

sudo pacman -S rofi 

Чтобы задействовать его вместо dmenu найдем в конфиге строку

bindsym $mod+d exec dmenu_run 

и заменим ее на

bindsym $mod+d exec --no-startup-id rofi -show run 

Скриншот i3wm и запущенного rofi

rofi имеет множество встроенных тем, посмотреть и выбрать подходящую для себя можно утилитой rofi-theme-selector , запустив ее в терминале. После выбранную тему установить как параметр -theme в строке запуска в конфиге. Также шрифт я выбрал hack 10, Вы же можете использовать подходящий Вам шрифт.

bindsym $mod+d exec --no-startup-id rofi -theme glue_pro_blue -font "hack 10" -show run 

Скриншот i3wm и запущенного rofi-theme-selector

Также никто не мешает найти и установить стороннюю тему, или создать свою собственную.

Разрешение монитора, второй монитор

В i3 конечно же можно работать с несколькими мониторами. Нам понадобится программа xrandr

sudo pacman -S xorg-xrandr 

Запустив ее мы увидим список мониторов, и список поддерживаемых ими разрешений экрана. Мой macbook с экраном retina поддерживает 2560×1600. Это довольно большое разрешение для 13 дюймового экрана, поэтому у меня сейчас все очень мелко. Масштабирование в линуксах работает не очень, за исключением некоторых тяжеловесных DE как GNOME 3, там из коробки все намного лучше. Поэтому я буду довольствоваться 1920×1200, чего мне с головой хватит. На второй монитор мне потребуется установить разрешение 1920×1080.

Пропишу в конфиге i3

exec xrandr --output eDP-1 --mode 1920x1200 --pos 0x0 exec xrandr --output HDMI-2 --mode 1920x1080 --pos 1920x0 

где eDP-1 — имя нативного монитора ноутбука, HDMI-2 — имя внешнего монитора, —mode 1920×1200 — устанавливаемое разрешение для монитора, —pos 0x0 — координата верхней левой точки монитора в разрезе двух рядом стоящих мониторов.

И специфично под macbook, мне необходимо подправить конфиг xorg для более четкого изображения https://wiki.archlinux.org/index.php/HiDPI#X_Resources

Xft.dpi: 96 ! These might also be useful depending on your monitor and personal preference: Xft.autohint: 0 Xft.lcdfilter: lcddefault Xft.hintstyle: hintfull Xft.hinting: 1 Xft.antialias: 1 Xft.rgba: rgb 

Вам не нужно, если у вас не HiDPI.

Установим обои на рабочий стол

куда ж без них. Нам поможет программа nitrogen, установим ее

sudo pacman -S nitrogen 

Запустим nitrogen, настроим обои, и поставим ее на автозапуск

exec --no-startup-id nitrogen 

Скриншот i3wm и рабочий стол с установленными обоями, луна

Установим compton

compton — легкий композитный менеджер для графического сервера X. Нам он нужен в первую очередь для устранения тиринга, если таковой присутствует, а также для создания небольших эффектов плавности переключения рабочих столов, чтобы было повеселее.

К слову о тиринге: способы его устранения для разных производителей видеокарт разнятся, и гуглится это на раз два (пример запроса: tearfree Nvidia, или AMD, или Intel). Устраняется в основном путем конфигурирования xorg.

У меня видеокарта Intel, и тиринг изначально на i3wm есть. Но compton решает данную проблему, без необходимости правки конфигов xorg.

На момент написания статьи из pacman и aur исчез пакет compton . Глубоко не искал, но наткнулся на информацию, что compton теперь стал picom (в других источниках написано, что compton это форк picom ). Вообщем устанавливаем picom , а запускаем compton (может compton теперь лишь симлинк, проверим позже)

sudo pacman -S picom 

В одном из конфигов он был установлен вместе с nitrogen в одну строку, так тому и быть

exec --no-startup-id nitrogen --restore; sleep 1; compton -b 

Из моментально заметных изменений — это плавность переключения рабочих столов, а также поддержка прозрачности некоторых окон. Если тиринг не ушел, то можно попробовать переключить в конфиге backend на glx . По умолчанию шаблон конфига лежит в файле /etc/xdg/picom.conf.example . Для его кастомизации скопируйте его в домашнюю директорию следующей командой

mkdir -p ~/.config/picom && \ cp /etc/xdg/picom.conf.example ~/.config/picom/picom.conf 

Свой же последний конфиг я наглухо скопировал с этого репозитория https://github.com/dikiaap/dotfiles. Все плавно и красиво.

О том, как сделать прозрачным терминал я расскажу в отдельной статье по настройкам alacritty. О более глубокой настройке compton можете погуглить.

Цветовая температура экрана

Регулировать автоматическое переключение цветовой гаммы в более теплые тона будем программой redshift . Подробнее о redshift на archwiki. Я же буду краток. Ставим на автозагрузку в конфиг i3wm команду:

exec --no-startup-id redshift -b 1.0:0.7 -t 6500:3200 -l 45:39 
  • -b 1.0:0.7 уровень яркости день:ночь
  • -t 6500:3200 цветовая температура день:ночь
  • -l 45:39 укороченные координаты местонахождения latitude:longitude (ширина:долгота). Узнать свои координаты

Звук

Если не установили на этапе первичной настройки arch linux, то установим сейчас графическую утилиту для настройки звука pavucontrol

sudo pacman -S pavucontrol 

Графическая утилита для настройки звука в linux pavucontrol

Bluetooth

Для того, чтобы работал bluetooth, необходимо установить ряд утилит

sudo pacman -S bluez bluez-utils pulseaudio-bluetooth blueman 

из которых blueman — графическая утилита

Графическая утилита для настройки bluetooth в linux blueman

Для ее запуска наберем в rofi или dmenu blueman-applet , после чего увидим в трее иконку bluetooth с выпадающим по клику контекстным меню.

А кому по душе больше настройка bluetooth из командной строки необходимо набрать команду bluetoothctl , и затем help .

Но прежде чем подключать устройства, проверим запущена ли у нас служба bluetooth.service , и запустим, если не запущена:

# проверка sudo systemctl status bluetooth.service # запуск sudo systemctl start bluetooth.service # включение службы для автозапуска sudo systemctl enable bluetooth.service 
Ускорение подключения bluetooth девайсов

Если вы планируете пользоваться беспроводными мышью или клавиатурой, то для уменьшения задержки при bluetooth подключении рекомендую сразу выставить в конфиге /etc/bluetooth/main.conf параметр FastConnectable в значение true .

# /etc/bluetooth/main.conf FastConnectable = true 

После внесения изменений нужно перезапустить службу bluetooth :

sudo systemctl restart bluetooth 

Подключение bluetooth девайсов должно стать более быстрым после включения компьютера или же после выхода из сна. Но если разницу вы не заметили, или для вас разница не критична, то лучше вернуть обратно значение false , т.к. включение влияет на энергопотребление, что актуально для ноутбуков. Это работает только для адаптеров, которые поддерживают это.

Num Lock

Я привык, что в обычном состоянии на клавиатуре Num Lock включен. В i3 же он выключен. Исправить это поможет консольная программа numlockx . Установим ее:

sudo pacman -S numlockx 

У нее всего 3 команды:

Остается поставить включение Num Lock на автозапуск i3wm:

# ~/.config/i3/config exec --no-startup-id numlockx on 

Шрифт

# Устанавливайте те шрифты, которые нравятся и подходят Вам font pango:Ubuntu:style=Medium 10 

Перенос бара наверх

В секцию bar добавим строку position top, и перезапустим i3 (mod+Shift+r)

Изучаем, пробуем

В одной статье невозможно описать абсолютно все. Я не затронул множество аспектов, таких как i3status (очень крутая штука, это кастомизируемый бар, который довольно страшненький по умолчанию), звук, подсветка клавиатуры, яркость экрана, и многое другое, чем не управляет i3 из коробки. Но он и не должен, и не позиционируется как DE. В нем мы должны настроить все сами. Кому не нравится — тому значит больше подходят полноценные DE, такие как GNOME, KDE, XCFE, и прочие (я лично переехал с Budgie). О некоторых из них поведаю в других статьях. Но основной посыл в том, что не стоит зацикливаться на первом попавшемся материале конкретного человека. Изучите дефолтный конфиг, документацию. Изучите множество мнений других людей. Берите лучшее из найденных конфигов, стройте свою уникальную систему. Не бойтесь гуглить, все скорее всего уже решено за Вас. А если нет — то есть уникальная возможность реализовать это у себя, и поведать об этом миру)

Эта публикация лицензируется в соответствии с Attribution-NonCommercial 4.0 International лицензией.

Debian and Ubuntu repositories

In general, you should use the repositories of your distribution. Adding third-party repositories to your /etc/sources.list has security implications and makes your apt-get update take longer.

If you are using Debian stable

The latest version of i3 will be in Debian testing quite soon. The version in Debian stable can be old, however (we cannot update it after stable has been released). The best way is to add Debian testing and tell apt to prefer Debian stable. You should not use our repository. Alternatively, you can also use stable-backports (e.g. wheezy-backports for Debian wheezy).

If you are using Ubuntu

Only a handful of packages are maintained by Ubuntu developers. The rest is synchronized periodically from Debian, every 6 months. Therefore, Ubuntu often includes old versions of i3. You should use our Ubuntu repository.

If you want the latest i3 development version

If you are using Debian (Debian-derived systems might work, too) or Ubuntu and want the latest development version of i3, you should use our Debian repository.

2. Ubuntu repository

2.1. Stable releases

This Ubuntu repository is provided by sur5r and contains the latest stable release of i3. To use it, run the following commands:

$ /usr/lib/apt/apt-helper download-file https://debian.sur5r.net/i3/pool/main/s/sur5r-keyring/sur5r-keyring_2023.02.18_all.deb keyring.deb SHA256:a511ac5f10cd811f8a4ca44d665f2fa1add7a9f09bef238cdfad8461f5239cc4 $ sudo apt install ./keyring.deb $ echo "deb http://debian.sur5r.net/i3/ $(grep '^DISTRIB_CODENAME=' /etc/lsb-release | cut -f2 -d=) universe" | sudo tee /etc/apt/sources.list.d/sur5r-i3.list $ sudo apt update $ sudo apt install i3

All Ubuntu versions which are currently supported by Ubuntu itself are also supported by this repository. See Ubuntu releases for details.

Packages for unsupported Ubuntu versions might exist but may disappear any time.

2.2. Development releases

This Ubuntu repository contains packages which are automatically built a few minutes after every commit. To use it, run the following commands:

$ curl https://baltocdn.com/i3-window-manager/signing.asc | sudo apt-key add - $ sudo apt install apt-transport-https --yes $ echo "deb https://baltocdn.com/i3-window-manager/i3/i3-autobuild-ubuntu/ all main" | sudo tee /etc/apt/sources.list.d/i3-autobuild.list $ sudo apt update $ sudo apt install i3

Development versions are only available for the latest version of Ubuntu, which is bionic at the moment.

3. Debian repository

Our Debian repository contains packages which are automatically built a few minutes after every commit. To use it, run the following commands:

$ curl https://baltocdn.com/i3-window-manager/signing.asc | sudo apt-key add - $ sudo apt install apt-transport-https --yes $ echo "deb https://baltocdn.com/i3-window-manager/i3/i3-autobuild/ all main" | sudo tee /etc/apt/sources.list.d/i3-autobuild.list $ sudo apt update $ sudo apt install i3

4. Preferring the autobuilder version of i3

On installations where you have multiple sources (stable and testing, or testing and unstable for example), apt-get install i3 might not get you the autobuilder version.

To ensure that the autobuilt i3 packages will be preferred to the packages of your distribution, create the file /etc/apt/preferences.d/00-i3-autobuild.pref with the following contents:

Package: i3* Pin: origin "baltocdn.com" Pin-Priority: 1001

Then, run apt update and install i3.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *