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

时间:2016-08-14 18:27:56

标签: lua awesome-wm

我在rc.lua中使用-- Initialize widget Ethernet ethwidget = wibox.widget.textbox() -- Register widget 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) 创建了以下小部件:

${eth0 down_kb}

问题是我有一个最近的macbook pro,如果我没有插入ethernet adapter,那么我只看到例如DSACryptoServiceProvider印在我的wibox上。如何添加条件以便仅在插入以太网适配器时才插入窗口小部件?

1 个答案:

答案 0 :(得分:0)

我找到了一个工作正常的解决方案。我找到了这个链接http://awesome.naquadah.narkive.com/wpn4XSWl/netwidget-with-two-interfaces,我的代码现在如下:

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..' down_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: <span 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               
if string.len(t)>0 then -- remove leading '|'
return string.sub(t,2,-1)
end               
return 'No network'
end                                                                                                                                                           
, 1 )

你按照以下方式添加你的小部件(我正在使用v3.5.9(Mighty Ravendark)):

bottom_layout:add(netwidget)