设置 Awesome WM 任务列表项的大小。

我正在编写一个自定义的纵向 wibox,其中包含我的任务列表,我希望它看起来像这样: enter image description here

但是,任务列表项不是固定高度的,它们只占用所有可用空间。以下是结果: enter image description here

这是到目前为止的代码:

function render_task_box(s)
    myotherbox[s] = awful.wibox({ position = "left", screen = s, ontop =
    true, width = 200 })

    mytasklist[s] = awful.widget.tasklist(
        s,
        awful.widget.tasklist.filter.currenttags,
        mytasklist.buttons,
        nil,
        nil,
        wibox.layout.flex.vertical())

    local middle_layout = wibox.layout.fixed.vertical()
    middle_layout:add(mytasklist[s])

    local layout = wibox.layout.align.vertical()
    layout:set_middle(middle_layout)

    myotherbox[s]:set_widget(layout)

end

那么我该如何获得想要的结果?(或者至少设置任务列表图标的高度)

更新

查了一些文档,试过这个:

local l = wibox.layout.flex.vertical();
l:set_max_widget_size(20)

它没做任何事。

点赞
用户1188047
用户1188047

在阅读了一些 awesome 源代码后,我找到了一个解决方案。

在你的脚本中某处引用此代码:

local common = require("awful.widget.common")

然后创建一个覆盖任务更新函数的函数:

function list_update(w, buttons, label, data, objects)
    -- 调用默认的小部件绘制功能
    common.list_update(w, buttons, label, data, objects)
    -- 设置小部件大小
    w:set_max_widget_size(20)
end

然后将此函数传递给任务列表

    mytasklist[s] = awful.widget.tasklist(s,
    awful.widget.tasklist.filter.currenttags,
    mytasklist.buttons,
    nil,
    list_update,
    wibox.layout.flex.vertical())

就这样!

2015-07-08 17:46:25