在 Awesome Wm 中布局发生变化时如何获取信号

How to get a signal when layout has changed in Awesome Wm

是否可以像这样为标签捕获 Awesome 3.5 中的布局更改(例如):

screen[s]:connect_signal("tag::history::update", function()                     
   --do some stuff when virtual desktop has changed
end

如果是,你是怎么做到的?

当标签的layout改变时,awful.layout.set只是调用awful.tag.setproperty来设置标签的"layout" 属性。然后这将在标签上发出 "property::layout" 信号。

以下是如何为任何标签连接到此信号(仅适用于 awesome 3.5,不适用于 3.4):

tag.connect_signal("property::layout", function(t)
    print("Layout of tag " .. t.name .. " is now function " .. awful.tag.getproperty(t, "layout"))
end)

对于具体的标签对象t,也可以使用如下代码。只有当那个标签的布局发生变化时,这才会 运行。

t:connect_signal("property::layout", function() print("Layout changed") end)