【问题标题】:How to limit the width of window entries on the Wibar?如何限制 Wibar 上窗口条目的宽度?
【发布时间】:2021-12-03 01:35:22
【问题描述】:

现在,如果我只打开一个窗口,它会完全填满所有 wibar。直到我打开另一个窗口,现在每个都占用一半的空间。

有没有办法在wibar上设置单个窗口可以采用的静态宽度

这是一个例子:

enter image description here

【问题讨论】:

    标签: awesome-wm


    【解决方案1】:

    有几种方法可以做到这一点。我将列出其中的一些和优缺点

    默认情况下,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 容器中。这使您能够设置最小/最大大小,而不是硬编码该值。

    【讨论】:

    • 谢谢!如果我设置了固定宽度,但任务列表已满,你会建议怎么做?在这种情况下新条目消失了。有没有办法限制wibar的宽度容量?
    • 您可以使用过滤器限制数量。或者您可以使用wibox.container.constraint 对时间进行更细粒度的控制。如果您担心空间不足,也可以使用网格。
    • 谢谢,看来您已经将其放入原始答案中。我的意思是我不知道如何在代码中使用wibox.container.constraintwidget = wibox.container.constraint(wibox.container.background, 'max', 50,100),这是对的吗?
    • 它可以这样工作,但最好将整个小部件模板包装到{} 的另一个部门杠杆中,然后使用约束容器属性而不是在构造函数中传递所有内容。
    • wibox.container.constraint 行为不稳定。当栏已满时,任务会随机调整大小。非常好的是上面有完全相同的代码,但是当栏已满时切换到wibox.layout.flex.horizontal。这可能吗? (感谢您的所有帮助)。
    猜你喜欢
    • 1970-01-01
    • 2022-08-20
    • 1970-01-01
    • 2014-07-08
    • 1970-01-01
    • 2010-09-16
    • 2013-10-10
    • 2018-07-21
    • 1970-01-01
    相关资源
    最近更新 更多