Можете ли вы поместить клиента в иерархию виджетов в awesome-wm? - PullRequest
0 голосов
/ 18 апреля 2019

Мне было интересно, если вы можете поместить клиента в иерархию виджетов.По сути, есть ли способ сделать что-то вроде:

local cool_background_widget = wibox.widget({
    widget = wibox.container.background,
    {
        client, --??????
    }
})

Я ожидаю, что нет, но если нет, есть ли какой-нибудь хакерский способ сделать это?

1 Ответ

1 голос
/ 19 апреля 2019

Краткий ответ: нет.Но есть несколько способов обойти это.

1: Использование клиента + заголовков в качестве верхней панели

Если вам нужен только один клиент в вашем wibar / wibox, тогда вы можете поместить другой заголовоквокруг этого клиента и используйте его в качестве верхней (или любой другой) панели.Чтобы добавить пространство, как в обычном баре, поиграйте со свойством клиента :struts() или используйте screen.padding.

2: создайте пользовательский виджет-заполнитель

Второй вариант - создать новыйwidget, затем используйте свою собственную функцию :draw() в качестве ловушки, чтобы знать, когда перемещать клиента (используя c:geometry()).Это в основном то, что ветвь макета динамического клиента делает .Это имеет некоторые проблемы, такие как необходимость продолжать поднимать клиента.Вы также должны отключить кучу вещей, чтобы предотвратить существующий путь кода, влияющий на клиента (например, обработчики request::geometry, такие как обработчик для перемещения / изменения размера клиента с использованием mod4+mouse).Вам также нужно настроить клиент floating и sticky для получения правильного результата.

3: патчи приветствуются

Важно помнить, что нет технических ограничений, которыепредотвратить эту функцию от реализации.Существует существующая проблема относительно добавления этого.В некоторой альтернативной вселенной, где оба основных разработчика AwesomeWM будут иметь неограниченное время, это будет особенность.Сначала мы обсуждаем, как это сделать для отдельных «значков» systray.Эта проблема также является хорошим справочным материалом, но в этом случае ее будет недостаточно для реализации того, что вы запрашиваете.

...