2

我正在使用 vicious (v2.1.3-1) 在真棒 wm (v3.5.5-1) 中配置小部件。我想在小部件中显示时间。然后当我将鼠标悬停在时间小部件上时,在工具提示中显示日期。

在我的 rc.lua 文件中使用 vicious 的以下代码可以正常工作:

myclock = wibox.widget.textbox()
vicious.register(myclock, vicious.widgets.date, " <span color='#ffffff'>%H:%M</span> ") 
myclock_tooltip =  awful.tooltip ({ objects = { myclock } })
vicious.register(myclock_tooltip, vicious.widgets.date, " %a %d %b ", 60)

但是,当我尝试组合这两个vicious.register语句时(基于恶意自述文件的Format functions部分):

myclock = wibox.widget.textbox()
myclock_tooltip =  awful.tooltip ({ objects = { myclock } })
vicious.register(myclock, vicious.widgets.date, 
    function (widget, args)
        myclock_tooltip.set_text(" %a %d %b ")
        return " <span color='#ffffff'>%H:%M</span> "
    end)

我收到以下错误:

/usr/share/lua/5.2/vicious/widgets/date.lua:23: bad argument #1 to 'date' (string expected, got function)

有什么建议我哪里出错了吗?

4

2 回答 2

2

为什么你需要那个格式函数呢?以下不起作用吗?

myclock = wibox.widget.textbox()
myclock_tooltip =  awful.tooltip ({ objects = { myclock } })
vicious.register(myclock, vicious.widgets.date, " <span color='#fffff'>%H:%M</span> ")
myclock_tooltip_timer = timer({ timeout = 3600 })
myclock_tooltip_timer:connect_signal("timeout", function()
    myclock_tooltip:set_text(os.date(" %a %d %b "))
end)
myclock_tooltip_timer:start()
myclock_tooltip_timer:emit_signal("timeout")

这对小部件使用“正常”的恶意内容,并使用单独的计时器更新您的工具提示,该计时器每小时触发一次。

于 2014-09-24T09:22:03.787 回答
1

从技术角度来看,我不相信你做错了什么。我认为(快速查看源代码确认)该小部件不接受函数格式。

看起来有些小部件采用格式字符串(由小部件函数使用)和一些接受格式函数(用小部件函数的结果调用),但我没有从该 README 中看到任何明确的指示。

例如,将date.luaworker中的函数与uptime.lua中的worker函数进行比较。

该函数在调用中date.lua使用参数(这是产生错误的原因,请尝试在本地调用)。formatos.dateos.date(function()end)

uptime.lua函数根本不使用该format参数(大概是vicious在该函数的返回值上在内部调用它。

可能值得要求更新文档以使其更清晰(或自己修复文档并为其提交补丁)。

于 2014-09-23T22:10:23.037 回答