问题描述
我的目标是让拥有父级的客户在与其父级相同的标签上生成。没有父母的客户端应该在活动标签上生成(像往常一样)。
我的第一种方法是使用 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
解决方法
您正在寻找c.transient_for
。这包含“父”窗口或 nil
的客户端对象。