在很棒的 wm 容器小部件上的两种颜色之间切换
Switching between two colors on a awesome wm container widget
我创建了一个 wibox.container.background
类似的东西:
local w = wibox.widget({
{
id = "texte",
text = "mon texte",
widget = wibox.widget.textbox
},
bg = beautiful.bg_normal,
widget = wibox.container.background
})
现在我想在两种背景颜色之间切换:
w.bg = w.bg == beautiful.bg_normal and beautiful.bg_focus or beautiful.bg_normal
但这不起作用。似乎 w.bg
指的是实心图案而不是简单的六色字符串。
我是否指向正确的 bg
变量?
我建议您保留自己的变量 local is_focus = true
并使用它来更新背景。
发生的情况是您指定的背景“字符串”经过 gears.color
并转换为 cairo 模式。这就是实际用于绘图的内容。您也可以直接传入 cairo 模式并避免通过 gears.color
.
的“循环”
我提出的解决方案示例:
local w = wibox.widget({
{
id = "texte",
text = "mon texte",
widget = wibox.widget.textbox
},
bg = beautiful.bg_normal,
widget = wibox.container.background
})
local is_focused = false
local function switch_background()
is_focused = not is_focused
w.bg = is_focused and beautiful.bg_focus or beautiful.bg_normal
end
我创建了一个 wibox.container.background
类似的东西:
local w = wibox.widget({
{
id = "texte",
text = "mon texte",
widget = wibox.widget.textbox
},
bg = beautiful.bg_normal,
widget = wibox.container.background
})
现在我想在两种背景颜色之间切换:
w.bg = w.bg == beautiful.bg_normal and beautiful.bg_focus or beautiful.bg_normal
但这不起作用。似乎 w.bg
指的是实心图案而不是简单的六色字符串。
我是否指向正确的 bg
变量?
我建议您保留自己的变量 local is_focus = true
并使用它来更新背景。
发生的情况是您指定的背景“字符串”经过 gears.color
并转换为 cairo 模式。这就是实际用于绘图的内容。您也可以直接传入 cairo 模式并避免通过 gears.color
.
我提出的解决方案示例:
local w = wibox.widget({
{
id = "texte",
text = "mon texte",
widget = wibox.widget.textbox
},
bg = beautiful.bg_normal,
widget = wibox.container.background
})
local is_focused = false
local function switch_background()
is_focused = not is_focused
w.bg = is_focused and beautiful.bg_focus or beautiful.bg_normal
end