Я обнаружил, что ранее упомянутый метод плохо работает на многоэкранных установках, так как проверка невидимости также проверяет другие экраны.
После просмотра документации по API я пришел к этому решению
Отказ от ответственности: у меня нет большого опыта работы с awesome, и это моя первая попытка сделать что-то, что не является копией-пастой. Пока для меня это работает хорошо, хотя.
for k,t in pairs(awful.tag.gettags(s)) do
t:connect_signal("property::selected", function(t)
local c = t.clients(t)[1]
if c then client.focus = c end
end)
end
где 's' - экран Сделайте это для каждого экрана. У меня это в том же цикле, что и настройка тегов в стандартном rc.lua.
В основном циклически перебирайте теги экрана и добавляйте прослушиватель событий для выбора тега, который затем запускает функцию, которая подключает первого клиента к тегу и устанавливает его в качестве целевого клиента.
Я использую удивительный 3.5 и есть некоторые различия, о которых нужно знать, если вы используете предыдущие версии. Например, в версии 3.4 функция connect_signal называется add_signal.
Это решение автоматически работает при переключении тегов с помощью других средств, поскольку оно подключает слушателя к операции переключения тегов.