在 awesome 3.5 中,如何才能在任务列表中仅显示应用程序图标?

在 awesome 3.5 中,如何才能在任务列表中仅显示应用程序图标?

在 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)

相关内容