Можно ли вернуть клиента к его открывающим тегам в AwesomeWM?

У меня есть правила для открытия определенных приложений (clients, для AwesomeWM) по определенным тегам. Иногда во время рабочего процесса я могу перемещать клиента, например, с одного экрана на другой (Mod+o), что меняет теги, связанные с клиентом. После работы с этим клиентом в большинстве случаев было бы удобно отправить его обратно к исходному (или предыдущему) тегу(ам).

Я могу перезапустить AwesomeWM, что заставит клиента перечитать правила в rc.lua, но это может нарушить другие ассоциации тегов, и я буду использовать функцию/ярлык для каждого клиента.

Является ли это возможным? С конкретным модулем?


person raphaelfournier    schedule 15.11.2018    source источник


Ответы (1)


В AwesomeWM возможно все ;)

В этом случае вы можете использовать обработчик сигналов клиента rc.lua "manage" по умолчанию, чтобы добавить что-то вроде этого:

c.original_tags = c:tags()

затем в привязках клавиш клиента (не глобальных привязках клавиш) выполните:

awful.key({ modkey }, "b", function (c) c:tags(c.original_tags) end,
          {description = "restore the tags", group = "client"}),

Обратите внимание, что это будет работать только в том случае, если ваши теги никогда не меняются. Если вы добавляете и удаляете теги, это будет работать неправильно.

Альтернативой является вызов awful.rules.apply(c) непосредственно из привязки клавиш и повторное применение правил. Это потенциально имеет побочные эффекты помимо тегов, поэтому это не мой первый выбор для ответа.

person Emmanuel Lepage Vallee    schedule 15.11.2018
comment
Большое спасибо! Он работает так, как ожидалось. Мне просто нужно было добавить строку c.original_screen = c.screen ниже вашей в функции manage и c.screen = c.original_screen в коде привязки клавиш. - person raphaelfournier; 16.11.2018