仅当界面可用时才激活 vicious.widgets.net 小部件
Activate vicious.widgets.net widget only if interface is available
我的 rc.lua
中有以下使用 vicious
的小部件:
-- 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)
问题是我有一台最新的 macbook pro,如果我没有插入 ethernet adapter,那么我只能看到例如${eth0 down_kb}
打印在我的 wibox 上。我如何添加一个条件,以便只有在插入以太网适配器时才插入小部件?
我提出了一个运行良好的解决方案。我找到了这个 link 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 )
然后按如下方式添加小部件(我使用的是 awesome v3.5.9 (Mighty Ravendark)):
bottom_layout:add(netwidget)
我的 rc.lua
中有以下使用 vicious
的小部件:
-- 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)
问题是我有一台最新的 macbook pro,如果我没有插入 ethernet adapter,那么我只能看到例如${eth0 down_kb}
打印在我的 wibox 上。我如何添加一个条件,以便只有在插入以太网适配器时才插入小部件?
我提出了一个运行良好的解决方案。我找到了这个 link 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 )
然后按如下方式添加小部件(我使用的是 awesome v3.5.9 (Mighty Ravendark)):
bottom_layout:add(netwidget)