O Tiling-wm в 2-х словах

    Немного расскажу о моем опыте использования тайловых менеджеров окон, а также рассмотрим кратко плюсы и минусы, которые я нашёл за 3 месяца использования.


    Вкратце


    Я использовал bspwm, awesome и i3 из тайловых менеджеров окон. Самым удобным оказался bspwm. Его буквально можно поставить на ПК и он уже настроен.


    Опыт перехождения с мышки на клавиатуру и только был болезненный. Во всех трех менеджерах можно использовать мышь, однако делать этого незачем, ибо с мышью прекрасно справляются KDE, Gnome, XFCE, Cinnamon и многие другие DE.


    Плюсы и минусы:


    i3

    + Гибконастраиваемый
    + Легковесный
    + Вся конфигурация в одном файле (хотя, этот плюс, конечно же субъективный)
    + Правила расположения окон можно настроить очень гибко
    + Очень хорошая документация


    — Оригинальный i3 не такой уж и гибкий, как его форк i3-gaps
    — Изначально поставляется просто как пустой экран с dmenu (пакет из suckless-tools)


    Скриншоты:




    Моя конфигурация i3


    bspwm

    + Конфигурация может быть написана на любом скриптовом языке. По сути конфигурация — просто набор последовательных правил. Сам же bspwm может быть настроен с помощью bspc
    + Bspc содержит мануал с краткими выкладками и примерами
    + Отступы между окнами присутствуют по умолчанию в отличии от i3
    + Настройка горячих клавиш производится с помощью отдельной программы sxhkd. Все горячие клавиши могут быть перенесены на другой WM


    — Нет нормальной документации (только мануал)
    — Нужно докачивать программы по типу rofi, dmenu, alacritty (или любого другого терминала) и так далее, т.к. без них bspwm вообще ничего не показывает
    — Может чуть больше нагружать систему, чем i3 из-за дополнительных утилит


    Моя конфигурация bspwm


    awesome

    + Хорошо задокументирован
    + Вся конфигурация на языке Lua
    + Очень гибкий
    + Все утилиты нужные для работы идут в комплекте. Не нужно ничего докачивать
    + Нормально обращается с мышью
    + Отступы между окнами присутствуют (привет, i3)


    — Обязательное знание Lua
    — Немного больше нагружает систему, чем bspwm


    Личное мнение


    Мне лично по душе bspwm. Он лёгкий в конфигурации, над ним не нужно много работать, всё уже готово.


    Скриншоты:






    UPD:


    Собрал все репозитории с конфигурационными файлами
    Репозиторий, где я собирал конфиг i3/bspwm
    Репозиторий, где я собирал конфиг под терминал, tmux, и другое
    Репозиторий, отведённый чисто для bspwm

    Similar posts

    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 49

      0

      Они же тайловые(фреймовые) разве нет?
      А по делу — очень на любителя вещь.

        +2

        Ну, я не призываю их никого использовать. Просто сравниваю. Однако, вы правы. Если вам легче кликать на всё, то конечно же нужно использовать DE, которые ориентированны под мышь

          +1
          Для разработчика такой подход хоть и мб болезненным с точки зрения перехода, но в целом сильно упрощает работу с текстом, спустя время использования vim кейбиндингов+тайл менегер уже не задумываешься над тем что ты хочешь сделать, мысли сами преобразуются в действия посредством клавиатуры. Поэтому, в отличии от автора, я все таки призываю попробовать) поплеваться неделю полторы а потом сравнить с тем что было, по моему опыту возвращаться уже не хочется =)
          +1
          А мне очень понравилось на i3. Сначала я KDE пользовался, но забросил его после выхода бреда под названием KDE4 (сейчас вообще пятые KDE — это просто ад какой-то!), потом перешел на icewm, но у него вечно были проблемы с несколькими мониторами. В итоге остановился на i3. Очень удобно IDE рядом с консолью располагать: в IDE код пишешь, в консоли собираешь:
          image
          (на работе вообще 27'' монитор 16:9 + 17'' 4:3, там IDE с терминалом намного приятней рядом смотрятся).
          Очень здорово, что изначально нет ненужных заголовков и обрамления окон — в icewm эту дрянь приходилось в настройках отключать.
          • UFO just landed and posted this here
              0

              А чем 4-5 кеды и плазма не нравятся? Быстрые, простые, гибкие, надёжные

              0

              Пробовал и awesome, и i3, но в конце концов остановился на exwm

              • UFO just landed and posted this here
                  +1

                  Да. Конфигурационный файл является скриптом

                  • UFO just landed and posted this here
                      0
                      не хватает мне этого в i3

                      Делается через i3-msg 'workspace 7; exec gnome-calculator; workspace 1;'; Переключение на 7й стол, запуск приложения, возврат на 1й

                      • UFO just landed and posted this here
                          +2

                          Сейчас проверил на том же файрфоксе. Окно открывается там, где был запущен exec, даже если уже прозошло переключение на другой стол. Версия i3 version 4.17.1 (2019-08-30)

                          • UFO just landed and posted this here
                            0
                            > файрфокс запускается секунды три
                            > и нельзя из за этого делать новый
                            > свитч на другой стол

                            Запуск программы на нужном столе обязательно активирует (отображает) этот стол? Можно ли запуск программы на нужном столе сделать в фоновом режиме? (и пусть файрфокс хоть 3 часа себе там запускается и не мешает делать запуски на столах остальных)
                          0

                          Конечно. Можете задать правила, где будут запускаться приложения (bspc rule и правило для определенного класса), или же в мануале можно посмотреть на фокус (man bspc | grep focus). Примеры прописаны у меня в конфигурационных файлах на GitHub

                            0

                            Не знаю то ли имеется в виду. Но я люблю чтоб конкретные приложения всегда на определенном рабочем месте запускались. Для примера кусочек из моего конфига:
                            set $workspace1 "1: Firefox"
                            assign [class="firefox"] $workspace1


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

                              0

                              Этот код делает то же самое в bspwm:


                              bspc monitor -d Desktop Web Terminal Editors
                              bspc rule -a Firefox desktop=^1

                              Также можете отметить в коде, нужен ли вам фокус, должно ли оно "липнуть" ко всем рабочим областям (воркспейсам)
                              Вот пример, как у меня запускается Ranger (с alacritty):


                              bspc rule -a Alacritty:ranger state=floating follow=on sticky=on
                              # Летающий режим, фокус включен, липнет ко всем воркспейсам
                              0
                              Как-то так в конфиге. Хром на третий стол летит при запуске и сразу готов принять Пайчарм в соседний таб (чтобы не по половине экрана занимать)
                              set $WS3 3:WORK
                              set $WS4 4:TERM
                              set $WS5 5:FILES
                              
                              exec --no-startup-id pcmanfm
                              exec --no-startup-id chromium
                              
                              assign [class="Chromium"] $ws3
                              assign [class="jetbrains-pycharm"] $ws3
                              assign [class="Pcmanfm"] $ws5
                              
                              for_window [class="Chromium"] move container to workspace $ws3
                              for_window [class="Chromium"] layout tabbed
                              for_window [class="jetbrains-pycharm"] move container to workspace $ws3
                              for_window [class="jetbrains-pycharm"] layout tabbed
                              
                                0

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

                                • UFO just landed and posted this here
                                    0
                                    тоже без проблем
                                    exec --no-startup-id sakura
                                    exec --no-startup-id sakura -x bc -t bc  # запускаем bc в терминале и даём окну имя bc
                                    
                                    assign [class="Sakura" title="bc"] $ws7
                                    assign [class="Sakura"] $ws4
                                    
                                    for_window [class="Sakura" title="bc"] move container to workspace $ws7
                                    


                                    Я не понял почему иногда нужно прописывать for_window, а иногда хватает только assign, но особо не вникал, пишу оба правила обычно
                                    • UFO just landed and posted this here
                                        0
                                        Сейчас попробую набросать, но не уверен, что с фоксом прокатит
                                        exec firefox
                                        exec firefox --new-window https://web.whatsapp.com/
                                        
                                        assign [class="firefox"] $ws6
                                        
                                        for_window [class="firefox" title="WhatsApp*"] move container to workspace $ws7
                                        for_window [class="firefox"] move container to workspace $ws6
                                        
                                        


                                        upd: фокс странно открывает вкладки, хотя я указал ему --new-window, но он всё равно открыл Вотсап в первом окне новой вкладкой. И проблема в том, что если открыть Вотсап в основном окне, то оно переедет на другой стол. Надо экспериментировать
                                          0
                                          Долго мучился с чем-то подобным, используя названия терминалов, заголовки табов в браузере и прочее. Потом случайно узнал, что в командной строке при запуске можно добавить аргумент --class="MyClass", а затем использовать его в конфиге i3.
                                            0
                                            > firefox
                                            > firefox web.whatsapp.com

                                            Что при этом сделает Файрфокс?
                                            Скажет, что один евоный экземпляр запущен уж?
                                            Или просто откроет в этом первом экземпляре новую вкладку для загрузки вацапа в неё?
                                      0
                                      В конфиге:
                                      assign [class=«Telegram»] $ws4
                                      Класс приложения смотреть через xprop

                                        0
                                        Можно привязать конкретные приложения к рабочим столам:
                                        assign [class="Emacs"] 2
                                        и теперь emacs всегда открывется на втором workspace. Для запуска при старте:
                                        exec --no-startup-id emacs

                                    0
                                    Пользовался i3 но так и не смог полностью победить screen tearing. Перешел на sway с вэйландом — все работает без дополнительных композиторов и даже чувствуется плавнее на глаз.
                                    • UFO just landed and posted this here
                                      +3
                                      Уже наверное 12 лет использую dwm, без каких-либо патчей на него. Абсолютно все нужды покрывает. Но без tiling WM жизни нет.
                                        0

                                        Использую bspwm уже достаточно давно. Всем доволен. После gnome — глоток свежего воздуха.

                                          +1

                                          dwm забыли. Лично мне он больше всего из перечисленных понравился. Можно считать что тоже уже сконфигурирован.

                                            +1
                                            А как же xmonad? Больше 10 лет назад это был единственный WM, который я смог настроить на своём ноуте с Intel GPU, чтобы окна правильно располагались на двух мониторах разного разрешения, которые не объединяются в прямоугольную область (1366x768+1280x800).
                                              0
                                              Пару лет назад увлекся подходом минимализма в софте (suckless.org) и поставил DWM в качестве своего первого Tiling WM. Первый месяц было сложновато — многое пришлось настраивать руками (например звук, уведомления). Но с другой стороны было интересно повозиться. Сейчас когда все настроил под себя и запомнил несколько сочетаний клавиш — получил простую и гибкую систему в которой мне удобно.

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

                                              Стандартный dmenu не удобен в качестве лаунчера. Вместо него лучше использовать dmenu_recent.
                                              • UFO just landed and posted this here
                                                +2

                                                Пользуюсь StumpWM, чувствую себя в нём отлично, тем более что он имеет схожий пользовательский опыт с Emacs, которым я уже относительно давно болею.


                                                Из плюсов отмечу:
                                                + Весьма быстрый
                                                + Гибкая настройка, вплоть до изменения кода самого WM из конфиг-файла
                                                + Common Lisp как язык настройки, что позволяет втянуть существующую кодовую базу прямо в WM. Есть у меня даже безумный проект написать небольшой плагин с онлайн-переводчиком, доступным по горячей клавише.
                                                + Вдохновлён Emacs, соответственно, нацелен на продуктивность и настраиваемость.


                                                Разумеется, есть и минусы:
                                                — Не все функции и хаки задокументированы, но пользователи некоторые из них переоткрывают, поэтому чужие конфиги помогают здорово. А все мы порой страдаем эффективной прокрастинацией а-ля "А настрою-ка я свой WM/редактор/whatever", так что вас впереди ждёт много открытий, если вы начинаете пользоваться StumpWM.
                                                — Common Lisp, который является отдельным языком, который придётся учить, если ещё не знаете.
                                                — Вдохновлён Emacs, поэтому многие вещи могут казаться странными.


                                                Резюмируя: StumpWM как менеджер окон хорош, но на полную он начинает работать в руках людей, которые знают хотя бы один язык из семейства Lisp, со всеми вытекающими: хакинг, метапрограммирование, compile-time computing.

                                                  0
                                                  Реквестирую конфиг и список туториалов для возможно более быстрого перехода
                                                0

                                                Долгое время пользовался awesome wm, сейчас на свежеустановленной системе пробую KDE в связке с таким скриптом для kwin. В целом нравится, поведение после переназначения хоткеев почти повторяет awesome, за исключением нескольких мелочей и недоработок, но зато доступны все возможности KDE.

                                                  0

                                                  А почему решили уйти с Awesome?

                                                  • UFO just landed and posted this here
                                                      0

                                                      Я лично всё еще предпочту Awesome на маломощном железе, а в целом просто захотелось bells & whistles от KDE. Всё более интегрированно, да и настраивать голый wm было бы лень.


                                                      Знаю, что еще можно подменить KWin на awesome. Последний раз так пробовал делать пару лет назад с xmonad, оно работало, но были мелкие и не очень проблемы/недоработки/несостыковки, ломавшие ощущение полностью интегрированной среды рабочего стола.

                                                    0
                                                    А в чём преимущество тайловых вм перед нетайловыми?
                                                    В автоматическом тайлинге?
                                                    Я имею в виду сравнение, в котором не участвует легковесность, а сравнивается только сам интерфейс.
                                                    Без мыши-то я и в КДЕ работаю.
                                                      +1

                                                      как правило в том, что необходимые окна на виду. например браузер + терминал + ещё что-то.


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

                                                        0
                                                        Зависит от размера экрана. Если экран достаточно большой, то люди либо используют win+стрелку либо мышкой сдвигают окно к краю и добиваются того же результата. А если экран недостаточно большой — разврачивают окна на весь экран и переключаются по alt-tab.
                                                          0
                                                          Если экран достаточно большой, то люди либо используют win+стрелку либо мышкой сдвигают окно к краю и добиваются того же результата.

                                                          Какого именно «того же»? Тайловые менеджеры дают возможность сделать любую разумную раскладку, например по горизонтали браузер + IDE + веркальный столбец из терминала и мессенджера. Тут скорее вопрос обратный — если всё равно пользоваться только раскладкой окон такого рода, ну и фулскрином, то зачем брать нетайловый ВМ?
                                                      0
                                                      Лично я остановился на awesome, единственное что действительно напрягает это конфиги виджетов для топ бара, иногда приходится повозиться, bspwm хотел попробоватьm, но по какой-то причине не завелось, но мб в будущем
                                                        0

                                                        Неожиданно нашёл довольно неплохо работающий аналог DWM для Windows-10


                                                        Называется workspacer https://github.com/rickbutton/workspacer


                                                        На удивление работает без проблем и имеет конфиг для конфигурации.

                                                        Only users with full accounts can post comments. Log in, please.