Тег AwesomeWM со статической разметкой - PullRequest
0 голосов
/ 23 мая 2018

StackOverflow обозначен как место поддержки сообщества AwesomeWM.

Я хотел бы иметь выделенный тег в моей конфигурации AwesomeWM, где все три приложения будут работать постоянно.Мне удалось создать новый тег с помощью примера конфигурации, и мне удалось подать заявки с использованием awful.rules.rules и поместить их в тег.

У меня возникают проблемы с пониманием того, как на самом деле работает механизм компоновки AwesomeWM.Я хотел бы добиться следующего: три статических столбца фиксированной ширины, каждое приложение находится в своем собственном столбце, при изменении фокуса не происходит перестановка, когда какое-либо приложение не выполняется, тогда его зарезервированное место остается пустым.

___________________
|   |       |     |
|   |       |     |
| A |   B   |  C  |
|   |       |     |
|   |       |     |
___________________

Как указать макет в таком случае?Должен ли я написать свой собственный?Могу ли я использовать гибкий макет и указать позицию для клиента?Каков рекомендуемый правильный способ достижения моей цели?

1 Ответ

0 голосов
/ 28 мая 2018

У меня возникают проблемы с пониманием того, как на самом деле работает механизм компоновки AwesomeWM

Макет представляет собой таблицу с двумя записями:

  • name являетсястрока, содержащая, в общем, имя макета
  • arrange - это функция, которая вызывается для организации видимых клиентов

Так что вам действительно нужно написать arrangeфункция, которая организует клиентов так, как вы хотите.Аргумент этой функции - результат awful.layout.parameters, но вам действительно нужно позаботиться о

  • .clients - это список клиентов, которые должны быть упорядочены.
  • .workarea - это доступное пространство для клиентов.
  • .geometries - это место, где ваш макет записывает назначенные геометрии клиентов

Я бы порекомендовал прочитать некоторые из существующих макетов, чтобы увидетькак они работаютНапример, макет max так же прост:

function(p)
    for _, c in pairs(p.clients) do
        p.geometries[c] = {
            x = p.workarea.x,
            y = p.workarea.y,
            width = p.workarea.width,
            height = p.workarea.height
        }
    end
end

Должен ли я написать свой собственный?Могу ли я использовать гибкий макет и указать позицию для клиента?

Что ж, вышеприведенный подход заключается в написании собственного макета.В качестве альтернативы вы также можете сделать ваши клиенты плавающими и назначить им геометрию через awful.rules.Просто имейте properties = { floating = true, geometry = { x = 42, y = 42, width = 42, height = 42 } }.Однако с этим вы можете, например, случайно переместить одного из ваших клиентов.

Каков рекомендуемый правильный способ достижения моей цели?

Выберите один.нет "только одного правильного ответа".

...