awesomeWM v3.5.6 如何为任务列表设置任意客户端的自定义图标?
How to set a custom icon of any client for the tasklist in awesomeWM v3.5.6?
if (c.class == "Google-chrome") then
c.icon = capi.image ( "/home/art-attack/.config/awesome/icons/chrome.png" )
end
我试过了,但总是出错,即尝试调用字段'image'(零值)
{ rule = { class = "Google-chrome" },
properties = { icon = beautiful.icon_chrome } },
然后我找到了另一种使用 awful.rules 中的属性 icon 的方法,它有效但没有更改图标,而是禁用了该客户端的图标。
要修复你的第一次尝试,试试这个:
if c.class == "Google-chrome" then
local icon = gears.surface("path/to/chrome.png")
c.icon = icon._native
icon:finish()
end
带有 icon:finish()
的行不是必需的,但它的存在是为了确保您不会优化此代码。那里有一些你不想知道的黑暗垃圾收集避免魔法,但简短的故事是:永远不要使用 _native
除非你已经将表面本身保存在变量中。
if c.class == "Google-chrome" then
local icon = gears.surface("path/to/chrome.png")
return text, bg, bg_image, icon
end
在
之前添加此代码
if capi.client.focus == c then
if (c.class == "Google-chrome") then
c.icon = capi.image ( "/home/art-attack/.config/awesome/icons/chrome.png" )
end
我试过了,但总是出错,即尝试调用字段'image'(零值)
{ rule = { class = "Google-chrome" },
properties = { icon = beautiful.icon_chrome } },
然后我找到了另一种使用 awful.rules 中的属性 icon 的方法,它有效但没有更改图标,而是禁用了该客户端的图标。
要修复你的第一次尝试,试试这个:
if c.class == "Google-chrome" then
local icon = gears.surface("path/to/chrome.png")
c.icon = icon._native
icon:finish()
end
带有 icon:finish()
的行不是必需的,但它的存在是为了确保您不会优化此代码。那里有一些你不想知道的黑暗垃圾收集避免魔法,但简短的故事是:永远不要使用 _native
除非你已经将表面本身保存在变量中。
if c.class == "Google-chrome" then
local icon = gears.surface("path/to/chrome.png")
return text, bg, bg_image, icon
end
在
之前添加此代码if capi.client.focus == c then