[英]awesome wm/vicious widget: using a format function throws a bad argument error
我正在使用惡意(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
語句(基於vicious自述文件的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)
有什么建議我要去哪里嗎?
為什么根本需要那種格式功能? 以下工作無效嗎?
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")
這會為小部件使用“正常”惡意內容,並使用單獨的計時器(每小時觸發一次)更新您的工具提示。
從技術角度來看,我認為您沒有做錯任何事情。 我認為(並快速查看源代碼可以確認)該小部件只是不接受函數格式。
看起來有些窗口小部件采用格式字符串(由窗口小部件功能使用),而某些接受格式函數(與窗口小部件功能的結果一起調用),但我從該README文件中看不到任何明確的指示。
例如,將date.lua中的worker
函數與uptime.lua中的worker
函數進行比較 。
date.lua
函數在對os.date
的調用中使用format
參數(這是生成錯誤的原因,請嘗試在本地調用os.date(function()end)
)。
uptime.lua
函數根本不使用format
參數(可能是vicious
內部在該函數的返回值上調用了該參數)。
可能值得要求更新文檔以使其更加清晰(或者自己整理文檔並為其提交補丁)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.