仅当接口可用时激活vicious.widgets.net小部件

我在 rc.lua 中使用以下代码定义了一个 vicious 小部件:

-- 初始化以太网小部件
ethwidget = wibox.widget.textbox()
-- 注册小部件
vicious.register(ethwidget, vicious.widgets.net, 'Eth0: <span color="#CC9933">down: ${eth0 down_kb} kB/s</span> <span color="#7F9F7F"> up: ${eth0 up_kb}  kB/s</span><span color="#cccccc"> [ ${eth0 rx_gb} GB //  ${eth0 tx_gb} GB ] | </span>', 2)

问题是我有一台最新的 MacBook Pro,如果我没有接 以太网转换器 ,就只能在我的 wibox 上看到 ${eth0 down_kb} 等文本。我该如何添加条件语句,只有在插入以太网转换器后才会添加该小部件?

点赞
用户1995261
用户1995261

我找到了一个有效的解决方案。我在这个链接中找到了这个链接,现在我的代码如下:

eths = {'eth0''wlp3s0'}
netwidget = wibox.widget.textbox()
vicious.register(netwidget,vicious.widgets.net,
function(widget,args)
t =''
for i = 1,#eths do
e = eths [i]
if args [“{” .. e ..“carrier}”] == 1 then
    if e == 'wlp3s0' then
        t = t .. '|' ..' Wifi:<span color ="#CC9933"> down:' .. args ['{ '.. e .. '下_kb} ']..' kbps </span> <span color ="#7F9F7F"> up: ' ..args['{'..e..' up_kb}']..' kbps </span> '.. '[ '..args['{'..e..' rx_gb}']..' GB // ' ..args['{'..e..' tx_gb}']..' GB ] '
    else
        t = t .. '|'..'Eth0:<spans color ="#CC9933"> down:'..args['{'..e..' down_kb}']..' kbps </span> <span color ="#7F9F7F"> up:' ..args['{'..E..' up_kb}']..' kbps </span>'.. '[ '..args['{'..E..' rx_gb}'].. ' GB // ' ..args['{'..E..' tx_gb}']..' GB ] '
    end
end
end
如果字符串长度(t)> 0,则删除前导'|'
返回字符串.sub(t,2,-1)
返回'无网络'
end
,1)

然后,您将小部件添加如下(我正在使用awesome v3.5.9(Mighty Ravendark):

bottom_layout:add(netwidget)
2016-08-21 19:32:51