你能把客户端放到 awesome-wm 的 widget 层次结构中吗?
Can you put a client into a widget hierarchy in awesome-wm?
我想知道您是否可以将客户端放入小部件层次结构中。
基本上有办法做类似的事情:
local cool_background_widget = wibox.widget({
widget = wibox.container.background,
{
client, --??????
}
})
我预计没有,但如果没有,是否有一些 hacky 方法可以做到这一点?
简答:没有。但是有一些解决方法。
1:使用客户端+标题栏作为顶栏
如果您的 wibar/wibox 中只需要一个客户端,那么您可以在该客户端周围放置一个不同的标题栏,并将其用作您的顶部(或其他)栏。要像普通栏一样添加 space,请使用客户端 :struts()
属性 或使用 screen.padding
.
2:创建自定义占位符小部件
第二个选项是创建一个新的小部件,然后使用它自己的 :draw()
函数作为一个挂钩来知道何时移动客户端(使用 c:geometry()
)。这主要是 the dynamic client layout branch does。这有一些问题,比如必须不断提高客户。您还必须断开一堆东西以防止现有代码路径影响客户端(例如 request::geometry
处理程序,例如 move/resize 客户端使用 mod4+mouse
的处理程序)。您还需要使客户端 floating
和 sticky
才能获得正确的结果。
3:欢迎补丁
请务必记住,不存在阻止此功能实施的技术限制。现有的 issue regarding adding this. In some alternate universe where both the core AwesomeWM developers would have unlimited time, this would be a feature. We are discussing doing it for the individual systray "icons" first. This issue 也是一个很好的参考,但在这种情况下不足以实现您的要求。
我想知道您是否可以将客户端放入小部件层次结构中。 基本上有办法做类似的事情:
local cool_background_widget = wibox.widget({
widget = wibox.container.background,
{
client, --??????
}
})
我预计没有,但如果没有,是否有一些 hacky 方法可以做到这一点?
简答:没有。但是有一些解决方法。
1:使用客户端+标题栏作为顶栏
如果您的 wibar/wibox 中只需要一个客户端,那么您可以在该客户端周围放置一个不同的标题栏,并将其用作您的顶部(或其他)栏。要像普通栏一样添加 space,请使用客户端 :struts()
属性 或使用 screen.padding
.
2:创建自定义占位符小部件
第二个选项是创建一个新的小部件,然后使用它自己的 :draw()
函数作为一个挂钩来知道何时移动客户端(使用 c:geometry()
)。这主要是 the dynamic client layout branch does。这有一些问题,比如必须不断提高客户。您还必须断开一堆东西以防止现有代码路径影响客户端(例如 request::geometry
处理程序,例如 move/resize 客户端使用 mod4+mouse
的处理程序)。您还需要使客户端 floating
和 sticky
才能获得正确的结果。
3:欢迎补丁
请务必记住,不存在阻止此功能实施的技术限制。现有的 issue regarding adding this. In some alternate universe where both the core AwesomeWM developers would have unlimited time, this would be a feature. We are discussing doing it for the individual systray "icons" first. This issue 也是一个很好的参考,但在这种情况下不足以实现您的要求。