在 awesome 3.4 中有一种方法可以做到这一点:
mytasklist[s] = awful.widget.tasklist(function(c)
local task = { awful.widget.tasklist.label.currenttags(c, s) }
return '', task[2], task[3], task[4]
end, mytasklist.buttons)
但是在 awesome 3.5 中它不再起作用了,有什么解决办法吗?
谢谢
答案1
在 awesome 3.5 中,这不再起作用,因为标签函数(如您修改的行中的匿名函数)已被工作方式不同的过滤函数替换。从用户的角度来看(即仅通过修改 rc.lua 和 theme.lua),我认为不可能更改或删除任务列表文本。如果您确实想要这样做,解决方案是修改任务列表文件:
--- a/usr/share/awesome/lib/awful/widget/tasklist.lua
+++ b/usr/share/awesome/lib/awful/widget/tasklist_no_names.lua
@@ -61,10 +61,12 @@ local function tasklist_label(c, args)
if c.maximized_vertical then name = name .. maximized_vertical end
end
- if c.minimized then
- name = name .. (util.escape(c.icon_name) or util.escape(c.name) or util.escape("<untitled>"))
- else
- name = name .. (util.escape(c.name) or util.escape("<untitled>"))
- end
+ if theme.tasklist_show_names then
+ if c.minimized then
+ name = name .. (util.escape(c.icon_name) or util.escape(c.name) or util.escape("<untitled>"))
+ else
+ name = name .. (util.escape(c.name) or util.escape("<untitled>"))
+ end
+ end
if capi.client.focus == c then
bg = bg_focus
并在主题文件中添加一个选项来切换此功能:
+++ theme.lua
+ theme.tasklist_show_names = false
答案2
要保留图标并删除 awesome 3.5 任务列表中的文本,您可以编写一个自定义函数,并将其作为参数提供给 rc.lua 文件中的 awesome.widget.tasklist。这样,您就不必更改 awesome“源”文件中的任何内容
在 rc.lua 文件的顶部某处定义以下函数或将其包含在内
function myupdate(w, buttons, label, data, objects)
w:reset()
local l = wibox.layout.fixed.horizontal()
for i, o in ipairs(objects) do
local cache = data[o]
if cache then
ib = cache.ib
else
ib = wibox.widget.imagebox()
ib:buttons(common.create_buttons(buttons, o))
data[o] = {
ib = ib
}
end
local text, bg, bg_image, icon = label(o)
ib:set_image(icon)
l:add(ib)
--w:add(ib)
end
w:add(l)
end
然后将其作为参数添加到您的awful.widget.tasklist 中
mytasklist[s] = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, mytasklist.buttons, nil, myupdate)