blog-public/content/post/i3wm-config.md
Denis Zheleztsov a5dd73f274 Initial public
Some content was deleted before this project
has been moved to public
2021-10-18 19:45:57 +03:00

6.8 KiB
Raw Blame History

+++ date = "2017-05-14T13:14:34+03:00" draft = false title = "Пилим i3wm" comments = true tags = ["linux", "i3wm", "polybar"]

+++

Я тут на ЛОРе недавно постил скриншот и, вроде, людям понравилось. Попробую разобрать тут свой конфиг.

Софт

Я использую Ubuntu 16.04, так что все действия актуальны для нее.

Это форк оригинального i3, где добавляются гапсы(отступы между окнами).

Сборку и установку производим так:

git clone https://github.com/Airblader/i3 -b 4.13
cd i3
dpkg-checkbuilddeps # проверяем какие зависимости нужно установить для сборки пакета, устанавливаем их.
dpkg-buildpackage -uc -us # собираем пакет
sudo dpkg -i ../i3-wm_4.13-1_amd64.deb # устанавливаем
  • i3lock

Это блокировщик экрана. Ставим его из репозитория universe.

  • compton

Тени, прозрачности и прочая красота. Так же ставим из официальных репозиториев.

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

Компиляем

git clone --branch 3.0.5 --recursive https://github.com/jaagr/polybar
mkdir polybar/build
cd polybar/build
cmake ..
make install
  • rofi

Лаунчер. Так же ставим из репозиториев.

  • feh

На самом деле - это просмотрщик изображений, но еще он позволяет установить обои.

  • dunst

Уведомления(libnotify) рабочего стола.

Конфигурация

Можно приступать к настройке WM.

~/.config/i3/config

# Клавиша super в качестве модификатора
set $mod Mod4
# Шрифты
font pango:hack 12
# Alt в качестве модификатора для управления плавающими окнами
floating_modifier Mod1
# Терминал
bindsym $mod+Return exec i3-sensible-terminal
# Закрытие окна
bindsym $mod+q kill

# Запуск лаунчера
bindsym $mod+d exec rofi -show run

Для настройки цветов лаунчера в ~/.Xresources пишем:

! ------------------------------------------------------------------------------
! ROFI Color theme
! ------------------------------------------------------------------------------
rofi.color-enabled: true
rofi.color-window: #393939, #393939, #268bd2
rofi.color-normal: #393939, #ffffff, #393939, #268bd2, #ffffff
rofi.color-active: #393939, #268bd2, #393939, #268bd2, #205171
rofi.color-urgent: #393939, #f3843d, #393939, #268bd2, #ffc39c

Hint: На сайте rofi можно найти несколько тем.

Локсрин. Биндим i3lock на $mod+l.

# Lock desktop
bindsym $mod+l exec ~/.config/i3/lock.sh

Скрипт ~/.config/i3/lock.sh:

#!/bin/bash

# Make screenshot
scrot /tmp/screen.png

# Scale image
convert -scale 10% -scale 1000% /tmp/screen.png /tmp/screen1.png

# Clean
rm -f /tmp/screen.png

# Lock screen
i3lock -i /tmp/screen1.png

Выглядит это так:

Идем дальше по конфигу.

# Переключение между окнами:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right

Я не использую комбинацию $mod+jklh для переключения между окнами, мне хватает стрелочек. По-этому можно закомментить дефолтную секцию с этими настройками.

Я пропущу дальше секции про управление окнами, т.к. конфиг практически ничем не отличается от дефолтоного. Удаляем/комментируем секцию с i3bar.

Убираем декорации окон

# New window size
new_window pixel

Мультимедиа кнопки

# Pulse Audio controls
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% #increase sound volume
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5% #decrease sound volume
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle # mute sound

# Sreen brightness controls
bindsym XF86MonBrightnessUp exec xbacklight -inc 20 # increase screen brightness
bindsym XF86MonBrightnessDown exec xbacklight -dec 20 # decrease screen brightness

Настройка гапсов

# Эта опция нужна для того, чтобы гапсы отключались, если на эркане всего одно окно.
smart_gaps on

gaps inner 5
gaps outer 2

Автозапуск приложений

# Обои
exec feh --bg-scale /usr/share/backgrounds/gnome/Godafoss_Iceland.jpg &
# Автоблокировка экрана через 2 минуты
exec xautolock -locker ~/.config/i3/lock.sh -time 2 &
# Апллет для управления network-manager
exec nm-applet &
# Композитор
exec compton &
# Conky
exec conky -c /home/d_zheleztsov/.conkyrc &
# Почему-то без такого костыля у меня dunst запускаться не хочет
exec killall dunst && dunst -conf /home/d_zheleztsov/.config/dunst &

# Изменение цветовой температуры в зависимости от времени суток
exec redshift &

# Запускаем приложения на своих рабочих столах
exec --no-startup-id i3-msg 'workspace 1; exec firefox'
exec --no-startup-id i3-msg 'workspace 2; exec gnome-terminal'
exec --no-startup-id i3-msg 'workspace 3; exec emacs25'
exec --no-startup-id i3-msg 'workspace 4; exec pidgin'
exec --no-startup-id i3-msg 'workspace 5; exec evolution'

# Панель
exec ~/.local/bin/polybar main &

По поводу конфигурации панели будет хорошо почитать официальную вики.

Итоговые конфиги

Что получилось