From 2be4549c15d91a652172fd12dabf63f495f0c87a Mon Sep 17 00:00:00 2001 From: matt LLVW Date: Tue, 14 May 2019 18:09:17 +0200 Subject: [PATCH 1/4] started --- main.go | 5 ++++- src/widgets/net.go | 14 ++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index 4e9352f..12dd830 100644 --- a/main.go +++ b/main.go @@ -47,6 +47,7 @@ var ( tempScale = w.Celcius battery = false statusbar = false + netInterface = "all" cpu *w.CpuWidget batt *w.BatteryWidget @@ -75,6 +76,7 @@ Options: -f, --fahrenheit Show temperatures in fahrenheit. -s, --statusbar Show a statusbar with the time. -b, --battery Show battery level widget ('minimal' turns off). + -i, --interface Select network interface [default: all]. Colorschemes: default @@ -116,6 +118,7 @@ Colorschemes: if fahrenheit { tempScale = w.Fahrenheit } + netInterface, _ := args["--interface"].(string) return nil } @@ -261,7 +264,7 @@ func initWidgets() { if battery { batt = w.NewBatteryWidget(graphHorizontalScale) } - net = w.NewNetWidget() + net = w.NewNetWidget(netInterface) disk = w.NewDiskWidget() temp = w.NewTempWidget(tempScale) } diff --git a/src/widgets/net.go b/src/widgets/net.go index 89def2a..b7a0532 100644 --- a/src/widgets/net.go +++ b/src/widgets/net.go @@ -11,6 +11,8 @@ import ( "github.com/cjbassi/gotop/src/utils" ) +type NetInterface string + type NetWidget struct { *ui.SparklineGroup updateInterval time.Duration @@ -18,9 +20,10 @@ type NetWidget struct { // used to calculate recent network activity totalBytesRecv uint64 totalBytesSent uint64 + NetInterface string } -func NewNetWidget() *NetWidget { +func NewNetWidget(netInterface string) *NetWidget { recvSparkline := ui.NewSparkline() recvSparkline.Data = []int{} @@ -31,8 +34,12 @@ func NewNetWidget() *NetWidget { self := &NetWidget{ SparklineGroup: spark, updateInterval: time.Second, + NetInterface: netInterface, } self.Title = " Network Usage " + if netInterface != "all" { + self.Title = fmt.Sprintf(" %s Usage ", netInterface) + } self.update() @@ -58,7 +65,10 @@ func (self *NetWidget) update() { var totalBytesSent uint64 for _, _interface := range interfaces { // ignore VPN interface - if _interface.Name != "tun0" { + if _interface.Name != "tun0" && self.NetInterface == "all" { + totalBytesRecv += _interface.BytesRecv + totalBytesSent += _interface.BytesSent + } else if _interface.Name == self.NetInterface { totalBytesRecv += _interface.BytesRecv totalBytesSent += _interface.BytesSent } From 622f27f88675fb8cd4dee2b02d9cd87df325fb6a Mon Sep 17 00:00:00 2001 From: matt LLVW Date: Tue, 14 May 2019 22:26:22 +0200 Subject: [PATCH 2/4] functional --- main.go | 4 ++-- src/widgets/net.go | 9 +++------ 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/main.go b/main.go index 12dd830..4ed0231 100644 --- a/main.go +++ b/main.go @@ -76,7 +76,7 @@ Options: -f, --fahrenheit Show temperatures in fahrenheit. -s, --statusbar Show a statusbar with the time. -b, --battery Show battery level widget ('minimal' turns off). - -i, --interface Select network interface [default: all]. + -i, --interface=NAME Select network interface [default: all]. Colorschemes: default @@ -118,7 +118,7 @@ Colorschemes: if fahrenheit { tempScale = w.Fahrenheit } - netInterface, _ := args["--interface"].(string) + netInterface, _ = args["--interface"].(string) return nil } diff --git a/src/widgets/net.go b/src/widgets/net.go index b7a0532..2c54f44 100644 --- a/src/widgets/net.go +++ b/src/widgets/net.go @@ -38,7 +38,7 @@ func NewNetWidget(netInterface string) *NetWidget { } self.Title = " Network Usage " if netInterface != "all" { - self.Title = fmt.Sprintf(" %s Usage ", netInterface) + self.Title = fmt.Sprintf(" %s Usage ", netInterface) } self.update() @@ -64,11 +64,8 @@ func (self *NetWidget) update() { var totalBytesRecv uint64 var totalBytesSent uint64 for _, _interface := range interfaces { - // ignore VPN interface - if _interface.Name != "tun0" && self.NetInterface == "all" { - totalBytesRecv += _interface.BytesRecv - totalBytesSent += _interface.BytesSent - } else if _interface.Name == self.NetInterface { + // ignore VPN interface or filter interface by name + if (_interface.Name != "tun0" && self.NetInterface == "all") || (_interface.Name == self.NetInterface) { totalBytesRecv += _interface.BytesRecv totalBytesSent += _interface.BytesSent } From 0d783d932e5eedbf25069c205e791d2933eb16aa Mon Sep 17 00:00:00 2001 From: matt LLVW Date: Tue, 14 May 2019 22:44:18 +0200 Subject: [PATCH 3/4] added README interface option --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c93f38b..acfab32 100644 --- a/README.md +++ b/README.md @@ -111,6 +111,7 @@ To make a custom colorscheme, check out the [template](./colorschemes/template.g `-a`, `--averagecpu` Show average CPU in the CPU widget. `-s`, `--statusbar` Show a statusbar with the time. `-b`, `--battery` Show battery level widget (`minimal` turns off). [preview](./assets/battery.png) +`-i`, `--interface=NAME` Select network interface [default: all]. ## Credits From d5f2fef5dd1bed58137578ce5b4d9d6e859e6c3b Mon Sep 17 00:00:00 2001 From: Caleb Bassi Date: Wed, 15 May 2019 17:13:36 -0700 Subject: [PATCH 4/4] Change network widget title based on interface --- src/widgets/net.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widgets/net.go b/src/widgets/net.go index 2c54f44..b4b4a34 100644 --- a/src/widgets/net.go +++ b/src/widgets/net.go @@ -38,7 +38,7 @@ func NewNetWidget(netInterface string) *NetWidget { } self.Title = " Network Usage " if netInterface != "all" { - self.Title = fmt.Sprintf(" %s Usage ", netInterface) + self.Title = fmt.Sprintf(" Network Usage: %s ", netInterface) } self.update()