From 8702678a94da7d6f1f8fa23791af12e5da45b9c8 Mon Sep 17 00:00:00 2001 From: Niv Sardi Date: Tue, 24 Apr 2018 15:24:18 -0300 Subject: [PATCH 1/5] replace menu icons by emoji Signed-off-by: Niv Sardi --- indicator-netspeed.c | 99 ++++++++++++++++++++++---------------------- 1 file changed, 49 insertions(+), 50 deletions(-) diff --git a/indicator-netspeed.c b/indicator-netspeed.c index 45c6ffb..c56b87b 100644 --- a/indicator-netspeed.c +++ b/indicator-netspeed.c @@ -38,7 +38,7 @@ GtkWidget *net_down_item; GtkWidget *net_up_item; GtkWidget *quit_item; -gchar* format_net_label(int data, bool padding) +gchar* format_net_label(int data, char* emoji, bool padding) { gchar *string; /*if(data < 1000) @@ -55,6 +55,11 @@ gchar* format_net_label(int data, bool padding) } //will someone have 1 gb/s ? maybe... + if (emoji) + { + string = g_strdup_printf ("%s %s", emoji, string); + } + if(padding) { //render string and get its pixel width @@ -136,6 +141,47 @@ void get_net(int traffic[2]) bytes_out_old = bytes_out; } +gboolean update() { + //get sum of up and down net traffic and separate values + //and refresh labels of current interface + int net_traffic[2] = {0, 0}; + get_net(net_traffic); + int net_down = net_traffic[0]; + int net_up = net_traffic[1]; + int net_total = net_down + net_up; + + gchar *indicator_label = format_net_label(net_total, NULL, true); + gchar *label_guide = "10000.00 MiB/s"; //maximum length label text, doesn't really work atm + app_indicator_set_label(indicator, indicator_label, label_guide); + g_free(indicator_label); + + gchar *net_down_label = format_net_label(net_down, "⬇️", false); + gtk_menu_item_set_label(GTK_MENU_ITEM(net_down_item), net_down_label); + g_free(net_down_label); + + gchar *net_up_label = format_net_label(net_up, "⬆️", false); + gtk_menu_item_set_label(GTK_MENU_ITEM(net_up_item), net_up_label); + g_free(net_up_label); + + if (net_down && net_up) + { + app_indicator_set_icon(indicator, "network-transmit-receive"); + } + else if (net_down) + { + app_indicator_set_icon(indicator, "network-receive"); + } + else if (net_up) + { + app_indicator_set_icon(indicator, "network-transmit"); + } + else { + app_indicator_set_icon(indicator, "network-idle"); + } + + return TRUE; +} + void if_signal_select(GtkMenuItem *menu_item, gpointer user_data) { //set currently selected interface from user selection gchar *old_if_name = selected_if_name; @@ -184,47 +230,6 @@ void add_netifs() { g_strfreev(interfaces); } -gboolean update() { - //get sum of up and down net traffic and separate values - //and refresh labels of current interface - int net_traffic[2] = {0, 0}; - get_net(net_traffic); - int net_down = net_traffic[0]; - int net_up = net_traffic[1]; - int net_total = net_down + net_up; - - gchar *indicator_label = format_net_label(net_total, true); - gchar *label_guide = "10000.00 MiB/s"; //maximum length label text, doesn't really work atm - app_indicator_set_label(indicator, indicator_label, label_guide); - g_free(indicator_label); - - gchar *net_down_label = format_net_label(net_down, false); - gtk_menu_item_set_label(GTK_MENU_ITEM(net_down_item), net_down_label); - g_free(net_down_label); - - gchar *net_up_label = format_net_label(net_up, false); - gtk_menu_item_set_label(GTK_MENU_ITEM(net_up_item), net_up_label); - g_free(net_up_label); - - if (net_down && net_up) - { - app_indicator_set_icon(indicator, "network-transmit-receive"); - } - else if (net_down) - { - app_indicator_set_icon(indicator, "network-receive"); - } - else if (net_up) - { - app_indicator_set_icon(indicator, "network-transmit"); - } - else { - app_indicator_set_icon(indicator, "network-idle"); - } - - return TRUE; -} - int main (int argc, char **argv) { if (argc > 1 && strcmp("--trace", argv[1]) == 0) @@ -257,16 +262,10 @@ int main (int argc, char **argv) gtk_menu_shell_append(GTK_MENU_SHELL(indicator_menu), sep); //add menu entries for up and down speed - net_down_item = gtk_image_menu_item_new_with_label(""); - GtkWidget *net_down_icon = gtk_image_new_from_icon_name("network-receive", GTK_ICON_SIZE_MENU); - gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(net_down_item), net_down_icon); - gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(net_down_item), TRUE); + net_down_item = gtk_menu_item_new_with_label(""); gtk_menu_shell_append(GTK_MENU_SHELL(indicator_menu), net_down_item); - net_up_item = gtk_image_menu_item_new_with_label(""); - GtkWidget *net_up_icon = gtk_image_new_from_icon_name("network-transmit", GTK_ICON_SIZE_MENU); - gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(net_up_item), net_up_icon); - gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(net_up_item), TRUE); + net_up_item = gtk_menu_item_new_with_label(""); gtk_menu_shell_append(GTK_MENU_SHELL(indicator_menu), net_up_item); //separator From 280114d61a5178a0de324f6704fe532713a34f07 Mon Sep 17 00:00:00 2001 From: Niv Sardi Date: Tue, 24 Apr 2018 15:25:31 -0300 Subject: [PATCH 2/5] fix compile warnings Signed-off-by: Niv Sardi --- indicator-netspeed.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/indicator-netspeed.c b/indicator-netspeed.c index c56b87b..2d3361b 100644 --- a/indicator-netspeed.c +++ b/indicator-netspeed.c @@ -184,16 +184,15 @@ gboolean update() { void if_signal_select(GtkMenuItem *menu_item, gpointer user_data) { //set currently selected interface from user selection - gchar *old_if_name = selected_if_name; - + // We're allocating a new string here, but we don't need to free the previous // one because the call to gtk_menu_item_set_label below does that already. selected_if_name = g_strdup(gtk_menu_item_get_label(menu_item)); TRACE("Selected interface %s\n", selected_if_name); // frees the previous selected_if_name - gtk_menu_item_set_label(if_chosen, selected_if_name); + gtk_menu_item_set_label(GTK_MENU_ITEM(if_chosen), selected_if_name); g_settings_set_value (settings, "if-name", g_variant_new_string(selected_if_name)); - + first_run = TRUE; update(); @@ -254,7 +253,7 @@ int main (int argc, char **argv) //add interface names if_chosen = gtk_menu_item_new_with_label(""); gtk_menu_shell_append(GTK_MENU_SHELL(indicator_menu), if_chosen); - gtk_menu_item_set_submenu (if_chosen, interfaces_menu); + gtk_menu_item_set_submenu (GTK_MENU_ITEM(if_chosen), interfaces_menu); add_netifs(); //separator From 827038cc5f40f5dab2e239c9d2b751b62808cfec Mon Sep 17 00:00:00 2001 From: Niv Sardi Date: Fri, 12 Apr 2019 23:59:36 -0300 Subject: [PATCH 3/5] default installing to ~/.local Signed-off-by: Niv Sardi --- Makefile | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 29ed996..3ed937b 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,6 @@ CC=gcc CFLAGS=-g -Wall -Wfatal-errors -std=c99 $(shell pkg-config --cflags --libs gtk+-3.0 appindicator3-0.1 libgtop-2.0) +PREFIX=~/.local all: indicator-netspeed @@ -10,11 +11,11 @@ clean: rm -f *.o indicator-netspeed install: - install --mode=755 indicator-netspeed /usr/bin/ - install indicator-netspeed.gschema.xml /usr/share/glib-2.0/schemas/ - glib-compile-schemas /usr/share/glib-2.0/schemas/ + install --mode=755 indicator-netspeed ${PREFIX}/bin/ + install indicator-netspeed.gschema.xml ${PREFIX}/share/glib-2.0/schemas/ + glib-compile-schemas ${PREFIX}/share/glib-2.0/schemas/ uninstall: - rm /usr/bin/indicator-netspeed - rm /usr/share/glib-2.0/schemas/indicator-netspeed.gschema.xml - glib-compile-schemas /usr/share/glib-2.0/schemas/ + rm ${PREFIX}/bin/indicator-netspeed + rm ${PREFIX}/share/glib-2.0/schemas/indicator-netspeed.gschema.xml + glib-compile-schemas ${PREFIX}/share/glib-2.0/schemas/ From 28962a74429d1243af7e6023ac35df8412a295c8 Mon Sep 17 00:00:00 2001 From: Niv Sardi Date: Sat, 13 Apr 2019 00:00:50 -0300 Subject: [PATCH 4/5] don't show speed if it's 0 Signed-off-by: Niv Sardi --- indicator-netspeed.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/indicator-netspeed.c b/indicator-netspeed.c index 2d3361b..4e09bdc 100644 --- a/indicator-netspeed.c +++ b/indicator-netspeed.c @@ -41,17 +41,24 @@ GtkWidget *quit_item; gchar* format_net_label(int data, char* emoji, bool padding) { gchar *string; + + double speed = data/1024.0; + if (!data) + { + return NULL; + } + /*if(data < 1000) { string = g_strdup_printf("%d B/s", data); } - else*/ if(data < 1000000) //should be < 1 MiB and not 1 MB, but this keeps width smaller + else*/ if(speed < 1000000) //should be < 1 MiB and not 1 MB, but this keeps width smaller { - string = g_strdup_printf("%.1f KiB/s", data/1024.0); + string = g_strdup_printf("%.1f KiB/s", speed); } else { - string = g_strdup_printf("%.2f MiB/s", data/1048576.0); + string = g_strdup_printf("%.2f MiB/s", speed/1024); } //will someone have 1 gb/s ? maybe... @@ -151,9 +158,14 @@ gboolean update() { int net_total = net_down + net_up; gchar *indicator_label = format_net_label(net_total, NULL, true); - gchar *label_guide = "10000.00 MiB/s"; //maximum length label text, doesn't really work atm - app_indicator_set_label(indicator, indicator_label, label_guide); - g_free(indicator_label); + if (indicator_label) + { + gchar *label_guide = "10000.00 MiB/s"; //maximum length label text, doesn't really work atm + app_indicator_set_label(indicator, indicator_label, label_guide); + g_free(indicator_label); + } else { + app_indicator_set_label(indicator, "", ""); + } gchar *net_down_label = format_net_label(net_down, "⬇️", false); gtk_menu_item_set_label(GTK_MENU_ITEM(net_down_item), net_down_label); From 0d97f198bf6546f6e5ef07d6ba1e882cca34a8f1 Mon Sep 17 00:00:00 2001 From: Niv Sardi Date: Sat, 13 Apr 2019 00:48:09 -0300 Subject: [PATCH 5/5] emoji doesn't seem to work anymore, use plain utf8 Signed-off-by: Niv Sardi --- indicator-netspeed.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/indicator-netspeed.c b/indicator-netspeed.c index 4e09bdc..5a91b9a 100644 --- a/indicator-netspeed.c +++ b/indicator-netspeed.c @@ -167,11 +167,11 @@ gboolean update() { app_indicator_set_label(indicator, "", ""); } - gchar *net_down_label = format_net_label(net_down, "⬇️", false); + gchar *net_down_label = format_net_label(net_down, "🠋", false); gtk_menu_item_set_label(GTK_MENU_ITEM(net_down_item), net_down_label); g_free(net_down_label); - gchar *net_up_label = format_net_label(net_up, "⬆️", false); + gchar *net_up_label = format_net_label(net_up, "🠉", false); gtk_menu_item_set_label(GTK_MENU_ITEM(net_up_item), net_up_label); g_free(net_up_label);