Установка и настройка приложения i3 pro. Допиливаем Linux-десктоп для гика

Логотип i3WM

В современных графических оболочках концепция тайлига очень сильно недооценивается, примитивный тайлинг есть и в 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

По умолчанию конфиг i3WM находится в папке ~/.config/i3

Вообще для того чтобы виртуозно работать с конфигом i3wm надо всего лишь знать что все что идет после # - комментарий, и еще три вещи:
1) Запуск программ происходит с помощью exec, для того чтобы наш оконный менеджер что то запустил используем следующий шаблон

exec <команда>

  1. Пример
    exec compton
    При запуске i3 - запуститься и композитор compton
  2. Пример
    exec ~/script.sh
    При запуске i3 - запуститься скрипт который лежит в домашней папке под именем script.sh
  3. Пример
    exec nitrogen - -restore
    При запуске i3 - запуститься nitrogen с опцией restore

2) Установка переменных. В i3wm можно создать переменные, работает это все как define в C++. На место переменной встанет заданная ей строчка. Переменные можно задать с помощью set.

set $<имя переменной> <значение>

  1. Пример
    set $color #023537
    Переменной $color задано значение #023537
  2. Пример
    set $fileManager pcmanfm-qt
    Переменной $fileManager заданное значение pcmanfm-qt

Переменные удобно использовать создавая блок настроек, дабы потом не бегать по конфигу i3wm и не искать нужный пункт.

3) Комбинации клавиш задаются с помощью bindsym, синтаксис предельно прост

bindsym <комбинация> <действие>

  1. Пример
    bindsym $mod+1 workspace 1
    При нажатии mod клавиши и цифры 1 - мы перейдем на рабочий стол 1.
  2. Пример
    bindsym XF86Tools exec firefox
    При нажатии кнопки Tools - запустится FireFox
  3. Пример
    set $press XF86Search
    set $search dmenu
    bindsym $press $search
    При нажатии заданной в переменной кнопки - будет выполнена заданная в другой переменной программа.

В начале конфига стоит поправить пару строчек на свой вкус:

set $mod Mod4 # Установка mod клавиши

font pango:xos4 Terminus 8 # Установка шрифта для рамок окна

Теперь давайте поглубже копнем в создание горячих клавиш.
Скорей всего у вас на клавиатуре будет 6той ряд клавиш, который хочется использовать по полной. Что бы узнать имя клавиши я использую xev .
Запустите xev , и наведя на белое окно нажимайте нужную клавишу что бы узнать ее имя. Для удобства анализа 6го ряда запускайте его так

Этого было бы достаточно если бы не пару проблем с которыми я столкнулся когда пытался настроить некоторые клавиши.

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 - окно требует внимания (всплывающее уведомление например)

Пример настройки цвета;

# 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 } }

Внешний вид приложений

Логотип Qt

Для настройки внешнего вида приложений надо будет попотеть.
Начнем с простого - настройки GTK+
Все что нам надо, это лишь программа lxappearance ,в ней можно настроить иконки, тему GTK и курсора.

Теперь сложнее - настройка Qt.
Для настройки Qt нам нужно будет всего два приложения qt4config и qt5ct .
Запускаем qt4config - выбираем тему, шрифт и т. п. - все.
Но вот если мы запустим qt5ct то увидим сообщение о отсутствии переменной среды. Чтобы исправить нам надо будет отредактировать файл Xsession , т.к я использую sddm - то у меня он находиться по адресу /usr/share/sddm/scripts/Xsession. В него нам надо добавить строчку export QT_QPA_PLATFORMTHEME="qt5ct" - после чего перелогинимся и уже спокойно можем запустить qt5ct и там провести настройку

По мимо стандартных тем для Qt можно выбрать движок тем. Советую обратить внимание на Kvantum - это SVG based движок для Qt. Простой в настройке, тем пока что мало, но то что есть выглядят очень круто и футуристично.

Анимации и VSync

Логотип CompizFusion

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

Добавим в конфиг exec compton -f --vsync drm
И после перезапуска получаем красивые переходы, прозрачность и главное вертикальную синхронизацию, все очень просто!

Обои

Интерфейс Nitrogen

Про обои мы тоже договорились что будем использовать nitrogen. Запускаем его, выбираем обоину и радуемся, все что остается, это только добавить в конфиг exec nitrogen --restore

Conky

Conky достаточно популярный виджет в мире Linux

Это необязательный пункт, но я подумал что стоит и его упомянуть, тут я просто покажу как надо запускать коньки в i3wm
exec conky -c ~/.config/i3/conky_c
Информации по настройке коньков в интернете уйма, от себя добавлю лишь то - что стоит исключить их из обработки теней в compton.

Лаунчер Приложений

Вообще под Linux есть уйма различный лаунчеров, рассмотрим самые популярные.

  • Dmenu - каноничный лаунчер, по факту это выпадающая строка терминала с автодополнением. Минималистичный и легкий.
  • Xfce AppFinder - лаунчер приложений из окружения XFace, основан на GTK+ , не сказать что удобное решение, но он простой и понятный.
  • Rofi - Достаточно гибкий лаунчер, по мимо простого запуска приложений умеет навигацию по окнам и ssh клиент.

Вывод

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

Ну раз уж такое дело, то думаю ShowMyDesktop тред в комментариях будет не лишнем.
Спасибо за внимание!

руководство для конечного пользователя по запуску приложения на различных операционных системах и платформах

Установка

Apple iOS

Установка c "App Store" на iPad, iPhone, iPod touch:

Войдите в учетную запись (магазин) iTunes на iOS устройстве. Перейдите по ссылке на i3 pro или введите "i3 pro" в Поиске. Установите приложение.

Ограничение доступа

Гид-доступ (Guided Access) – «режим ограниченного использования» Apple iOS, стандартная опция iOS начиная с iOS 6.

Гид-доступ позволяет заблокировать кнопку Home, чтобы нельзя было выйти из приложения. Также позволяет оставить активной только часть экрана, ограничивая работу с его областями. Постановка и снятие гид-доступа осуществляется с использованием кода-пароля. Экран блокировки и "сон" продолжают работать.

настройка:

Настройки > Основные > Универсальный доступ > Гид-доступ

Режим полезен при использовании iPad, iPhone, iPod touch как стационарной панели в магазине, гостинице, на демо-стенде, в шоу-руме, на выставке и т.д.


Google Android

Приложение доступно для установки с Google Play или сайта iRidium Mobile:

  • Установка с Google Play

Откройте Google Play на Android устройстве, найдите приложение i3 pro через Поиск и установите его.

Если Google Play не позволяет установить i3 pro ("приложение не поддерживается этим устройством"):

  1. Откройте Настройки Android устройства.
  2. Разрешите установку сторонних приложений, пункт "Неизвестные источники". Обычно этот пункт находится в разделе "Безопасность > Администрирование устройства". Однако, в зависимости от версии Andorid, он может находиться в другом разделе, например, "Приложения".
  3. Скачайте файл.apk приложения i3 pro с сайта iRidium через браузер вашего Android устройства.
  4. Запустите установку приложения через меню "Загрузки" или из файлового менеджера (например, "File Expert").

Также вы можете скачать и установить файл.apk приложения на свой ПК, а потом загрузить на карту памяти Android устройства для установки через файловый менеджер.

Microsoft Windows

Скачайте и установите с сайта iRidium Mobile приложение i3 pro в составе дистрибутива iRidium (Setup ). Приложение i3 pro.exe доступно в "Пуск > Все программы > iRidium Pro > iRidium Client".

Apple Mac OS X

  • Приложение доступно для установки с сайта iRidium Mobile:

Скачайте дистрибутив i3 pro для OS X , распакуйте архив с программой двойным кликом и скопируйте приложение в папку Applications (Программы).

  • Установка через программу iTunes на ПК или Mac:

Запустите приложение iTunes на ПК или Mac, в Поиске App Store введите "i3 pro", загрузите приложение. Синхронизируйте устройство с iTunes.

Авторизация в приложении

1 Нажмите кнопку LOGIN & PASSWORD .

Кнопка QR-CODE предназначена для пользователей системы BYOD.

2 Введите свой e-mail и пароль, затем нажмите кнопку SIGN IN .

Загрузка и запуск проекта

Проект автоматизации загружается с облака iRidium. Интегратор/разработчик должен предоставить доступ конечному пользователю к объекту, чтобы проект был доступен ему после авторизации.

По прямой ссылке

Просто нажмите кнопку "облако со стрелкой" на против требуемого проекта из списка.

С помощью встроенного сканера QR-кода

1 Смахните по экрану слева-направо. Появится системное меню.

2 Нажмите кнопку SCAN QR-CODE .

3 Отсканируйте предоставленный QR-код.

С помощью стороннего сканера QR-кода

1 Предварительно скачайте приложение i3 pro и авторизуйтесь в нем.

Но по факту они были признаны негодными для использования. Первый - потому что конфигурируется через правки исходников, второй - потому что конфиг на lua и требует слишком много бубнов. (Мне любопытно, сколько времени на настройку потратили те, кто сидят под этими wm).

i3 - по слухам, требует сильно меньше усилий для настройки. Ну, чтоже...посмотрим.

Ставим i3, а также дополнительные пакеты:

$ sudo apt-get install i3 i3status i3lock dmenu

После логинимся под i3 … вуаля. При первом запуске i3 задаст несколько вопросов (где хранить конфиг и что считать mod-клавишей, то есть клавишей - модификатором. Я назначил win-клавишу, это, кстати, предлагается по умолчанию).

Основные сочетания клавиш:

  • Mod + Enter - открыть новый терминал;
  • Mod + D - запустить любую программу через dmenu;
  • Mod + 0..9 - переключение между workspace’ами (их, кстати, 10. Номер текущего высвечивается в левом нижнем углу);
  • Mod + Shift + 0..9 - перемещение окон в заданный workspace;
  • Mod + Shift + Q - закрыть текущее окно;
  • Mod + Стрелочки - перемещение между окнами, вместо стрелочек также могут быть использованы клавиши «J» (влево), «K» (вниз), «L» (вверх) и «;» (вправо);
  • Mod + Shift + Стрелочки - перемещение окон в пределах workspace’а, вместо стрелочек также могут быть использованы буквненные клавиши и точка с запятой;
  • Mod + V - использовать вертикальное разбиение;
  • Mod + H - использовать горизонтальное разбиение (отмечу, что можно запросто комбинировать вертикальное и горизонтальное разбиение, благодаря чему можно достичь интресных эфектов);
  • Mod + E - размещение окон по-умолчанию (default layout);
  • Mod + S - стековое размещение (stacking layout);
  • Mod + W - размещение с табами (tabbed layout);
  • Mod + F - раскрыть окно во весь экран или свернуть его обратно;
  • Mod + Shift + Пробел - разрешить свободное перемещение окна (floating mode) или вернуть его в мозаику;
  • Mod + Shift + R - рестарт i3 (например, после обновления конфига);
  • Mod + Shift + E - выйти из i3;
Настраивается i3 через простые конфиг-файлы: ~/.i3/config и ~/.i3status.conf (ура! никакого lua и пересборки исходников!!!)

Кстати, ~/.i3/config - получаем путем копирования из /etc/i3.. по умолчанию ~/.i3/config отсутствует.

$ cp /etc/i3status.conf ~/.i3/i2status.conf

Ставим xxkb и загоняем его в автостарт (exec в ~/.i3/config):

Exec xxkb &

Также ставим и вписываем на автозапуск необходимые апплеты:

Exec nm-applet & exec blueman-applet &

Затем - клавиши управления звуком:

# Volume settings bindsym XF86AudioRaiseVolume exec amixer -q sset Master 3%+ bindsym XF86AudioLowerVolume exec amixer -q sset Master 3%- bindsym XF86AudioMute exec amixer -q set Master toggle

Там в общем - всё понятно. Вообще, i3 отличается редкой юзабельностью и понятностью конфигов.

Но и это, как говорится, “еще не всё”. Конфиги хорошо документированы. Достаточно посмотреть на http://i3wm.org/i3status/manpage.html (для затравки: там описано, например, как использовать dzen2 с i3) и http://i3wm.org/docs/userguide.html , чтобы понять - документировано всё, достаточно хорошо. Да, и всё, что описано в документации - работает!

  • Если хочется попробовать тайлинговый менеджер, то имеет смысл посмотреть на i3 - он, на данный момент, по моему скромному мнению, наиболее прост с точки зрения настройки
  • Придется чуть “перестроить голову”. Тайлинговый менеджер - это другой способ организации взаимодействия ПК - человек, хотим мы этого или нет. Просто - другой. Больше клавиатуры, минимум мыши. На рабочий стол файл не положить (да и сам рабочий стол так… весьма относителен).
  • Тем не менее, жить можно, и достаточно комфортно. Хотя по первости кажется - ну его нафиг! Но если это пережить (до состояния “пальцы помнят”), то становится достаточно удобно.

Лично я поработал под i3 около недели, вернулся назад (openbox и панели xfce), но вот серьезно подумыаю, что на нетбуке (стареньком 8" sony, широкоформатном до безобразия) i3 пропишется основным менеджером... причем, видимо, надолго.

Как вы, должно быть, помните, моим первым тайловым оконным менеджером был Xmonad . Он вполне устраивает меня на стационарном компьютере, но, к сожалению, на EeePC с ним много возни — нужно допиливать индикатор батареи, выводить куда-то уровень сигнала Wi-Fi и тп. После небольшой консультации с народом в Twitter’е , я решил попробовать оконный менеджер i3.

Устанавливается i3 примерно так (ох уж эта Бубунта):

sudo apt-get install i3 i3status i3lock dmenu

Завершаем работу в текущем оконном менеджере, вводим имя пользователя и пароль, выбираем оконный менеджер i3. При первом запуске i3 спросит вас, создать ли дефолтный конфиг (да, само собой разумеется) и что использовать в качестве Mod-клавиши (Win, потому что она все равно ни для чего не нужна).

Все, мы работаем под i3. Основные сочетания клавиш следующее:

  • Mod + Enter — открыть новый терминал;
  • Mod + D — запустить любую программу через dmenu;
  • Mod + 0..9 — переключение между workspace’ами;
  • Mod + Shift + 0..9 — перемещение окон в заданный workspace;
  • Mod + Shift + Q — закрыть текущее окно;
  • Mod + Стрелочки — перемещение между окнами, вместо стрелочек также могут быть использованы клавиши «J» (влево), «K» (вниз), «L» (вверх) и «;» (вправо);
  • Mod + Shift + Стрелочки — перемещение окон в пределах workspace’а, вместо стрелочек также могут быть использованы буковки и точка с запятой;
  • Mod + V — использовать вертикальное разбиение;
  • Mod + H — использовать горизонтальное разбиение;
  • Mod + E — размещение окон по-умолчанию (default layout);
  • Mod + S — стековое размещение (stacking layout);
  • Mod + W — размещение с табами (tabbed layout);
  • Mod + F — раскрыть окно во весь экран или свернуть его обратно;
  • Mod + Shift + Пробел — разрешить свободное перемещение окна (floating mode) или вернуть его в мозаику;
  • Mod + Shift + R — рестартонуть i3 (например, после обновления конфига);
  • Mod + Shift + E — выйти из 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 и ~/.i3status.conf.

В ~/.i3/config я дописал:

bindsym $mod+t border toggle

Exec dropbox start
exec wicd-client -t
exec gxneur &

Bar {
position top
status_command i3status
}

Первой строчкой я повесил на сочетание Mod + T изменение border style. По-умолчанию окна в i3 имеют заголовки и границы, которые могут оказаться совершенно лишними, если у вас, например, во весь экран открыт Chrome.

Следующие три строчки добавляют на автозапуск некоторые программы. С Dropbox все понятно. Утилита wicd — это такая штука, которая висит в трее и позволяет управлять подключением к проводным и беспроводным сетям. Устанавливается она следующим образом:

sudo apt-get install wicd
sudo / etc/ init.d/ wicd start

Чтобы NetworkManager не мешал работе wicd, говорим:

sudo stop network-manager

Обратите также внимание на консольный аналог wicd, утилиту wicd-curses.

Дополнение: Все оказалось намного проще:

exec nm-applet &
exec blueman-applet &

Xneur, думаю, не нуждается в представлении. Его я использовал просто в качестве индикатора текущей раскладки клавиатуры (без которого, впрочем, вполне можно обойтись). Устанавливается xneur следующим образом:

sudo apt-get install xneur gxneur

В конце конифга (блок bar) я говорю отображать панельку с часами, треем и так далее вверху экрана, а не внизу, как это делается по-умолчанию.

За основу ~/.i3status.conf я взял файл /etc/i3status.conf. В нем я поправил формат отображения текущей даты, изменил имена сетевых интерфейсов, убрал лишнюю информацию об IPv6, DHCP и VPN . Не вижу смысла приводить здесь результат. Что радует в i3, так это интуитивно понятный формат конфигов и хорошая документация.

Ну и последним штрихом будет добавление в ~/.bashrc следующей строки:

alias lockscreen ="i3lock -c 000000"

Утилита i3lock предназначена для блокировки экрана. В отличие от многих аналогичных утилит она вообще ничего не показывает пользователю. То есть экран тупо остается черным (цвет можно изменить) до тех пор, пока не будет введен пароль текущего пользователя. Помимо определенного цвета также можно использовать картинку в формате PNG.