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

Как установить i3 в archlinux

  • автор:

i3 (Русский)

i3 — это динамический тайловый оконный менеджер, вдохновлённый wmii и нацеленный на разработчиков и опытных пользователей.

Среди заявленных целей i3 — понятная документация, надлежащая поддержка нескольких мониторов, древовидная структура для окон и различные режимы, как в vim.

Установка

Также есть группа пакетов i3 . В её состав входят менеджер окон, блокировщик экрана и две программы, которые записывают строку статуса в i3bar через stdout.

Запуск

Из консоли

Запустите i3 с помощью xinit.

Экранный менеджер

В состав i3-wm входят i3.desktop и Xsession, который запускает оконный менеджер. i3-with-shmlog.desktop включает журнал (полезно для отладки). i3-gnome AUR интегрирует i3 с GNOME.

Использование

Назначение клавиш

В i3 команды вызываются с помощью клавиши-модификатора, называющейся $mod . По умолчанию (Mod1) это Alt , но также популярна альтернатива (Mod4), которая известна как Super . Клавиша Super обычно изображается на клавиатуре со значком Windows, а на клавиатуре Apple она представлена в виде клавиши Command.

Сочетания клавиш, используемые по умолчанию, описаны в документации; смотрите справочную карту i3 и Использование i3. Смотрите назначение клавиш чтобы добавить новые сочетания/горячие клавиши.

Пользователи не-Qwerty раскладок могут захотеть обойтись без «мастера настройки», как описано ниже.

Если вы переключаетесь между несколькими оконными менеджерами или средами рабочего стола, можно использовать sxhkd или другую программу, не зависящую от среды, для управления сочетаниями клавиш. Дополнительную информацию можно найти в статье Горячие клавиши#Xorg.

Контейнеры

i3 управляет окнами в виде древовидной структуры, с контейнерами, как со строительными блоками. Эта структура разделяется по горизонтали и вертикали. Контейнеры по умолчанию тайловые (tiled), но могут быть установлены как стековые лэйауты (stacked layouts), так и плавающие (floating) (например для диалоговых окон). Плавающие окна всегда поверх.

Запуск приложений

i3 использует dmenu в качестве инструмента для запуска приложений, который по умолчанию вызывается нажатием $mod+d . Так как это опциональная зависимость, перед использованием нужно вручную установить пакет dmenu .

i3-wm содержит i3-dmenu-desktop, Perl оболочку для dmenu, которая использует ярлыки приложений для создания списка всех установленных приложений. Кроме того, можно использовать j4-dmenu-desktop-git AUR .

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

Использование KRunner для запуска приложений в KDE Plasma/i3

При запуске Plasma с KDEWM=/usr/bin/i3 можно установить KRunner в качестве альтернативной программы запуска приложений с помощью $mod+d , добавив следующее в конфигурацию i3:

Настройка

Для подробностей смотрите Настройку i3. Данная статья предполагает, что файл настроек i3 расположен в папке

Мастер настройки и альтернативные раскладки клавиатуры

При первом запуске i3 предлагает запустить мастер настройки i3-config-wizard. Этот инструмент создаёт файл

/.config/i3/config , беря за основу шаблон /etc/i3/config.keycodes . Он вносит в шаблон два изменения:

  1. Он просит пользователя выбрать клавишу-модификатор по умолчанию, который он добавляет в шаблон в виде одной строки, например, set $mod Mod1 ; и
  2. заменяет все строки bindcode на строки bindsym, соответствующие текущей раскладке клавиатуры пользователя.

Шаг 2 предназначен для того, чтобы гарантировать, что четыре навигационных сочетания клавиш, j , k , l и ; на Qwerty-клавиатуре будут отображены на символы клавиш, которые имеют такое же расположение, например, h , t , n , s на клавиатуре Dvorak. Побочным эффектом этой магии является то, что до пятнадцати других клавиш могут быть переадресованы таким образом, что это нарушит мнемонику — так, для пользователя Dvorak «перезапуск» («restart») будет привязан к $mod1+p вместо $mod1+r , «разделение по горизонтали» («split horizontally») будет привязано к $mod1+d вместо $mod1+h , и так далее.

Поэтому пользователи альтернативных раскладок клавиатуры, которым нужны простые привязки клавиш, соответствующие привязкам, приведённым в руководствах, могут предпочесть обойтись без «мастера настройки». Это можно сделать, просто скопировав /etc/i3/config в

/.i3/config ) и отредактировав этот файл.

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

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

Добавьте команду exec в файл

Если использовать exec_always , то команда будет запускаться каждый раз при перезапуске i3.

Также можно использовать XDG Autostart.

i3bar

В дополнение к показу информации рабочих пространств, i3bar может выступать в качестве входных данных для i3status или альтернативы, такие как те, которые упомянуты в следующем разделе. Например:

За дополнительной информацией обращайтесь в раздел Configuring i3bar официального руководства пользователя.

Альтернативы i3bar

Некоторые пользователи предпочитают панели, такие как те, которые предусмотрены обычными средами рабочего стола. Это может быть реализовано в i3 путём запуска приложения панели во время загрузки.

Например, для использования панели XFCE ( xfce4-panel ) добавьте следующую строку в любом месте файла

Можно отключить i3bar, закомментировав секцию bar < >в

/.config/i3/config , или добавить сочетание клавиш для его переключения:

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

  • polybar — Быстрый и простой в использовании инструмент для создания панелей статуса.
  • excalibar — Лёгкий, но настраиваемый статус-бар, написанный на языке C.

i3status

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

Не все плагины определены в настройках по умолчанию, и некоторые значения настроек могут быть недействительными для вашей системы, поэтому должны быть внесены соответствующие изменения. Для подробностей смотрите i3status(1) .

Замены i3status
  • conky — Высоко расширяемая система мониторинга. Для использования с i3bar смотрите этот учебник.
  • i3blocks — Расширяется с помощью shell-скриптов. Может обрабатывать события мыши, прерывания, и определение интервалов регенерации на основе каждого блока.
  • i3pystatus — Расширяемый Python 3 статус бар со множеством плагинов и опций настроек по умолчанию.
  • j4status — Обеспечивает строку статуса, настраиваемую с помощью плагинов, написан на C. Пакет j4status-plugins-gitAUR предоставляет дополнительные плагины.
  • goi3bar — Замена i3status, написанная на языке Go. Управляемый конфигурационным файлом, с несколькими плагинами, опциями параллелизма и богатой поддержкой плагинов.
  • goblocks — Быстрая, лёгкая замена i3status, написанная на языке Go.
  • bumblebee-status — Генератор строк состояния Python с возможностью оформления.
  • ty3status — Замена i3status, написанная на языке Typescript. Построена с первоклассной поддержкой блоков javascript.
  • i3status-rust — Высокоэффективная и многофункциональная замена, написанная на языке Rust. Может обрабатывать push-обновления, индивидуальные интервалы обновления, тематизацию и события нажатия.
  • Barista — Замена i3status, написанная на языке Go.
Оболочки для i3status
  • i3cat — Оболочка, написанная на Go, которая может объединить ввод данных из нескольких внешних источников. Может обрабатывать события мыши и перенаправление указаных пользователем сигналов для своих подпроцессов.
  • py3status — Расширяемая оболочка i3status написанная на Python.
  • YaGoStatus — Еще одна оболочка для i3status (и не только) написанная на Go.
Шрифты-иконки в строке состояния

Поддержка иконочных шрифтов встроена с i3 версии 4.20.

  • ttf-font-awesome — Масштабируемые векторные иконки, которые могут быть настроены с помощью CSS. Шпаргалка, показывающая коды Unicode для каждого символа.
  • ttf-font-icons — Непересекающаяся и последовательная смесь Awesome и Ionicons. Она также позволяет избежать дублирования между DejaVu Sans и Awesome.
  • ttf-ionicons — Premium шрифт иконок для Ionic Framework.

Чтобы использовать несколько шрифтов, в файле настроек укажите резервные шрифты через запятую:

В соответствии с синтаксисом pango, размер шрифта задаётся только один раз, в конце списка шрифтов. Установка размера для каждого шрифта приведёт к тому, что все шрифты, кроме последнего, будут игнорироваться.

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

/.config/i3status/config , используя коды Unicode из приведённой выше шпаргалки. Метод ввода будет варьироваться между текстовыми редакторами. Например, чтобы вставить значок «heart» (код unicode f004):

  • в различных текстовых редакторах графического интерфейса (например gedit, Leafpad) и терминалов (например GNOME Terminal, xfce4-terminal): ctrl+shift+u , f004 , Enter
  • в Emacs: ctrl+x , 8 , Enter , f004 , Enter
  • в vim (в режиме вставки): Ctrl+v , uf004
  • в urxvt: удерживая Ctrl+Shift , наберите f004

Эмулятор терминала

По умолчанию при нажатии $mod+Enter запускается i3-sensible-terminal — скрипт, вызывающий терминал. Порядок терминалов, которые он пытается запустить, описан в i3-sensible-terminal(1) .

Чтобы вместо него запускался выбранный вами терминал, измените эту строку в

В качестве альтернативы можно установить переменную окружения $TERMINAL .

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

Добавьте bindsym button1 nop , чтобы не переключать фокус на окно, когда вы щёлкаете по его заголовку. Полезно, если ваша разметка по умолчанию имеет вкладки и вы часто промахиваетесь и попадаете по вкладкам i3 вместо приложения.

Советы и рекомендации

Быстрый переход к открытому окну

  • quickswitch-i3 — Python-утилита для быстрого перехода к окнам и определения их местоположения в i3
  • i3-wm-scripts — поиск и переход к окнам с поиском по регулярному выражению
  • rofi — Search and jump to open and scratchpad window
  • i3-easyfocus — Фокус и выбор окон в i3
  • wmfocus — Фокус и выбор окон в i3 и других оконных менеджерах
  • i3-cycle-focus — Функциональность Alt-Tab для i3
  • i3-winmotion — Фокус и выбор видимых окон вi3

Быстро перейти к необходимому окну

Сохранение и восстановление расположения окон

Начиная с версии 4.8, i3 может сохранить и восстановить рабочее пространство слоёв (лэйаутов). Чтобы это сделать, необходимы пакеты perl-anyevent-i3 и perl-json-xs .

Сохранение текущего расположения окон одного рабочего пространства

Чтобы сохранить текущее расположение окон, выполните следующие действия:

  1. Сначала выполните различные команды, чтобы открыть окна в предпочтительном рабочем пространстве, и измените их размер по необходимости. Запишите каждую выполненную команду для каждого окна.
  2. Теперь в новом рабочем пространстве откройте терминал и выполните следующее: где N — это номер предпочтительного рабочего пространства. Это позволит сохранить текущую структуру рабочего пространства N в файл

Восстановление расположения окон на рабочем пространстве

Есть два способа восстановить расположение окон на рабочем пространстве: написать скрипт или отредактировать

/.config/i3/config для автоматической загрузки макета. В этом разделе будет рассмотрен только первый случай; обратитесь к официальной документации для второго случая.

Для восстановления сохранённого в предыдущем разделе макета создайте файл с именем load_layout.sh и следующим содержимым:

  • Первые строки:

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

  • И команды, которые использовались в предыдущем разделе для открытия нужных окон, но заключённые в круглые скобки и с амперсандом (&) перед закрывающими скобками.

Например, если сохранённый макет содержит три uxterm окна:

Сделайте файл исполняемым. И, наконец, макет рабочего пространства N может быть загружен в рабочее пространство М путём запуска команды:

/.config/i3/config и перезапустите i3, после чего сочетание клавиш Mod+g будет запускать этот скрипт.

/.config/i3/workspace_N.json нужно редактировать вручную.

Контейнер для электронного блокнота

По умолчанию, scratchpads (блокноты) содержат только одно окно. Однако контейнеры также могут быть сделаны блокнотом.

Создайте новый контейнер (например, Mod+Enter ), разделите их ( Mod+v ) и создайте другой контейнер. Сфокусируйтесь на родительском ( Mod+a ), разделите в противоположном направлении ( Mod+h ), и создайте снова.

Фокус на первом контейнере (с акцентом родительского по мере необходимости), сделайте окно плавающим (floating) ( Mod+Shift+Space ), и переместите его в блокнот ( Mod+Shift+- ). Теперь вы можете разделить контейнеры по предпочтению.

Смотрите также [2] для нескольких scratchpads.

Хранитель экрана и управление питанием

С помощью xss-lock вы можете зарегистрировать экранный блокировщик для вашего сеанса i3. Кроме того, вы можете использовать xautolock для блокировки экрана после заданного периода времени:

Можно использовать service-файл systemd для блокировки экрана перед уходом в ждущий или спящий режим; смотрите Управление питанием#Файлы служб. Обратите внимание, что i3lock требует, чтобы тип службы был forking .

Другой вариант — использовать xidlehook AUR с betterlockscreen AUR или любым другим хранителем экрана. xidlehook — это замена xautolock, написанная на Rust и имеющая дополнительные возможности. Сюда входит возможность отключения блокировки при воспроизведении звука или при полноэкранном режиме. Параметр —timer задаётся в секундах:

Выключение, перезагрузка, блокировка экрана

Так как нет иконок на экране для Выключения, Перезагрузки и Блокировки Экрана, для удобства, мы можем задать комбинацию горячих клавиш. Ниже предпологается, что установлен polkit , чтобы позволять обычным (не привелигелированным) пользователям запускать команды управления питанием.

Добавьте следующие строки в ваш

/.config/i3/config , по завершению вам будет предложен запрос, когда вы нажимаете $mod+pause .

Теперь при каждом нажатии $mod+pause будет появляться запрос. Для более сложного поведения используйте отдельный скрипт и ссылайтесь на него в режиме. [3]

  • sleep 1 добавляет небольшую задержку, чтобы предотвратить возможное состояние гонки при уходе в ждущий режим [4]
  • Аргумент -i команды systemctl poweroff позволяет выключить систему, даже если в неё вошли другие пользователи (для этого нужен polkit ) или когда logind (ошибочно) предполагает это. [5]

Список альтернативных блокировщиков экрана есть в статье Список приложений/Безопасность#Блокировка экрана.

Перекрытие окна терминала

Подобно dwm, в i3 можно «поглощать» (swallow) текущее окно терминала новым окном программы, запущенной через этот терминал. Это позволяет сделать пакет i3-swallow-git AUR .

Например, чтобы mpv при запуске перекрыл собой окно терминала:

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

Ручное управление внешними дисплеями

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

Пример меню для включения/выключения выходов VGA и HDMI на ноутбуке:

Любое окно, которое всё ещё открыто на выключенном дисплее, автоматически возвращается на оставшийся активным дисплей.

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

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

Список доступных опций есть в статье xrandr (Русский). Смотрите также i3 userguide и/или i3 FAQ на reddit.

Вкладки или стековый просмотр веб-страниц

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

Чтобы i3 управлял вкладками веб-браузера (в этом примере для uzbl), добавьте следующую строку в ваш

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

Если вы предпочитаете вкладки, с окнами в горизонтальном направлении (‘tabs’), используйте:

Переменные рабочих пространств

Так как рабочих пространств в i3 определено много, будет полезно присвоить переменные рабочим пространствам. Например:

Затем замените имена рабочих пространств в соответствии с их переменной:

Правильное обращение с плавающими диалогами

Хотя диалоги должны открываться по умолчанию в плавающем режиме (floating) [6], многие до сих пор открываются в тайловом режиме (tiling). Чтобы изменить это поведение, проверьте WM_WINDOW_ROLE с помощью xorg-xprop и добавьте правильные правила в

/.config/i3/config (используя pcre синтаксис):

Вы также можете использовать в качестве правила заголовок и регулярные выражения:

Скорость Загрузки/Отдачи сети в statusbar

Можно адаптировать этот скрипт. Для этого:

  • переименуйте обе ваши сетевые карты в соответствии с вашей системой (используйте ip addr )
  • найдите их /sys/devices затем замените соответствующими:

Теперь просто сохраните скрипт в подходящем месте (например

/.config/i3 ) и пропишите его в вашу программу статуса.

Автоматическое переключение горизонтальной / вертикальной ориентации

Пакет autotiling AUR позволяет автоматически переключаться между горизонтальной и вертикальной ориентациями окон, что приводит к поведению, похожему на спиральный тайлинг bspwm. После установки добавьте следующее в

/.config/i3/config и перезагрузите i3.

Решение проблем

Общее

Часто ошибки уже исправлены в разрабатываемых версиях i3-git AUR и i3status-git AUR , и в апстриме попросят воспроизвести какие-либо ошибки в этих версиях. [7] Смотрите также Отладка/Трассировка#Параметры компиляции.

Искажённый текст

Кнопки в строке сообщений i3 не работают

Кнопки, такие как «Edit config» в i3-nagbar вызывают i3-sensible-terminal , поэтому убедитесь, что i3 распознаёт ваш #Эмулятор терминала.

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

i3 v4.3 и выше игнорирует размер инкремента подсказки для тайловых окон [8]. This may cause terminals to wrap lines prematurely, amongst other issues. As a workaround, make the offending window floating, before tiling it again.

Курсор мыши остаётся в режиме ожидания

При запуске приложения или скрипта, которое не поддерживает протокол startup notification, курсор мыши будет оставаться в режиме занят/часы/и т.п. в течение 60 секунд.

Чтобы решить эту проблему для конкретного приложения, используйте параметр —no-startup-id , например:

Не реагируют сочетания клавиш

Некоторые утилиты, такие как scrot, могут не работать при использовании обычных сочетаний клавиш (которые выполняются сразу в момент нажатия клавиш). В таких ситуациях выполняйте команду после отпускания нажатых клавиш, добавив аргумент —release [9]:

Тиринг (разрыв картинки по горизонтали)

i3 не осуществляет двойную буферизацию должным образом [10] следовательно, может появится тиринг или мерцание. Чтобы предотвратить это, установите и настройте picom.

Значки трея не видны

Директива tray_output primary может потребовать установки первичного вывода с помощью xrandr, явного указания вывода или просто удаления этой директивы. [11] Подробности в статье xrandr (Русский). Конфигурация по умолчанию, которую создаёт i3-config-wizard, больше не добавляет эту директиву в конфигурацию, начиная с i3 версии 4.12.

Рабочее пространство по умолчанию для Spotify

Чтобы назначить рабочее пространство по умолчанию для окон Spotify, нельзя использовать стандартный путь с командой assign , а лучше использовать команду for_window , например

Чтобы for_window не перемещал окно, если оно уже находится в $ws10 , можно вместо этого использовать move —no-auto-back-and-forth .

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

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

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

Ссылки

Установка

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

Нам понадобится:

  1. i3wm — оконный менеджер и его форк (ответвление) i3-gaps
  2. i3status — вывода строки статуса в i3bar
  3. dmenu — утилита для запуска программ
  4. ttf-font-awesome — шрифтовые иконки
  5. feh — установка обоины на рабочий стол
  6. lxappearance — установка тем для окон, иконок, курсора
  7. pcmanfm — файловый менеджер
  8. gvfs и udiskie — для авто монтирования внешних дисков
  9. xorg-xbacklight — для управлением яркостью экрана
  10. ristretto, viewnior или tumbler — для просмотра фото
  11. picom — для прозрачности окон и для устранения тиринга (вместо compton)

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

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

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

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

Первичная настройка i3wm

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

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

Name already in use

arch-wiki-md-repo / wiki / _content / russian / I3 (russian).md

  • Go to file T
  • Go to line L
  • Copy path
  • Copy permalink
  • Open with Desktop
  • View raw
  • Copy raw contents Copy raw contents

Copy raw contents

Copy raw contents

Состояние перевода: На этой странице представлен перевод статьи i3. Дата последней синхронизации: 4 октября 2015. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

i3 это динамический тайловый оконный менеджер вдохновленный wmii и нацеленный на разработчиков и опытных пользователей.

Клиенты (окна) располагаются внутри контейнеров и организованы в древовидную структуру. Ветки дерева могут быть разделены горизонтально или вертикально, сами контейнеры могут быть сгруппированы в режиме вкладок и в стековом режиме. Окно также может быть плавающим, однако будет располагаться на отдельном слое поверх остальных окон.

Заявленные цели для i3 содержат четкую документацию, надлежащую поддержку нескольких мониторов, древовидную структуру для окон, а также различные режимы, как в vim.

Установите из официального репозитория группу пакетов i3 , которая включает пакеты:

    — непосредственно менеджер окон , предназначенный для вывода строки статуса в i3bar через stdout — блокировщик экрана

Дополнительные пакеты доступны в пользовательском репозитории Arch. Установите i3-git, чтобы получить версию для разработчиков.

Также смотрите раздел #Патчи.

i3-wm включает в себя i3.desktop как Xsession который запускает оконный менеджер. i3-with-shmlog.desktop включает логи (полезно для отладки). Установите i3-gnome, чтобы добавить сессию GNOME.

/.xinitrc , добавив в него:

Если вы хотите, чтобы i3 вел лог (полезно для отладки), добавьте эту строку в

Если вы используете бинарный драйвер Nvidia <302.17, то вам следует добавить флаг —force-xinerama в

/.xinitrc . Подробное описание можно найти на i3wm.org.

Если у вас есть проблемы с преобразованием клавиш (например ; точки с запятой), используйте xorg-xev или смотрите Extra keyboard keys (Русский).

i3 использует dmenu в качестве запуска приложений, которое вызывается по умолчанию $mod+d . В качестве альтернативы, можно использовать dmenu2 из AUR которое имеет намного больше возможностей, включая прозрачность и поддержку шрифтов Xft.

i3-wm содержит i3-dmenu-desktop, Perl оболочку для dmenu который использует desktop entries для создания списка всех установленных приложений. Кроме того, пакет j4-dmenu-desktop-git может быть использован; это небольшая замена i3-dmenu-desktop, но более быстрая 1.

В i3, команды вызываются с помощью клавиши модификатора, называющейся $mod . По умолчанию (Mod1) это Alt , с популярной альтернативой (Mod4), которая известна как Super .

Смотрите справочную карту i3 и Использование i3 по умолчанию. Смотрите назначение клавиш чтобы добавить новые сочетания/горячие клавиши.

i3 управляет окнами в виде древовидной структуры, с контейнерами, как со строительными блоками. Эта структура филиалов с горизонтальным или вертикальным разделением. Контейнеры по умолчанию тайловые (tiled), но могут быть установлены как стэковые лэйауты (stacked layouts), таки в плавающем режиме (floating) (например для диалоговых окон). Плавающие окна всегда поверх.

Для подробностей смотрите Настройку i3. Данная статья предполагает, что файл настроек i3 расположен в папке

Файл настроек позволяет настраивать цвет оформления окон, но синтаксис непрактичен для создавания или использования. Есть несколько проектов, которые делают это проще и включают в себя различные вложенные пользователями темы.

i3-style — Изменяет ваш файл настроек в месте темы, на использование объекта JSON, предназначенного для частой доводки или изменения цветовой схемы

j4-make-config — Объединяет ваш файл настроек с коллекцией тем или персональных частей настроек, например настройка host-specific, позволяет быстро и гибко измененять темы, динамически кастомизировать настройки.

В дополнение к показу информации рабочих областей, i3 bar может выступать в качестве входных данных для i3status или альтернативы, такие как те, которые упомянуты в следующем разделе. Например:

За дополнительной информацией обращайтесь в раздел Configuring i3bar официального руководства пользователя.

Некоторые пользователи предпочитают панели, такие как те, которые предусмотрены обычными Средами рабочего стола. Это может быть реализовано в i3, путём запуска приложения панели во время загрузки.

Для панели XFCE, добавьте следующую строку в любом месте

Можно отключить i3bar закомментировав секцию bar < >в

/.config/i3/config или используя:

Таким образом, вы можете показать или скрыть бар когда пожелаете.

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

Не все плагины определяются в настройках по умолчанию, и некоторые значения настроек могут быть недействительными для вашей системы, поэтому должны быть внесены соответствующие изменения. Для подробностей смотрите i3status(1).

conky — Высоко расширяемая система мониторинга. Для использования с i3bar см этот учебник

i3blocks — Расширяется с помощью shell-скриптов. Может обрабатывать события мыши, прерывания, и определение интервалов регенерации на основе каждого блока.

i3phtatus — Легко расширяемая замена i3status предназначена для i3bar, написан на PHP.

i3pystatus — Расширяемый Python 3 статус бар со множеством плагинов и опций настроек по умолчанию.

i3situation — Другой Python 3 генератор статус бара.

j4status — Обеспечивает строку статуса, настраиваемую с помощью плагинов, написан на C.

Оболочки для i3status

h2status — Баш оболочка для i3status, позволяет в качестве входных данных использовать записи в формате JSON, и может обрабатывать события мыши, а также асинхронные обновления в строке состояния.

i3cat — на основе оболочки go, которая может объединить ввод данных из нескольких внешних источников. Может обрабатывать события мыши и перенаправление указаных пользователем сигналов для своих подпроцессов.

py3status — Расширяемая оболочка i3status написанная на Python.

YaGoStatus — Еще одна оболочка для i3status (и не только) написанная на Go.

Шрифты-иконки в строке состояния

i3bar может быть пропатчен для поддержки XBM icon, но вместо этого, вы можете использовать шрифты-иконки.

ttf-font-awesome — Масштабируемые векторные иконки, которые могут быть настроены с помощью CSS. http://fortawesome.github.io/Font-Awesome/cheatsheet/ Шпаргалка] показывающая пункт Unicode для каждого символа.

ttf-font-icons — Непересекающаяся и последовательная смесь Awesome и Ionicons. Она также позволяет избежать дублирования между DejaVu Sans и Awesome.

Чтобы объединить шрифты, определите последовательность переходящего в резерв шрифта в вашем файле настроек, отделяя шрифты , вот так:

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

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

/.config/i3status/config используя числа Unicode, приведенные в шпаргалке, указанной выше. Метод ввода будет варьироваться между текстовыми редакторами. Например, чтобы вставить значок «heart» (номер unicode f004):

  • в различных текстовых редакторах графического интерфейса (например gedit, Leafpad) и терминалов (например GNOME Terminal, xfce4-terminal): ctrl+shift+u , f004 , Enter
  • в Emacs: ctrl+x , 8 , Enter , f004 , Enter
  • в Vim (Русский) (в режиме вставки): Ctrl+v , uf004
  • в urxvt (Русский): удерживая Ctrl+Shift , наберите f004

По умолчанию при нажатии $mod+Return запускается i3-sensible-terminal представляющий собой скрипт, вызывающий терминал. Для порядка вызова терминала, смотрите i3-sensible-terminal(1).

Вместо запуска выбора терминала, измените эту строку в

Кроме того, установите переменную $TERMINAL :

Советы и хитрости

Расширенная навигация по окнам

Быстрый переход к открытому окну

quickswitch-for-i3 – утилита, написанная на python, позволяющая быстро пеходить к окнам и менять их расположение.

i3-wm-scripts — search for and jump to windows with particular names matching regexp

winmenupy — Launches dmenu with a list of clients, sorted after workspaces. Selecting a client jumps to that window.

rofi — Search and jump to open and scratchpad window

Быстро перейти к необходимому окну

Добавьте в .i3/config : [3]

Сохранить и восстановить расположение окон

Начиная с версии 4.8, и дальше i3 может сохранить и восстановить рабочее пространство слоёв (лэйаутов). Чтобы это сделать, необходимы следующие пакеты: perl-anyevent-i3 и perl-json-xs из оффициальных репозиториев.

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

Сохранить текущее расположение окон одного рабочего пространства

Чтобы сохранить текущее расположение окон, выполните следующие действия:

  1. Во-первых, выполните различные команды, чтобы открыть окна в предпочтительной рабочей области и измените их размер, если это необходимо. Совершите запись каждой выполненной команды для каждого окна.
  2. Теперь, в новой рабочей области откройте терминал и запустите следующее: i3-save-tree —workspace N >

/.i3/workspace_N.json где N есть число предпочтительной рабочей области. Это позволит сохранить текущую структуру рабочей области N в файл

/.i3/workspace_N.json | fgrep -v ‘// splitv’ | sed ‘s|//||g’ >

Восстановить расположение окон на рабочем пространстве

Есть два способа восстановить расположение окон на рабочем пространстве: написав сценарий, или отредактировать

/.i3/config для автоматической загрузки макета. В этом разделе только первый случай будет рассматриваться, обратитесь к официальной документации для второго случая.

Для восстановления сохраненного макета в предыдущем разделе, создайте файл с именем load_layout.sh со следующим содержанием:

  • Исходные строки:

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

  • И команды исполльзуемые в предыдущей секции чтобы получить нужные окна, но заключённые в круглые скобки и амперсандом (&) перед последней скобкой.

Например, если сохранённый макет содержит три uxterm окна:

Затем установим файл как исполняемый:

И, наконец, расположение рабочих областей N может быть загружено в рабочие области М, запустив:

Совет: Добавьте bindsym $mod+g exec

/.i3/config и перезапустите i3, сочетание Mod+g запустит этот скрипт.

Примечание: Если сценарий, описанный выше, не работает как следует, обратитесь к официальной документации. Секции swallows в

/.i3/workspace_N.json нужно редактировать вручную.

Контейнер для электронного блокнота

По умолчанию, scratchpads (блокноты) содержат только одно окно. Однако контейнеры также могут быть сделаны блокнотом.

Создайте новый контейнер (например, Mod+Enter ), разделите их ( Mod+v ) и создайте другой контейнер. Сфокусируйтесь на родительском ( Mod+a ), разделите в противоположном направлении ( Mod+h ), и создайте снова.

Фокус на первом контейнере (с акцентом родительского по мере необходимости), сделайте окно плавающим (floating) ( Mod+Shift+Space ), и переместите его в блокнот ( Mod+Shift+- ). Теперь вы можете разделить контейнеры по предпочтению.

Примечание: Контейнеры не могут быть изменены индивидуально в плавающих окнах. Измените размер контейнеров до создания плавающих окон.

Совет: При использовании только терминальных приложений, рассмотрим мультиплексор, такой как tmux.

Хранитель экрана и управление питанием

Вы можете использовать DPMS на пустом экране или отправлять в режим ожидания/отключать ваш монитор. Добавьте следующие строки в ваш

/.config/i3/config чтобы отправить ваш монитор в режим ожидания после 10 минут простоя.

С xss-lock-git вы можете зарегистрировать скринлокер (экранный блокировщик) для вашей сессии i3. xss-lock подписывается на systemd-events suspend , hibernate , lock-session , и unlock-session с соответствующими действиями (запускает блокировщик и ждёт пока пользователь не разблокирует или не убъёт процесс блокировщика). Он также реагирует на X screensaver и работает или убивает блокировщик в ответ на сигналы x-сервера. Запустите xss-lock в вашем автозапуске добавив следующее:

Кроме того, вы можете использовать xautolock для блокировки экрана после заданного периода времени:

Выключение, перезагрузка, блокировка экрана

Так как нет иконок на экране для Выключения, Перезагрузки и Блокировки Экрана, для удобства, мы можем задать комбинацию горячих клавиш. Ниже предпологается, что установлен polkit, чтобы позволять обычным (не привелигелированным) пользователям запускать команды управления питанием.

Добавьте следующие строки в ваш

/.config/i3/config , по завершению вам будет предложен запрос, когда вы нажимаете $mod+pause .

Примечание:

  • sleep 1 adds a small delay to prevent possible race conditions with suspend [5]
  • The -i argument for systemctl poweroff causes a shutdown even if other users are logged-in (this requires polkit), or when logind (wrongly) assumes so. [6]
  • If you use xss-lock-git, call xset s activate to start the locker. With xautolock the command is xautolock -locknow
  • Вы можете использовать отдельный скрипт для более сложного поведения, и ссылаться на него в режиме. Смотрите [7] для примера.

Для получения альтернативных блокировщиков экрана, смотрите этот список.

Вкладки или стековый просмотр веб-страниц

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

Для того чтобы i3 управлял вкладками веб-браузера (в этом примере для uzbl), добавьте следующую строку в ваш

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

Если вы предпочитаете вкладки, с окнами в горизонтальном направлении (‘tabs’), используйте:

Переменные рабочих областей

Так как рабочих областей в i3 определено много, будет полезно присвоить переменные рабочим областям. Например [8]:

Затем замените имена рабочих области в соответствии с их переменной:

Правильное обращение с плавающими диалогами

Многие диалоги должны открываться, по умолчанию, в плавающем режиме (floating), но многие до сих пор открываются в тайловом режиме (tiling). Чтобы изменить это поведение, проверьте WM_WINDOW_ROLE с xorg-xprop и добавьте правильные правила в

/.i3/config используя pcre синтаксис):

Вы также можете использовать как правило титл и названия регулярных выражений:

Скорость Загрузки/Отдачи сети в statusbar

Вы можете адаптировать этот скрипт. Для этого,

  • переименуйте обе ваши сетевые карты в соответствии с вашей системой (используйте ip addr )
  • найдите их /sys/devices затем замените соответствующими:

Совет: Использование /sys/class/net/*interface*/statistics/ не зависит от расположения PCI.

Теперь просто сохраните сценарий в подходящем месте (например

/.config/i3 ) и укажите вашу программу статуса.

Пакеты с патчами, не вошедшими в апстрим, доступны в AUR:

i3bar-icons-git — Отоброжает иконки XBM в i3bar

i3-smart-border — Умные границы (borders)

i3-wm-iconpatch — Поддержка значков в Titlebar

Во многих случаях, ошибки фиксируются в разрабатываемой версии i3-git (из AUR) и в апстриме попросят воспроизвести какие-либо ошибки в этой версии. [9] Смотрите также Debug — Getting Traces#General.

Кнопки в строке сообщений i3 не работают

Кнопки, такие как «Edit config» в i3-msg вызывают i3-sensible-terminal , поэтому убедитесь, что ваш #Эмулятор терминала признаётся i3.

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

i3 v4.3 и выше игнорирует размер инкремента подсказки для тайловых окон [10]. This may cause terminals to wrap lines prematurely, amongst other issues. As a workaround, make the offending window floating, before tiling it again.

Курсор мыши остается в режиме ожидания

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

Чтобы решить эту проблему для конкретного приложения, используйте параметр —no-startup-id , например:

Чтобы отключить эту анимацию в глобальном масштабе, смотрите Темы курсора#Создание ссылок на недостающие курсоры.

Не реагируют сочетания клавиш

Некоторые утилиты, такие как scrot могут не работать при использовании регулярных горячих клавиш (выполнятся после нажатия клавиш). В таких случаях, выполняйте команду после ключа «освобождения» с параметром —release [11]:

Тиринг (разрыв картинки по горизонтали)

i3 не должным образом осуществляет двойную буферизацию следовательно, может появится тиринг или мерцание. Чтобы предотвратить это, установите и настройте compton. [12]

Making Arch Linux & i3 WM usable

Avatar

This guide helps with making Arch Linux and i3 window manager usable. In this guide I use a script to install Arch Linux. If you are installing Arch for the first time I recommend to do it manually, this will give you a better understanding of how to install an OS.

Some of the programs included in this guide

    — The window manager — The status bar — Polybar module for showing current playing spotify song. — The lockscreen used in this config — Program Launcher + regular theme — Boot manager

Dotfiles

Before I start, I would like to point out that all my configuration files, so called dotfiles, for my Arch Linux installation can be found on Github. After this configuration is applied your desktop environment will look like this

Screenshot of my setupScreenshot of my setup

Getting started

Get the latest version from the Arch website. Burn the ISO to a USB drive with for example Rufus and boot into the live environment.

Connect to the internet

  1. Turn the networking interface on ip link set [interface] up
  2. Save the wifi configuration wpa_passphrase [ssid] [password] > /etc/wpa_supplicant/my_essid.conf
  3. Check if the connection is working wpa_supplicant -c /etc/wpa_supplicant/my_essid.conf -i [wireless device]
  4. Execute the program in the background wpa_supplicant -B -c /etc/wpa_supplicant/my_essid.conf -i [wireless device]
  5. Retrieve an IP adress dhclient [wireless device]

Using archfi to install the base

Archfi is a simple bash script wizard to install Arch Linux after you have booted on the official Arch Linux install media.

Download the script

Launch the script

Install i3

Install display server and the i3 window manager

Remove the final chunk of code containing twm and apps. Replace with: exec i3

Save, return to console, and execute:

Now hit Meta+Enter to show a console and begin to rice starting at file /etc/i3/config .

Installing programs

All programs to make i3 usable.

Terminal

Install kitty with the following command

TODO: zsh, ohmyzsh en theme met altigen

Microcode

Install the intel-ucode package

Enable early loading, this updates the microcode very early during boot, before the initramfs stage, so it is the preferred method.

Refind:

Example config with microcode and separate boot partition.

CPU frequency scaling

Install the thermald and cpupower packages:

To set the maximum clock frequency (clock_freq is a clock frequency with units: GHz, MHz):

To set the minimum clock frequency:

To monitor cpu frequency realtime:

Battery notifications

I would like to get a notification when my battery is below 15% and suspend when 5% battery or less is detected:

Add the following to the file:

Make a script in the following location /home/niek/Scripts/System/battery.sh

File manager and appearance

Install nautilus with the following command:

Install lxappearance and gtk-chtheme with the following command:

Now install a gtk theme, for example materia-gtk-theme . Start with lxappearance and choose the theme, then choose it in gtk-chtheme.

Trackpad

Install xf86-input-synaptics and xf86-input-libinput .

Enable touch to click

Add the following to the file:

libinput-gestures

Install libinput-gestures from the AUR.

Add user to the input group

Autostart the application by adding the following line to the .xinitrc file

Copy the configuration file to the following location

Theme for the bootmanager

If all went well, rEFInd was installed during configuration with archfi . Now we want to install a nice theme to make it look good. I like this one. To install the theme, execute the following command:

I had the problem that my windows install was not detected. I fixed this by adding a small delay in the config.

Also, set use_graphics_for to linux so we get a cleaner boot process.

Plymouth

Install plymouth from the AUR.

Add plymouth to the HOOKS array in mkinitcpio.conf. It must be added after base and udev for it to work:

Add the following to the kernel parameters

Lockscreen

Install betterlockscreen from the AUR.

Cache the desired wallpaper:

Optional: use the alias function to improve the experience. Place the following in .zshrc

Notification deamon

Install deadd with the following command:

Copy the config in to the following file:

Volume and brightness indicator

Install volnoti-brightness-git from the AUR.

The following section of the i3 config file is using volnoti

Screenshot tool

Install deepin-screenshot with pacman.

Add the following line to the i3 config.

Autotiling

The autotiling ****AUR package can be used for automatic switching horizontal / vertical window split orientation resulting in a similar behavior to the spiral tiling of bspwm. After installation add the following to your

/.config/i3/config and reload i3.

Media control

First, install the playerctl package:

Since I have no dedicated media control keys, I use mod+i, mod+o and mod+p:

Redshit

Redshift adjusts the color temperature of your screen according to your surroundings. This may help your eyes hurt less if you are working in front of the screen at night. To install redshift:

Copy the sample config file to the following location:

Adjust the settings like temperature and location. Now add the following line before exec i3 to the .xinitrc file so it starts automatically:

Useful programs

Some useful programs that can be installed with pacman

  • Arandr — control external screens
  • Evince — PDF viewer

Conclusion

In this article we have installed Arch Linux, i3 window manager and several programs to make this setup work for a daily driver.

Thanks for reading! If you have found a mistake, want to ask a question or have a comment, please send me an email.

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

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

Luxury Car Rental in Miami | Reserve a Premium Vehicle with RealCar