Из коробки Awesome неплохо поддерживает многодисплейную конфигурацию. Чего мне не хватало, так это удобства работы в случае когда мониторы часто отключаешь, подключаешь новые и т.д. За последних два дня я основательно перелопатил свой конфиг и реализовал поддержку таких действий с помощью нескольких модулей.
- модуль rulez является динамической оберткой вокруг awful.rules. Позволяет не редактируя конфиг «прибивать» приложения к определенным тегам путем нажатия Mod+Q. Меня всегда напрягало вручную вписывать правила чтобы клиенты автоматически перемещались на свои теги, теперь делать это стало значительно удобнее.
- модуль vista позволяет задавать правила для дисплеев, наподобие тех же awful.rules. Например, я иногда подключаю к ноуту вертикальный или неширокоформатный мониторы, поэтому создал правило: если ratio дисплея (width ÷ height) меньше 1.25, то рисовать панель сверху а не справа. Vista также имеет концепцию «первичного» и «вторичного» монитора, которые тоже можно определить правилами. В дальнейшем роль монитора можно использовать в rulez, например назначить Transmission на шестой тег вторичного дисплея. Если в текущий момент дисплей только один, то primary = secondary = 1, и все продолжает нормально работать.
- Переписанные topjets теперь используют разделение view и model. Таким образом, можно создать сколько угодно виджетов для множества дисплеев, но логика и получение данных будут выполняться единожды.
- Модуль layout является тонкой оберткой вокруг
wibox.layout.*
, позволяющий задавать конфигурацию виджетов в более декларативном стиле, а-ля DOM или Android XML.
Как обычно, все конфиги находятся в https://github.com/alexander-yakushev/awesomerc. Теоретически можно использовать as-is, должно заработать сразу. Нужны установленные иконки awoken.
>>> Просмотр (1366x1792, 1925 Kb)