【发布时间】:2021-12-03 01:35:22
【问题描述】:
现在,如果我只打开一个窗口,它会完全填满所有 wibar。直到我打开另一个窗口,现在每个都占用一半的空间。
有没有办法在wibar上设置单个窗口可以采用的静态宽度?
这是一个例子:
【问题讨论】:
标签: awesome-wm
现在,如果我只打开一个窗口,它会完全填满所有 wibar。直到我打开另一个窗口,现在每个都占用一半的空间。
有没有办法在wibar上设置单个窗口可以采用的静态宽度?
这是一个例子:
【问题讨论】:
标签: awesome-wm
有几种方法可以做到这一点。我将列出其中的一些和优缺点
默认情况下,awful.widget.tasklist 小部件使用分配宽度的wibox.layout.flex.horizontal。您想用wibox.layout.fixed.horizontal 替换它,它默认为小部件首选大小。如果您希望宽度始终相同,还需要添加 forced_width。
-- Create a tasklist widget
s.mytasklist = awful.widget.tasklist {
screen = s,
filter = awful.widget.tasklist.filter.currenttags,
layout = wibox.layout.fixed.horizontal(),
widget_template = {
{
{
{
{
widget = awful.widget.clienticon,
},
margins = 2,
widget = wibox.container.margin,
},
{
id = "text_role",
widget = wibox.widget.textbox,
},
layout = wibox.layout.fixed.horizontal,
},
left = 10,
right = 10,
widget = wibox.container.margin
},
forced_width = 100,
id = "background_role",
widget = wibox.container.background,
},
buttons = tasklist_buttons
}
但您可能还想将其包装在 wibox.container.constraint 容器中。这使您能够设置最小/最大大小,而不是硬编码该值。
【讨论】:
wibox.container.constraint 对时间进行更细粒度的控制。如果您担心空间不足,也可以使用网格。
wibox.container.constraint。 widget = wibox.container.constraint(wibox.container.background, 'max', 50,100),这是对的吗?
{} 的另一个部门杠杆中,然后使用约束容器属性而不是在构造函数中传递所有内容。
wibox.container.constraint 行为不稳定。当栏已满时,任务会随机调整大小。非常好的是上面有完全相同的代码,但是当栏已满时切换到wibox.layout.flex.horizontal。这可能吗? (感谢您的所有帮助)。