Моя цель — позволить клиентам, у которых есть родитель, порождаться тем же тегом, что и их родители. Клиенты без родителей должны появляться на активном теге (как обычно).
Мой первый подход — подключить сигнал с помощью client.connect_signal("manage", ...)
. Однако я не смог найти способ получить родителя клиента или проверить, есть ли у него родитель. Спасибо за внимание к моей проблеме!
Обновление 1: я нашел client:get_transient_for_matching (matcher)
, но документация не очень полезна.
Обновление 2: спасибо Uli за подсказку использовать client::transient_for
как более простой способ получить переходный процесс. С использованием
client.connect_signal("manage", function (c)
parent = c.transient_for
naughty.notify({ preset = naughty.config.presets.critical,
title = "Debug",
text = tostring(c.window) .. " " .. (parent and tostring(parent.window) or "") })
if parent then
-- move new client to same tag and screen as parent
tag = parent.first_tag
screen = parent.screen
c:move_to_tag(tag)
c:move_to_screen(screen)
end
end)
Я попытался достичь своих целей и добавил простой вывод отладки с помощью уведомлений. Теперь только очень немногие новые клиенты действительно имеют переходный процесс, отличный от nil
. Например, порождение git gui
из терминала не имеет переходного процесса. Однако я твердо верю, что так и должно быть (или я неправильно понял, что такое переходный процесс).
Ubuntu 20LTS, версия Awesome WM 4.3-4, awesome-extra 2019021001