簡體   English   中英

令人贊嘆的wm / vicious小部件:使用格式函數會拋出錯誤的參數錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM