I3 — improved tiling wm
Содержание:
Tips and tricks
Section for I3 users to share their tips and tricks.
Adding Alt+Tab functionality
Add the first 2 lines to your i3 config file to enable META + TAB to switch to next open workspace and META + SHIFT + TAB to switch to the previous one. The third line uses META + ` to jump back to your last used workspace:
CODE Adding ALT + TAB Functionality
# enable Alt+Tab Functionality bindsym $mod+Tab workspace next bindsym $mod+Shift+Tab workspace prev # jump to last used workspace bindsym $mod+grave workspace back_and_forth
The Scratchpad (i3’s solution to minimising windows)
The i3 wm has an invisible workspace called the Scratchpad workspace. Users can move windows to and from it to hide them from the main workspaces. The i3 commands and hide and show windows respectively. It may be useful to bind these to keys within your config:
FILE
# Make the currently focused window a scratchpad bindsym $mod+minus move scratchpad # Show the first scratchpad window bindsym $mod+plus scratchpad show
Configuring gaps between tiled windows (i3-gaps only)
The following lines remove the window decorations and add gaps between the windows. will disable the gaps if only one window is present on a workspace.
Change the values for preference. This will put a 5px gap between all containers and the edge of the screen.
sets the distance between adjacent containers. sets the distance between containers and the edge of the screen. It is worth noting that the actual distance from the containers to the edge of the screen is the sum of the and values. The actual distance between adjacent containers is the value alone.
CODE Configuring gaps
for_window border pixel 0 gaps inner 5 gaps outer 0 smart_gaps on
What Is a Tiling Window Manager?
It’s time to take a step back. What is a tiling window manager anyway?
A tiling window manager(TWM) is not a full desktop environment. Instead, it just provides enough functionality to control the windows on your screen.
Tiling window managers also lay out their windows in logical subdivisions, breaking down the screen space in a logical pattern. For example, the first two windows that you open on your screen will each take up half of the screen and sit directly next to each other.
Windows do not float around and can’t be dragged from place to place or sit on top of each other unless specified by a user. By default, a tiling window manager will waste absolutely no screen space.
While tiling window managers might not be for everyone, they do provide people who want maximum efficiency and control out of their computer an option to get just that.
Internet connectivity:
If you are like me you’ll be using a wireless connection with your laptop.
Configuring wireless card
First determine the driver:
06:00.0 Network controller: Intel Corporation WiFi Link 5100 Subsystem: Intel Corporation WiFi Link 5100 AGN Kernel driver in use: iwlwifi Kernel modules: iwlwifi
A message like this should mean everything is ok. Then determine your interface name:
You’ll get a list of interfaces. I’m assuming is wlan0. Now bring it up and
If the error message “SIOCSIFFLAGS: No such file or directory” comes up, search for the correct firmware.
No encryption
WEP
WPA
First generate a configuration file:
Then test it. There may be several errors, but it should output “connected”
Now run it in background:
And get an IP address:
Пять случаев, когда пригодится Ubuntu
- Старые компьютеры у родителей, дальних родственников. Установили один раз, поставили все нужные программы из магазина приложений и забыли проблемы. Графический интерфейс не хуже Windows, вирусов и троянов там нет. Всё безопасно, быстро и хорошо. Бабушка скажет спасибо.
- Ваша собственная рабочая станция на USB-флешке. Берёте Ubuntu, ставите её на флешку, настраиваете под свои задачи. Теперь это ваш компьютер. Вставляете эту флешку в любой комп, загружаетесь с флешки, и вот они: все нужные вам программы, явки и пароли, закладки, документы.
- Домашний сервер. Если хотите экспериментировать с веб-технологиями, можно взять какой-нибудь старый комп, поставить на него Ubuntu и развернуть там полноценный сервер под свои задачи. Хочешь — базы данных там крути, хочешь — телеграм-ботов.
- Школа, вуз, офис. Ubuntu в частности и Linux вообще очень полезен в университетах, школах и офисах: он бесплатный, там есть весь необходимый минимум, работает на слабом железе, легко раскатывается и поддерживается.
- Установить новый мировой порядок. Показать кукиш жадным корпорациям, собрать средней руки комп, накатить на него бесплатный софт, скрыться от цифрового шпионажа, сделать свою криптовалюту, вот это вот всё.
Эксперт:Владимир Олохтонов
Редактор:Максим Ильяхов
Корректор:Ирина Михеева
Иллюстратор:Даня Берковский
Вёрстка:Мария Дронова
Распорядитель соцсетей:Виталий Вебер
Installation
It is also assumed that dmenu will be emerged. Available USE flags include:
| Use this to restore your config from /etc/portage/savedconfig ${CATEGORY}/${PN}. Make sure your USE flags allow for appropriate dependencies | |
| Add support for querying multi-monitor screen geometry through the Xinerama API |
i3status
i3status provides status information that can be used by i3bar which, by default, sits at the bottom of the screen. Available USE flags include:
| Linux capabilities library is required for i3status to be able to read net bandwith |
i3blocks
A more (relative to the more popular i3status) advanced, extensively-customizable status (for the i3bar config to use) is provided by i3block.
Basic Configuration
There’s an absolutely insane amount of configuration that you can do with i3wm, so it’s only possible to cover the basics here. These are some of the more common things that you’d want to do.
After creating the default configuration on your first run, it was placed in the “/etc/” directory. You have to copy it to your home to customize it.
Don’t forget to change the ownership of the file to your user. The user and group name should both match your username.
Colors
Changing the colors is easy. i3wm uses hex values for colors like CSS. There are a couple of different classes that each have a border, background, text, and indicator value. You can lay them out in a table and plug in the color values that you want.
Applications
In the i3wm configuration, creates a new hotkey. launches programs. You can put them together to make your own hotkeys to launch the programs that you use most without using the launcher. For example:
You can run applications at startup, too. Just use for those.
Status Bar
The status bar is one of the most important parts of your desktop. It displays your workspaces as well as loads of other vital information. With i3wm there are a ton of options for your status bar.
Near the bottom of the configuration file you’ll find a block called “bar.” Everything for the status bar will go in there.
First, you’ll find the “status_command.” It dictates which status bar is used. The default is i3status, but you can use a load of others like i3blocks, lemonbar, and polybar. They are all different and have their own unique benefits and drawbacks.
You can change the position of the bar here, too.
You can create a separate “colors” block here that you can use just like the other color configuration to customize i3’s color scheme.
Other hits
Package i3-wm
-
xenial (16.04LTS) (x11):
improved dynamic tiling window manager4.11-1: amd64 arm64 armhf i386 powerpc ppc64el s390x
-
bionic (18.04LTS) (x11):
improved dynamic tiling window manager4.14.1-1: amd64 arm64 armhf i386 ppc64el s390x
-
eoan (19.10) (x11):
improved dynamic tiling window manager4.16.1-1: amd64 arm64 armhf i386 ppc64el s390x
-
focal (20.04LTS) (x11):
improved dynamic tiling window manager4.17.1-1: amd64 arm64 armhf ppc64el s390x
-
groovy (x11):
improved dynamic tiling window manager4.18-1: amd64 arm64 armhf ppc64el s390x
Package i3-wm-dbg
-
xenial (16.04LTS) (debug):
Debugging symbols for the i3 window manager4.11-1: amd64 arm64 armhf i386 powerpc ppc64el s390x
-
bionic (18.04LTS) (debug):
Debugging symbols for the i3 window manager4.14.1-1: amd64 arm64 armhf i386 ppc64el s390x
-
eoan (19.10) (debug):
Debugging symbols for the i3 window manager4.16.1-1: amd64 arm64 armhf i386 ppc64el s390x
-
focal (20.04LTS) (debug):
Debugging symbols for the i3 window manager4.17.1-1: amd64 arm64 armhf ppc64el s390x
-
groovy (debug):
Debugging symbols for the i3 window manager4.18-1: amd64 arm64 armhf ppc64el s390x
Package i3blocks
-
xenial (16.04LTS) (x11):
highly flexible status line for the i3 window manager1.4-1: amd64 arm64 armhf i386 powerpc ppc64el s390x
-
bionic (18.04LTS) (x11):
highly flexible status line for the i3 window manager1.4-4: amd64 arm64 armhf i386 ppc64el s390x
-
eoan (19.10) (x11):
highly flexible status line for the i3 window manager1.4-4: amd64 arm64 armhf i386 ppc64el s390x
-
focal (20.04LTS) (x11):
highly flexible status line for the i3 window manager1.4-4: amd64 arm64 armhf ppc64el s390x
-
groovy (x11):
highly flexible status line for the i3 window manager1.4-4: amd64 arm64 armhf ppc64el s390x
Package i3lock
-
xenial (16.04LTS) (x11):
improved screen locker2.7-1: amd64 arm64 armhf i386 powerpc ppc64el s390x
-
bionic (18.04LTS) (x11):
improved screen locker2.10-1: amd64 arm64 armhf i386 ppc64el s390x
-
eoan (19.10) (x11):
improved screen locker2.11.1-1: amd64 arm64 armhf i386 ppc64el s390x
-
focal (20.04LTS) (x11):
improved screen locker2.11.1-1: amd64 arm64 armhf ppc64el s390x
-
groovy (x11):
improved screen locker2.11.1-1: amd64 arm64 armhf ppc64el s390x
Package i3lock-fancy
-
bionic (18.04LTS) (x11):
i3lock custom wrapper script0.0~git20160228.0.0fcb933-2: amd64 arm64 armhf i386 ppc64el s390x
-
eoan (19.10) (x11):
i3lock custom wrapper script0.0~git20160228.0.0fcb933-2: amd64 arm64 armhf i386 ppc64el s390x
-
focal (20.04LTS) (x11):
i3lock custom wrapper script0.0~git20160228.0.0fcb933-3: amd64 arm64 armhf ppc64el s390x
-
groovy (x11):
i3lock custom wrapper script0.0~git20160228.0.0fcb933-3: amd64 arm64 armhf ppc64el s390x
Package i3pystatus
-
eoan (19.10) (python):
Large collection of status modules compatible with i3bar3.35+git20190107.1c972b8-2: all
-
focal (20.04LTS) (python):
Large collection of status modules compatible with i3bar3.35+git20191126.5a8eaf4-2: all
-
groovy (python):
Large collection of status modules compatible with i3bar3.35+git20191126.5a8eaf4-2: all
Package i3status
-
xenial (16.04LTS) (utils):
Generates a status line for dzen2, xmobar or i3bar2.10-1: amd64 arm64 armhf i386 powerpc ppc64el s390x
-
bionic (18.04LTS) (utils):
Generates a status line for dzen2, xmobar or i3bar2.11-1build1: amd64 arm64 armhf i386 ppc64el s390x
-
eoan (19.10) (utils):
Generates a status line for dzen2, xmobar or i3bar2.13-2: amd64 arm64 armhf i386 ppc64el s390x
-
focal (20.04LTS) (utils):
Generates a status line for dzen2, xmobar or i3bar2.13-2: amd64 arm64 armhf ppc64el s390x
-
groovy (utils):
Generates a status line for dzen2, xmobar or i3bar2.13-3: amd64 arm64 armhf ppc64el s390x
Использование
Горячие клавиши
Рисунок 1 — Ключи для использования с $ mod (Alt)
Рисунок 2 — Ключи для использования с Shift + $ mod
Стандартные горячие клавиши, работающие по умолчанию (см. рисунки 1, 2):
- mod+Enter — открытие терминала;
- mod+d — запуск dmenu (меню сверху экрана, которое по мере ввода с клавиатуры *название приложения* предлагает варианты для запуска);
- mod+Shift+Q — закрытие активного окна;
- mod+Shift+r — перезапуск i3wm;
- mod+v — включение режима вертикального тайлинга (делит экран горизонтально);
- mod+h — включение режима горизонтального тайлинга (делит экран вертикально);
- mod+w — включение режима вкладок (каждое окно на рабочем столе занимает весь экран, сверху видны вкладки);
- mod+s — включение стекового режим (заголовки окон один под другим, каждое окно занимает весь экран);
- mod+e — возвращение стандартного режима;
- mod+Shift+Space — переключение окна в плавающий режим и обратно;
- mod+Left/Right/Up/Down — перемещение фокуса в пределах рабочего стола;
- mod+Shift+Left/Right/Up/Down — перемещение текущего окна в пределах рабочего стола;
- mod+1 и т.д. — переключение на рабочий стол с указанным номером;
- mod+Shift+C — чтение настройки из файла конфигурации;
- mod+Shift+E — выход из i3wm на экран ввода имени пользователя и пароля.
Exact hits
Package i3
-
xenial (16.04LTS) (x11):
metapackage (i3 window manager, screen locker, menu, statusbar)4.11-1: amd64 arm64 armhf i386 powerpc ppc64el s390x
-
bionic (18.04LTS) (x11):
metapackage (i3 window manager, screen locker, menu, statusbar)4.14.1-1: amd64 arm64 armhf i386 ppc64el s390x
-
eoan (19.10) (x11):
metapackage (i3 window manager, screen locker, menu, statusbar)4.16.1-1: amd64 arm64 armhf i386 ppc64el s390x
-
focal (20.04LTS) (x11):
metapackage (i3 window manager, screen locker, menu, statusbar)4.17.1-1: amd64 arm64 armhf ppc64el s390x
-
groovy (x11):
metapackage (i3 window manager, screen locker, menu, statusbar)4.18-1: amd64 arm64 armhf ppc64el s390x
How to Install Regolith on Ubuntu
Switching Linux distro is a dramatic step if all you want to do is try a different desktop environment or new way of working.
So, helpfully, the Regolith desktop is available to install on Ubuntu as an alternative desktop session (you can use with other Ubuntu-based spins too). This means there’s a handy escape route in place if you try it and don’t like it.
The session pulls in all of the required components (i3-gaps, rofi, moka icons, etc) mentioned above, and, again, configures them ready for “out of the box” use.
The only real difference between using the distro and using the desktop session is that one needs to be installed from scratch (and doesn’t include the regular Ubuntu desktop packages), while the other will work with an existing set-up.

What makes Regolith interesting to me, as a dyed-in-the-wool Ubuntu user, is that I don’t have to switch distro or set up a separate install to sample its i3-made-easy effort!
Making a pre-prepared installable session available makes it super easy to try i3-gaps on Ubuntu.
To install Regolith desktop on Ubuntu 18.04 LTS or later (as well as any flavours or derivatives based on these versions) you need to add the Regolith stable PPA to your list of software sources.
To add the Regolith PPA run this command in a new terminal ( + ) window:
Next, install the Regolith desktop meta-package. This pulls in all the necessary packages for you and sets them up ready for use:
Finally, logout.
At the login screen click the cog beside the ‘sign in’ button and select the ‘Regolith’ desktop session. Login as normal and…
Welcome to i3-wm
Wow, it’s all a bit different, isn’t it? The traditional way of opening and moving windows don’t apply here, but don’t be put off by how alien everything feels.
Firstly, check out the superb ‘getting started’ guide on the Regolith Linux website. It provides a concise introduction to the ‘unique’ way of navigating the keyboard-based window manager.
Secondly, I jotted down a list of the keyboard shortcuts I found most useful the first time I logged in:
- + — Show shortcut cheatsheet
- + — Open app launcher
- + — Launch Terminal
- + — Configure Wi-Fi
- + — Move/create Workspace(s)
- + + — Move window
- + — Toggle vertical/horizontal layouts
- + — Resize window(s) w/ arrow keys (press when done)
- + + — Log out of Regolith desktop
Hopefully these help you too.
Uninstall the Regolith Desktop
If, after trying things out, you find that working with a tiling window manager is just not for you: no worries; it’s simple to uninstall and go back to GNOME Shell, Budgie, or whatever else you were using.
Just pop open a terminal and run:
And then remove the PPA from your software sources:
I tested uninstalling the desktop on Ubuntu 19.04 and it mostly went okay. I was left with an error about a missing file in the GDM3 folder. I solved this by cloning the and renaming it to .
Finally, log out. At the login screen click the cog icon and select the session you want to revert too. Login as normal and… Ahh, familiarity.
If you like what you see do give this post a share. More people need to hear about this fantastic little distro n’ desktop combo.
Troubleshooting
Mouse cursor remains in waiting mode
When starting a script or application which does not support startup notifications, the mouse cursor will remain in busy/watch/clock mode for 60 seconds.
To solve this for a particlar application, use the parameter, for example:
exec --no-startup-id ~/script bindsym $mod+d exec --no-startup-id dmenu_run
To disable this animation globally, see .
Default workspace for Spotify
To assign a default workspace for spotify windows one cannot use the standard route with and should rather use a command, such as
~/.config/i3/config
... for_window move to workspace $ws10
To ensure does not move the window if already in , one can instead use .
Monitor configuration
The ‘arandr’ package is a frontend of xrandr for multiple monitors.
Brightness
The most crucial step in configuring the screen brightness is getting the graphic card correct firmware. This is usually the most common mistake that results in a ‘No outputs have backlight property’. Make sure the correct firmware is installed and is used.
To control the screen brightness edit i3’s config file and add the lines:
Restart i3 and test the setup.
WiFi configuration (extra)
To get the WiFi to work you’ll need some extra packages that aren’t available after the net installation. Before beginning, make sure you have these files or have a way of getting them to your new Debian installation.
Настройка конфига i3wm
При первичной загрузке вы увидите примерно такое сообщение:

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



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

Подведите курсор мышки к квадрату и не уводя с него, нажмите на нужную клавишу. В терминале увидите ее название.
Думаю тут все понятно не вызовет никаких трудностей. Идем дальше.
Открытие программ в плавающем окне
Если определенную программу нужно открыть не в тайлинге, а в плавающем окне используйте код
Где “Xfce4-terminal” это название программы.
Открытие программ в нужном рабочем столе
В i3wm есть фишка, которую я не встречал в других DE/WM — это запуск программ на определенном рабочем столе. Удобно, когда вы знаете, какая программа и на каком рабочем столе она запускается.
Данный код запустит Firefox на 3-м рабочем столе
Название программ нужно писать с заглавной буквы, иначе не сработает.
Установка
Установите из официального репозитория , которая включает пакеты:
- — непосредственно менеджер окон
- , предназначенный для вывода строки статуса в i3bar через
- — блокировщик экрана
Дополнительные пакеты доступны в пользовательском репозитории Arch. Установите AUR, чтобы получить версию для разработчиков.
Также смотрите раздел .
Экранный менеджер
включает в себя как Xsession который запускает оконный менеджер. включает логи (полезно для отладки). Установите AUR, чтобы добавить сессию GNOME.
xinitrc
Отредактируйте ваш , добавив в него:
exec i3
Если вы хотите, чтобы i3 вел лог (полезно для отладки), добавьте эту строку в :
exec i3 -V >> ~/.i3/i3log 2>&1
exec i3 --force-xinerama
Если у вас есть проблемы с преобразованием клавиш (например точки с запятой), используйте или смотрите Extra keyboard keys (Русский).
$ xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \(*\).* (.*, \(.*\)).*$/\1 \2/p'
Using i3wm
After i3’s been installed, you can log out of your current session on Ubuntu to bring yourself back to the login screen. Click the little icon next to the password box. It’ll show you the desktop options. Select i3 and log in as you normally would.
The First Time
What you’re going to find on the other side will be surprising if you haven’t worked with just a window manager before. It’s minimal and it’s ugly. That’s the way it’s supposed to be.

i3wm doesn’t have a lot of default configuration because it assumes that you want to customize it, and you can, a lot.
On your first run you’re going to see a window asking you to create a configuration file. Accept. Then you’ll get another asking which key you want to use as the “Mod” key. It can either be the “Windows” key or “Alt.”
Since i3 is mostly controlled by the keyboard, the mod key serves to differentiate regular typing from commands to i3.
Almost everything in i3wm is handled with hotkeys. There are plenty of predefined ones, but you can also change those and make your own. Before you do anything, though, you need to familiarize yourself with the basic ones.
You’re probably going to be working with terminals a lot. Go ahead and open one with “Mod key + Enter.” If you keep pressing “Mod key + Enter,” you’ll see the default pattern that i3 uses for dividing up your screen.
It’s not all that useful when you have a bunch of them. Try re-positioning them. By default, you can navigate using “Mod key + j” to move left, “Mod key + k” to move down, “Mod key + l” to move up, and “Mod key + ;” to move right. This should be sort of familiar to Vim users but slightly off. You can change it to the actual Vim bindings.
If you want to move the windows, you can add “Shift” to any of the directional hotkeys, and the window will move in that direction. So to move a window down, use “Mod key + Shift + k.”
To open new windows split the way you want, you can target the window you want to split and use “Mod key + h” to split the window horizontally and “Mod key + v” to split it vertically.
When you want to close a window, there’s a hotkey for that too – “Mod key + Shift + q.”