From 8aef0a96bf4e14cd90af083273e18b3a9f82b1df Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 09:17:44 +0530 Subject: [PATCH 001/344] refreshrate 1 sec --- extension.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extension.js b/extension.js index cc1fa37..6881254 100644 --- a/extension.js +++ b/extension.js @@ -11,7 +11,7 @@ const Me = ExtensionUtils.getCurrentExtension(); const Convenience = Me.imports.convenience; const PREFS_SCHEMA = 'org.gnome.shell.extensions.simplenetspeed'; -const refreshTime = 3.0; +const refreshTime = 1.0; let settings; let button, timeout; From 7294af04779776228358100801f7ae9f7d59152f Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 09:20:16 +0530 Subject: [PATCH 002/344] Update metadata.json --- metadata.json | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/metadata.json b/metadata.json index 2495e04..1087a3a 100644 --- a/metadata.json +++ b/metadata.json @@ -21,9 +21,11 @@ "3.29", "3.30", "3.32", - "3.34" + "3.34", + "3.36", + "3.38" ], - "url": "https://github.com/biji/simplenetspeed", - "uuid": "simplenetspeed@biji.extension", - "version": 16 + "url": "https://github.com/prateekmedia/simplenetspeed/", + "uuid": "simplenetspeed@prateekmedia.extension", + "version": 18 } From 4b4666c166a0701fdb6ea1c2cc38a4062aae0f5a Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 09:22:23 +0530 Subject: [PATCH 003/344] Update metadata.json --- metadata.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/metadata.json b/metadata.json index 1087a3a..e323e48 100644 --- a/metadata.json +++ b/metadata.json @@ -25,7 +25,7 @@ "3.36", "3.38" ], - "url": "https://github.com/prateekmedia/simplenetspeed/", - "uuid": "simplenetspeed@prateekmedia.extension", + "url": "https://github.com/biji/simplenetspeed", + "uuid": "simplenetspeed@biji.extension", "version": 18 } From d7c368ab7918d5becac9539dde1c054c450f28ca Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 09:24:19 +0530 Subject: [PATCH 004/344] Update extension.js --- extension.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extension.js b/extension.js index 6881254..169dd85 100644 --- a/extension.js +++ b/extension.js @@ -33,8 +33,8 @@ function init() { style_class: 'panel-button', reactive: true, can_focus: true, - x_fill: true, - y_fill: false, + x_expand: true, + y_expand: false, track_hover: true }); From 1d96bcee77c9f9c1c5d3c63b6b00fab8c19d5329 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 09:27:59 +0530 Subject: [PATCH 005/344] Update README.md --- README.md | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e9bdd80..6a02778 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,9 @@ # Simple net speed Gnome extension to show network speed -https://extensions.gnome.org/extension/1085/simple-net-speed/ +Forked from : https://github.com/biji/simplenetspeed + +Added : Refresh time is 1 second, supports GNOME SHELL 3.38 Simply showing network speed. Left click to change modes: @@ -11,4 +13,17 @@ Simply showing network speed. Left click to change modes: 1. Up & down speed in Bytes per second 1. Total of downloaded in Bytes (Right click to reset counter) -Middle click to change font size +* Middle click to change font size + +* If you are getting it from source: + - to install + ```make install``` + + - to enable + ```make enable``` + + - to disable + ```make disable``` + + - to reload + ```make reload``` From 9b12c4fb64530e85f2b6ce243d7839940a85b731 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 09:30:04 +0530 Subject: [PATCH 006/344] Update README.md --- README.md | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/README.md b/README.md index 6a02778..07a73c2 100644 --- a/README.md +++ b/README.md @@ -14,16 +14,3 @@ Simply showing network speed. Left click to change modes: 1. Total of downloaded in Bytes (Right click to reset counter) * Middle click to change font size - -* If you are getting it from source: - - to install - ```make install``` - - - to enable - ```make enable``` - - - to disable - ```make disable``` - - - to reload - ```make reload``` From 92a8ed9e0b743cae8b9465b6cae3c371b1b4329e Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 10:03:46 +0530 Subject: [PATCH 007/344] Update README.md --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index 07a73c2..1d01488 100644 --- a/README.md +++ b/README.md @@ -14,3 +14,13 @@ Simply showing network speed. Left click to change modes: 1. Total of downloaded in Bytes (Right click to reset counter) * Middle click to change font size + +* If you are getting it from source: + - to install + ```mv /home/prateeksu/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension /tmp/biji && git clone https://github.com/prateekmedia/simplenetspeed/edit/master/README.md /home/prateeksu/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension``` + - to load extension + ```Press Alt+F2 then type 'r' and hit enter.``` + - to enable + ```You Can enable maually using extensions app``` + - to disable + ```You Can disable maually using extensions app``` From 41643e0ce7ac186686a85caf730ef74fb6a0f0c7 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 10:04:46 +0530 Subject: [PATCH 008/344] Update README.md --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 1d01488..dcd5eed 100644 --- a/README.md +++ b/README.md @@ -16,11 +16,11 @@ Simply showing network speed. Left click to change modes: * Middle click to change font size * If you are getting it from source: - - to install + - to install ```mv /home/prateeksu/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension /tmp/biji && git clone https://github.com/prateekmedia/simplenetspeed/edit/master/README.md /home/prateeksu/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension``` - - to load extension - ```Press Alt+F2 then type 'r' and hit enter.``` - - to enable + - to load extension + Press ```Alt+F2``` then type ```r``` and ```hit enter```. + - to enable ```You Can enable maually using extensions app``` - - to disable + - to disable ```You Can disable maually using extensions app``` From df4709431733ff566e06206b52eed915f4b92773 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 10:05:20 +0530 Subject: [PATCH 009/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dcd5eed..b1e07a3 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Simply showing network speed. Left click to change modes: * If you are getting it from source: - to install - ```mv /home/prateeksu/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension /tmp/biji && git clone https://github.com/prateekmedia/simplenetspeed/edit/master/README.md /home/prateeksu/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension``` + ```mv ~/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension /tmp/biji && git clone https://github.com/prateekmedia/simplenetspeed/edit/master/README.md ~/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension``` - to load extension Press ```Alt+F2``` then type ```r``` and ```hit enter```. - to enable From 62dc69516fc725cae9983d3b09f6cf94ab41131f Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 10:12:39 +0530 Subject: [PATCH 010/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b1e07a3..bee5a1c 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Simply showing network speed. Left click to change modes: * If you are getting it from source: - to install - ```mv ~/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension /tmp/biji && git clone https://github.com/prateekmedia/simplenetspeed/edit/master/README.md ~/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension``` + ```mv ~/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension /tmp/biji && git clone https://github.com/prateekmedia/simplenetspeed/ ~/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension``` - to load extension Press ```Alt+F2``` then type ```r``` and ```hit enter```. - to enable From 8b5fa33d3e8ed5ad4961c60fa308ae0f7046534f Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 10:17:52 +0530 Subject: [PATCH 011/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bee5a1c..0a6dcc0 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Simply showing network speed. Left click to change modes: * If you are getting it from source: - to install - ```mv ~/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension /tmp/biji && git clone https://github.com/prateekmedia/simplenetspeed/ ~/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension``` + ```mkdir ~/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension /tmp/biji || mv ~/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension /tmp/biji && git clone https://github.com/prateekmedia/simplenetspeed/ ~/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension``` - to load extension Press ```Alt+F2``` then type ```r``` and ```hit enter```. - to enable From edb6b57871d47f576e96c964a1b88f40bd2f7695 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 10:23:28 +0530 Subject: [PATCH 012/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0a6dcc0..a36e800 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Simple net speed +# Simplified net speed Gnome extension to show network speed Forked from : https://github.com/biji/simplenetspeed From fb6014dd3d089232144c5babcc471a2bcb70daa1 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 10:24:26 +0530 Subject: [PATCH 013/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a36e800..07a5091 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Simplified net speed +# Net speed Simplified Gnome extension to show network speed Forked from : https://github.com/biji/simplenetspeed From 4dbbc470737eca9bd6827b866a222ba35c04c337 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 10:25:22 +0530 Subject: [PATCH 014/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 07a5091..ac95a57 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Simply showing network speed. Left click to change modes: * If you are getting it from source: - to install - ```mkdir ~/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension /tmp/biji || mv ~/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension /tmp/biji && git clone https://github.com/prateekmedia/simplenetspeed/ ~/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension``` + ```mkdir ~/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension /tmp/biji || mv ~/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension /tmp/biji && git clone https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension``` - to load extension Press ```Alt+F2``` then type ```r``` and ```hit enter```. - to enable From 1e0024e9ad2cb418b54b9da7c524463f8966cb01 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 10:27:01 +0530 Subject: [PATCH 015/344] Update metadata.json --- metadata.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/metadata.json b/metadata.json index e323e48..8586ff6 100644 --- a/metadata.json +++ b/metadata.json @@ -25,7 +25,7 @@ "3.36", "3.38" ], - "url": "https://github.com/biji/simplenetspeed", - "uuid": "simplenetspeed@biji.extension", + "url": "https://github.com/prateekmedia/netspeedsimplified", + "uuid": "netspeedsimplified@prateekmedia.extension", "version": 18 } From 4c0558f193369f5e0f3ba7eb560b14ad494cd08e Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 10:28:25 +0530 Subject: [PATCH 016/344] Update org.gnome.shell.extensions.simplenetspeed.gschema.xml --- schemas/org.gnome.shell.extensions.simplenetspeed.gschema.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/schemas/org.gnome.shell.extensions.simplenetspeed.gschema.xml b/schemas/org.gnome.shell.extensions.simplenetspeed.gschema.xml index b346099..e987d47 100644 --- a/schemas/org.gnome.shell.extensions.simplenetspeed.gschema.xml +++ b/schemas/org.gnome.shell.extensions.simplenetspeed.gschema.xml @@ -1,6 +1,6 @@ - - + + 0 From f842487d99698b993714955ff72579d15374b1d1 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 10:43:43 +0530 Subject: [PATCH 017/344] Updated Format --- stylesheet.css | 74 ++++++++++---------------------------------------- 1 file changed, 14 insertions(+), 60 deletions(-) diff --git a/stylesheet.css b/stylesheet.css index 6f13803..ee11bf8 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -1,80 +1,34 @@ -.simplenetspeed-label { - width: 7em; +.simplenetspeed-label, .simplenetspeed-label-1, .simplenetspeed-label-2, .simplenetspeed-label-3, .simplenetspeed-label-4, .simplenetspeed-label-w, .simplenetspeed-label-w-1, .simplenetspeed-label-w-2, .simplenetspeed-label-w-3, .simplenetspeed-label-w-4{ text-align: right; margin-left: 1px; - margin-right: 2px; - font-size: 1em; } -.simplenetspeed-label-w { +.simplenetspeed-label, .simplenetspeed-label-1, .simplenetspeed-label-2, .simplenetspeed-label-3, .simplenetspeed-label-4 { + width: 7em; + margin-right: 2px;} + +.simplenetspeed-label-w, .simplenetspeed-label-w-1, .simplenetspeed-label-w-2, .simplenetspeed-label-w-3, .simplenetspeed-label-w-4 { width: 11em; - text-align: right; - margin-left: 1px; - margin-right: 1px; - font-size: 1em; -} + margin-right: 1px;} -.simplenetspeed-label-1 { - width: 7em; - text-align: right; - margin-left: 1px; - margin-right: 2px; - font-size: .65em; + +.simplenetspeed-label, .simplenetspeed-label-w { + font-size: 1em; } -.simplenetspeed-label-w-1 { - width: 11em; - text-align: right; - margin-left: 1px; - margin-right: 1px; +.simplenetspeed-label-1, .simplenetspeed-label-w-1 { font-size: .65em; } -.simplenetspeed-label-2 { - width: 7em; - text-align: right; - margin-left: 1px; - margin-right: 2px; +.simplenetspeed-label-2, .simplenetspeed-label-w-2 { font-size: .7em; } -.simplenetspeed-label-w-2 { - width: 11em; - text-align: right; - margin-left: 1px; - margin-right: 1px; - font-size: .7em; -} - -.simplenetspeed-label-3 { - width: 7em; - text-align: right; - margin-left: 1px; - margin-right: 2px; +.simplenetspeed-label-3, .simplenetspeed-label-w-3 { font-size: .9em; } -.simplenetspeed-label-w-3 { - width: 11em; - text-align: right; - margin-left: 1px; - margin-right: 1px; - font-size: .9em; -} - -.simplenetspeed-label-4 { - width: 7em; - text-align: right; - margin-left: 1px; - margin-right: 2px; - font-size: 1.1em; -} - -.simplenetspeed-label-w-4 { - width: 11em; - text-align: right; - margin-left: 1px; - margin-right: 1px; +.simplenetspeed-label-4, .simplenetspeed-label-w-4 { font-size: 1.1em; } From d9b459fc5a94ae9514e89d5cff4405bfa25cde2f Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 10:46:18 +0530 Subject: [PATCH 018/344] Update extension.js --- extension.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extension.js b/extension.js index 169dd85..7e96edc 100644 --- a/extension.js +++ b/extension.js @@ -10,7 +10,7 @@ const ExtensionUtils = imports.misc.extensionUtils; const Me = ExtensionUtils.getCurrentExtension(); const Convenience = Me.imports.convenience; -const PREFS_SCHEMA = 'org.gnome.shell.extensions.simplenetspeed'; +const PREFS_SCHEMA = 'org.gnome.shell.extensions.netspeedsimplified'; const refreshTime = 1.0; let settings; From 3309380225fdda8859a2a6e3f460d7dadcb73c4e Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 10:48:12 +0530 Subject: [PATCH 019/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ac95a57..06e964d 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Simply showing network speed. Left click to change modes: * If you are getting it from source: - to install - ```mkdir ~/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension /tmp/biji || mv ~/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension /tmp/biji && git clone https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/simplenetspeed@biji.extension``` + ```git clone https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - to load extension Press ```Alt+F2``` then type ```r``` and ```hit enter```. - to enable From 2c4908ea51cefb94b2adbdee89653c0ebd426ec0 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 10:59:01 +0530 Subject: [PATCH 020/344] Rename org.gnome.shell.extensions.simplenetspeed.gschema.xml to org.gnome.shell.extensions.netspeedsimplified.gschema.xml --- ... => org.gnome.shell.extensions.netspeedsimplified.gschema.xml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename schemas/{org.gnome.shell.extensions.simplenetspeed.gschema.xml => org.gnome.shell.extensions.netspeedsimplified.gschema.xml} (100%) diff --git a/schemas/org.gnome.shell.extensions.simplenetspeed.gschema.xml b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml similarity index 100% rename from schemas/org.gnome.shell.extensions.simplenetspeed.gschema.xml rename to schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml From 62d2e2666426776fb99005eba30b78531044540a Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 11:00:06 +0530 Subject: [PATCH 021/344] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 06e964d..99c32ff 100644 --- a/README.md +++ b/README.md @@ -24,3 +24,5 @@ Simply showing network speed. Left click to change modes: ```You Can enable maually using extensions app``` - to disable ```You Can disable maually using extensions app``` + - to remove + ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` From 1d16f23ed19feac509a17ace4789e71138a6bcdc Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 11:09:50 +0530 Subject: [PATCH 022/344] Update metadata.json --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index 8586ff6..d03ad5e 100644 --- a/metadata.json +++ b/metadata.json @@ -1,7 +1,7 @@ { "_generated": "Generated by SweetTooth, do not edit", "description": "Simply showing network speed. Left click to change modes:\n\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up & down speed in bits per second\n4. Up & down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter)\n\nMiddle click to change font size", - "name": "Simple net speed", + "name": "Net speed Simplified", "shell-version": [ "3.14", "3.15", From 5c73b55d86f1edb1ea86ae739a9c28b0e3944018 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 11:11:09 +0530 Subject: [PATCH 023/344] Update stylesheet.css --- stylesheet.css | 75 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 60 insertions(+), 15 deletions(-) diff --git a/stylesheet.css b/stylesheet.css index ee11bf8..a3bc003 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -1,34 +1,80 @@ -.simplenetspeed-label, .simplenetspeed-label-1, .simplenetspeed-label-2, .simplenetspeed-label-3, .simplenetspeed-label-4, .simplenetspeed-label-w, .simplenetspeed-label-w-1, .simplenetspeed-label-w-2, .simplenetspeed-label-w-3, .simplenetspeed-label-w-4{ +.simplenetspeed-label { + width: 7em; text-align: right; margin-left: 1px; + margin-right: 2px; + font-size: 1em; } -.simplenetspeed-label, .simplenetspeed-label-1, .simplenetspeed-label-2, .simplenetspeed-label-3, .simplenetspeed-label-4 { - width: 7em; - margin-right: 2px;} - -.simplenetspeed-label-w, .simplenetspeed-label-w-1, .simplenetspeed-label-w-2, .simplenetspeed-label-w-3, .simplenetspeed-label-w-4 { +.simplenetspeed-label-w { width: 11em; - margin-right: 1px;} - - -.simplenetspeed-label, .simplenetspeed-label-w { + text-align: right; + margin-left: 1px; + margin-right: 1px; font-size: 1em; } -.simplenetspeed-label-1, .simplenetspeed-label-w-1 { +.simplenetspeed-label-1 { + width: 7em; + text-align: right; + margin-left: 1px; + margin-right: 2px; + font-size: .65em; +} + +.simplenetspeed-label-w-1 { + width: 11em; + text-align: right; + margin-left: 1px; + margin-right: 1px; font-size: .65em; } -.simplenetspeed-label-2, .simplenetspeed-label-w-2 { +.simplenetspeed-label-2 { + width: 7em; + text-align: right; + margin-left: 1px; + margin-right: 2px; + font-size: .7em; +} + +.simplenetspeed-label-w-2 { + width: 11em; + text-align: right; + margin-left: 1px; + margin-right: 1px; font-size: .7em; } -.simplenetspeed-label-3, .simplenetspeed-label-w-3 { +.simplenetspeed-label-3 { + width: 7em; + text-align: right; + margin-left: 1px; + margin-right: 2px; + font-size: .9em; +} + +.simplenetspeed-label-w-3 { + width: 11em; + text-align: right; + margin-left: 1px; + margin-right: 1px; font-size: .9em; } -.simplenetspeed-label-4, .simplenetspeed-label-w-4 { +.simplenetspeed-label-4 { + width: 7em; + text-align: right; + margin-left: 1px; + margin-right: 2px; + font-size: 1.1em; +} + +.simplenetspeed-label-w-4 { + width: 11em; + text-align: right; + margin-left: 1px; + margin-right: 1px; font-size: 1.1em; } @@ -37,7 +83,6 @@ width: 15px; text-align: left; } - .simplenetspeed-icon { font-size: 12px; width: 14px; From d376c4798808a95ac7ae6000b28a0b401be3160e Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 11:16:48 +0530 Subject: [PATCH 024/344] Add files via upload --- schemas/gschemas.compiled | Bin 392 -> 403 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index e11bdb7e7d4247cbf68e5eec44f1732dbb539577..1c2dfcc33762c2fcd03c9611746cbf05db5b59a9 100644 GIT binary patch delta 219 zcmeBRp3FQ!Bc4^1f#E+8L@ijvg4;>`TKV!gc7lH!8Y)Rf}P+=86Uw9JY1s-YlltPEug0zldc z#D-c4VuP%70n$D|d~j_UJ4gt`<^ZaX0Mf-k?6qrF4M-fsW&w&<0O`pSe`*V$TQ=E% KQD(9Sqcs3fsy0Ue delta 189 zcmbQt+`&9SL(lb2`f^4F28IYA)@1NtXaUlHfS6U3f#E+8G=n4=d>C4QbO+Z%1n-7G-m}F$^Zb7n<_W} From 35b2e15169882f8055766be35d828b96c8061c93 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 11:18:33 +0530 Subject: [PATCH 025/344] Updated stylesheet.css --- stylesheet.css | 76 +++++++++++--------------------------------------- 1 file changed, 16 insertions(+), 60 deletions(-) diff --git a/stylesheet.css b/stylesheet.css index a3bc003..eb1f45f 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -1,80 +1,34 @@ -.simplenetspeed-label { - width: 7em; +.simplenetspeed-label, .simplenetspeed-label-1, .simplenetspeed-label-2, .simplenetspeed-label-3, .simplenetspeed-label-4, .simplenetspeed-label-w, .simplenetspeed-label-w-1, .simplenetspeed-label-w-2, .simplenetspeed-label-w-3, .simplenetspeed-label-w-4{ text-align: right; margin-left: 1px; - margin-right: 2px; - font-size: 1em; } -.simplenetspeed-label-w { +.simplenetspeed-label, .simplenetspeed-label-1, .simplenetspeed-label-2, .simplenetspeed-label-3, .simplenetspeed-label-4 { + width: 7em; + margin-right: 2px;} + +.simplenetspeed-label-w, .simplenetspeed-label-w-1, .simplenetspeed-label-w-2, .simplenetspeed-label-w-3, .simplenetspeed-label-w-4 { width: 11em; - text-align: right; - margin-left: 1px; - margin-right: 1px; - font-size: 1em; -} + margin-right: 1px;} -.simplenetspeed-label-1 { - width: 7em; - text-align: right; - margin-left: 1px; - margin-right: 2px; - font-size: .65em; + +.simplenetspeed-label, .simplenetspeed-label-w { + font-size: 1em; } -.simplenetspeed-label-w-1 { - width: 11em; - text-align: right; - margin-left: 1px; - margin-right: 1px; +.simplenetspeed-label-1, .simplenetspeed-label-w-1 { font-size: .65em; } -.simplenetspeed-label-2 { - width: 7em; - text-align: right; - margin-left: 1px; - margin-right: 2px; +.simplenetspeed-label-2, .simplenetspeed-label-w-2 { font-size: .7em; } -.simplenetspeed-label-w-2 { - width: 11em; - text-align: right; - margin-left: 1px; - margin-right: 1px; - font-size: .7em; -} - -.simplenetspeed-label-3 { - width: 7em; - text-align: right; - margin-left: 1px; - margin-right: 2px; - font-size: .9em; -} - -.simplenetspeed-label-w-3 { - width: 11em; - text-align: right; - margin-left: 1px; - margin-right: 1px; +.simplenetspeed-label-3, .simplenetspeed-label-w-3 { font-size: .9em; } -.simplenetspeed-label-4 { - width: 7em; - text-align: right; - margin-left: 1px; - margin-right: 2px; - font-size: 1.1em; -} - -.simplenetspeed-label-w-4 { - width: 11em; - text-align: right; - margin-left: 1px; - margin-right: 1px; +.simplenetspeed-label-4, .simplenetspeed-label-w-4 { font-size: 1.1em; } @@ -83,9 +37,11 @@ width: 15px; text-align: left; } + .simplenetspeed-icon { font-size: 12px; width: 14px; text-align: center; color: lime; }*/ + From b1bbf0300e80124acc7949da3c286c436f605579 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 11:40:18 +0530 Subject: [PATCH 026/344] Update extension.js --- extension.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extension.js b/extension.js index 7e96edc..05b606e 100644 --- a/extension.js +++ b/extension.js @@ -222,7 +222,7 @@ function speedToString(amount) { } function enable() { - Main.panel._rightBox.insert_child_at_index(button, 0); + Main.panel._rightBox.insert_child_at_index(button, 100); timeout = Mainloop.timeout_add_seconds(refreshTime, parseStat); } From dc24defc0b4dfb575c4ebe76f804d10a3ae509aa Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 11:42:02 +0530 Subject: [PATCH 027/344] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 99c32ff..70f4551 100644 --- a/README.md +++ b/README.md @@ -24,5 +24,7 @@ Simply showing network speed. Left click to change modes: ```You Can enable maually using extensions app``` - to disable ```You Can disable maually using extensions app``` + - to reinstall + ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension && git clone https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - to remove ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` From b43950497e1f1a85389bbfa26051a9812acfdb53 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 11:46:23 +0530 Subject: [PATCH 028/344] Update extension.js --- extension.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extension.js b/extension.js index 05b606e..97e74a3 100644 --- a/extension.js +++ b/extension.js @@ -222,7 +222,7 @@ function speedToString(amount) { } function enable() { - Main.panel._rightBox.insert_child_at_index(button, 100); + Main.panel._rightBox.insert_child_at_index(button, -100); timeout = Mainloop.timeout_add_seconds(refreshTime, parseStat); } From 3093edd4fac7d81b2070b0188d7f3d9ca5c134f2 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 11:52:44 +0530 Subject: [PATCH 029/344] Update extension.js --- extension.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extension.js b/extension.js index 97e74a3..182c6d8 100644 --- a/extension.js +++ b/extension.js @@ -222,7 +222,7 @@ function speedToString(amount) { } function enable() { - Main.panel._rightBox.insert_child_at_index(button, -100); + Main.panel._rightBox.insert_child_at_index(button, -1); timeout = Mainloop.timeout_add_seconds(refreshTime, parseStat); } From 35d4e41469e702fcb59acc630448eb4ab7eff077 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 12:16:10 +0530 Subject: [PATCH 030/344] Update extension.js --- extension.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/extension.js b/extension.js index 182c6d8..ce77867 100644 --- a/extension.js +++ b/extension.js @@ -222,11 +222,14 @@ function speedToString(amount) { } function enable() { - Main.panel._rightBox.insert_child_at_index(button, -1); + //Main.panel._rightBox.insert_child_at_index(button, -1); + + Main.panel.addToStatusArea('netspeedsimplified', button, 0); timeout = Mainloop.timeout_add_seconds(refreshTime, parseStat); } function disable() { Mainloop.source_remove(timeout); - Main.panel._rightBox.remove_child(button); + //Main.panel._rightBox.remove_child(button); + button.destroy(); } From 45767af171c94ac4d3e0f24e5171cb0a74445575 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 12:19:22 +0530 Subject: [PATCH 031/344] Update extension.js --- extension.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/extension.js b/extension.js index ce77867..6ce1839 100644 --- a/extension.js +++ b/extension.js @@ -222,14 +222,13 @@ function speedToString(amount) { } function enable() { - //Main.panel._rightBox.insert_child_at_index(button, -1); - - Main.panel.addToStatusArea('netspeedsimplified', button, 0); + Main.panel._centerBox.insert_child_at_index(button, -1); + //Main.panel.addToStatusArea('netspeedsimplified', button, 0); timeout = Mainloop.timeout_add_seconds(refreshTime, parseStat); } function disable() { Mainloop.source_remove(timeout); - //Main.panel._rightBox.remove_child(button); - button.destroy(); + Main.panel._centerBox.remove_child(button); + //button.destroy(); } From 8b19736c2ec5ca17caf8bc4f90d5605b428f0c84 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 12:55:05 +0530 Subject: [PATCH 032/344] Update extension.js --- extension.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extension.js b/extension.js index 6ce1839..3defbb2 100644 --- a/extension.js +++ b/extension.js @@ -222,13 +222,13 @@ function speedToString(amount) { } function enable() { - Main.panel._centerBox.insert_child_at_index(button, -1); + Main.panel._rightBox.insert_child_at_index(button, 0); //Main.panel.addToStatusArea('netspeedsimplified', button, 0); timeout = Mainloop.timeout_add_seconds(refreshTime, parseStat); } function disable() { Mainloop.source_remove(timeout); - Main.panel._centerBox.remove_child(button); + Main.panel._rightBox.remove_child(button); //button.destroy(); } From 8c0bfba61c10e14ece320048efec0928790a18d2 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 14:24:00 +0530 Subject: [PATCH 033/344] ADDED SOME COMMENTS --- stylesheet.css | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/stylesheet.css b/stylesheet.css index eb1f45f..89b2718 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -1,12 +1,15 @@ +// For all elements .simplenetspeed-label, .simplenetspeed-label-1, .simplenetspeed-label-2, .simplenetspeed-label-3, .simplenetspeed-label-4, .simplenetspeed-label-w, .simplenetspeed-label-w-1, .simplenetspeed-label-w-2, .simplenetspeed-label-w-3, .simplenetspeed-label-w-4{ text-align: right; margin-left: 1px; } +//For elements without w .simplenetspeed-label, .simplenetspeed-label-1, .simplenetspeed-label-2, .simplenetspeed-label-3, .simplenetspeed-label-4 { width: 7em; margin-right: 2px;} - + +//For elements without w .simplenetspeed-label-w, .simplenetspeed-label-w-1, .simplenetspeed-label-w-2, .simplenetspeed-label-w-3, .simplenetspeed-label-w-4 { width: 11em; margin-right: 1px;} From 44352147dfb3ffa08e9cbd1ba488110447b7adde Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 16:07:13 +0530 Subject: [PATCH 034/344] Fix comments --- stylesheet.css | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stylesheet.css b/stylesheet.css index 89b2718..13f86eb 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -1,15 +1,15 @@ -// For all elements +/* For all elements */ .simplenetspeed-label, .simplenetspeed-label-1, .simplenetspeed-label-2, .simplenetspeed-label-3, .simplenetspeed-label-4, .simplenetspeed-label-w, .simplenetspeed-label-w-1, .simplenetspeed-label-w-2, .simplenetspeed-label-w-3, .simplenetspeed-label-w-4{ text-align: right; margin-left: 1px; } -//For elements without w +/* For elements without w */ .simplenetspeed-label, .simplenetspeed-label-1, .simplenetspeed-label-2, .simplenetspeed-label-3, .simplenetspeed-label-4 { width: 7em; margin-right: 2px;} -//For elements without w +/* For elements without w */ .simplenetspeed-label-w, .simplenetspeed-label-w-1, .simplenetspeed-label-w-2, .simplenetspeed-label-w-3, .simplenetspeed-label-w-4 { width: 11em; margin-right: 1px;} From f46f256d21057e88852dc64c0b2386e30b50eb6e Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 16:12:00 +0530 Subject: [PATCH 035/344] Fix typo --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 70f4551..bffdabe 100644 --- a/README.md +++ b/README.md @@ -21,10 +21,12 @@ Simply showing network speed. Left click to change modes: - to load extension Press ```Alt+F2``` then type ```r``` and ```hit enter```. - to enable - ```You Can enable maually using extensions app``` + ```Enable manually using extensions app``` - to disable - ```You Can disable maually using extensions app``` + ```Disable manually using extensions app``` - to reinstall ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension && git clone https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - to remove - ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` + ```Remove manually using extensions app``` + or + ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` From 8956098a08db3e3c6bfaa7483b5aac9a147384bd Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 16:12:15 +0530 Subject: [PATCH 036/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bffdabe..76e5f8a 100644 --- a/README.md +++ b/README.md @@ -28,5 +28,5 @@ Simply showing network speed. Left click to change modes: ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension && git clone https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - to remove ```Remove manually using extensions app``` - or + or ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` From ea57f22cc80bdc5c8d223468b7881eb74556066b Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 16:13:11 +0530 Subject: [PATCH 037/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 76e5f8a..74e1785 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ Simply showing network speed. Left click to change modes: ```Enable manually using extensions app``` - to disable ```Disable manually using extensions app``` - - to reinstall + - to reinstall or update this extension ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension && git clone https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - to remove ```Remove manually using extensions app``` From bf7226610bd3456bd4d0751719682b0a578eda5c Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 16:37:44 +0530 Subject: [PATCH 038/344] Update extension.js --- extension.js | 41 +---------------------------------------- 1 file changed, 1 insertion(+), 40 deletions(-) diff --git a/extension.js b/extension.js index 3defbb2..08d0b0a 100644 --- a/extension.js +++ b/extension.js @@ -38,25 +38,12 @@ function init() { track_hover: true }); - /* - icon = new St.Icon({ - gicon: Gio.icon_new_for_string(Me.path + "/icons/harddisk.svg") - }); - iconDark = new St.Icon({ - gicon: Gio.icon_new_for_string(Me.path + "/icons/harddisk-dark.svg") - });*/ - ioSpeed = new St.Label({ text: '---', y_align: Clutter.ActorAlign.CENTER, style_class: 'simplenetspeed-label' }); - // ioSpeedStaticIcon = new St.Label({ - // text: '💾', - // style_class: 'simplenetspeed-static-icon' - // }); - button.set_child(chooseLabel()); button.connect('button-press-event', changeMode); } @@ -138,11 +125,6 @@ function parseStat() { let speed = (count - lastCount) / refreshTime; let speedUp = (countUp - lastCountUp) / refreshTime; - // TEST - // lastSpeed = 199899999; - // speed= 1998999999; - // speedUp= 99899999; - let dot = ""; if (speed > lastSpeed) { dot = "⇅"; @@ -168,23 +150,6 @@ function parseStat() { } catch (e) { ioSpeed.set_text(e.message); } - - /* - let curDiskstats = GLib.file_get_contents('/proc/diskstats'); - - if (diskstats == curDiskstats) { - if (cur !== 0) { - button.set_child(iconDark); - cur = 0; - } - } else { - if (cur != 1) { - button.set_child(icon); - cur = 1; - } - diskstats = curDiskstats; - }*/ - return true; } @@ -214,21 +179,17 @@ function speedToString(amount) { if (amount >= 100) // 100MB 100KB 200KB digits = 0; - else if (amount >= 10) // 10MB 10.2 + else // <100MB 1.2MB digits = 1; - else - digits = 2; return String(amount.toFixed(digits)) + speed_map[unit]; } function enable() { Main.panel._rightBox.insert_child_at_index(button, 0); - //Main.panel.addToStatusArea('netspeedsimplified', button, 0); timeout = Mainloop.timeout_add_seconds(refreshTime, parseStat); } function disable() { Mainloop.source_remove(timeout); Main.panel._rightBox.remove_child(button); - //button.destroy(); } From 022cb48acbdd60b0ba9d26cb6cefaf94d60bfd58 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 16:45:09 +0530 Subject: [PATCH 039/344] Test 1 --- stylesheet.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stylesheet.css b/stylesheet.css index 13f86eb..851e98f 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -6,12 +6,12 @@ /* For elements without w */ .simplenetspeed-label, .simplenetspeed-label-1, .simplenetspeed-label-2, .simplenetspeed-label-3, .simplenetspeed-label-4 { - width: 7em; + /*width: 7em; */ margin-right: 2px;} /* For elements without w */ .simplenetspeed-label-w, .simplenetspeed-label-w-1, .simplenetspeed-label-w-2, .simplenetspeed-label-w-3, .simplenetspeed-label-w-4 { - width: 11em; + /* width: 11em; */ margin-right: 1px;} From b585270ae71dec84f37e9a6a46813bb844cdde63 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 16:47:36 +0530 Subject: [PATCH 040/344] Update stylesheet.css --- stylesheet.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stylesheet.css b/stylesheet.css index 851e98f..68640dd 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -6,12 +6,12 @@ /* For elements without w */ .simplenetspeed-label, .simplenetspeed-label-1, .simplenetspeed-label-2, .simplenetspeed-label-3, .simplenetspeed-label-4 { - /*width: 7em; */ + width: 3em; margin-right: 2px;} /* For elements without w */ .simplenetspeed-label-w, .simplenetspeed-label-w-1, .simplenetspeed-label-w-2, .simplenetspeed-label-w-3, .simplenetspeed-label-w-4 { - /* width: 11em; */ + width: 6em; margin-right: 1px;} From ece54db701805af10685f393ac2e72e1f9663499 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 16:48:44 +0530 Subject: [PATCH 041/344] Update stylesheet.css --- stylesheet.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stylesheet.css b/stylesheet.css index 68640dd..22cecf1 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -1,12 +1,12 @@ /* For all elements */ .simplenetspeed-label, .simplenetspeed-label-1, .simplenetspeed-label-2, .simplenetspeed-label-3, .simplenetspeed-label-4, .simplenetspeed-label-w, .simplenetspeed-label-w-1, .simplenetspeed-label-w-2, .simplenetspeed-label-w-3, .simplenetspeed-label-w-4{ - text-align: right; + text-align: center; margin-left: 1px; } /* For elements without w */ .simplenetspeed-label, .simplenetspeed-label-1, .simplenetspeed-label-2, .simplenetspeed-label-3, .simplenetspeed-label-4 { - width: 3em; + width: 5em; margin-right: 2px;} /* For elements without w */ From 5f76099379e91a2739de556e56fc14e144e29a06 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 17:03:56 +0530 Subject: [PATCH 042/344] Width Adjustment --- stylesheet.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stylesheet.css b/stylesheet.css index 22cecf1..bd8f95f 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -6,12 +6,12 @@ /* For elements without w */ .simplenetspeed-label, .simplenetspeed-label-1, .simplenetspeed-label-2, .simplenetspeed-label-3, .simplenetspeed-label-4 { - width: 5em; + width: 4.5em; margin-right: 2px;} /* For elements without w */ .simplenetspeed-label-w, .simplenetspeed-label-w-1, .simplenetspeed-label-w-2, .simplenetspeed-label-w-3, .simplenetspeed-label-w-4 { - width: 6em; + width: 69em; margin-right: 1px;} From 4a1392cb1e61f7ee1ddad8920061877ae2351539 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 17:04:57 +0530 Subject: [PATCH 043/344] Its 9 not 69 --- stylesheet.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stylesheet.css b/stylesheet.css index bd8f95f..b597f3f 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -11,7 +11,7 @@ /* For elements without w */ .simplenetspeed-label-w, .simplenetspeed-label-w-1, .simplenetspeed-label-w-2, .simplenetspeed-label-w-3, .simplenetspeed-label-w-4 { - width: 69em; + width: 9em; margin-right: 1px;} From 47b92c4a90decaf928484d8b608a0ec4f8ccf8d2 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 17:06:10 +0530 Subject: [PATCH 044/344] Update stylesheet.css --- stylesheet.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stylesheet.css b/stylesheet.css index b597f3f..f0bae93 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -6,12 +6,12 @@ /* For elements without w */ .simplenetspeed-label, .simplenetspeed-label-1, .simplenetspeed-label-2, .simplenetspeed-label-3, .simplenetspeed-label-4 { - width: 4.5em; + width: 4.6em; margin-right: 2px;} /* For elements without w */ .simplenetspeed-label-w, .simplenetspeed-label-w-1, .simplenetspeed-label-w-2, .simplenetspeed-label-w-3, .simplenetspeed-label-w-4 { - width: 9em; + width: 9.3em; margin-right: 1px;} From edfa14b234c06abe3ed5588a22e3bf5fef4483c8 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 17:07:25 +0530 Subject: [PATCH 045/344] Update stylesheet.css --- stylesheet.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stylesheet.css b/stylesheet.css index f0bae93..24ed32c 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -11,7 +11,7 @@ /* For elements without w */ .simplenetspeed-label-w, .simplenetspeed-label-w-1, .simplenetspeed-label-w-2, .simplenetspeed-label-w-3, .simplenetspeed-label-w-4 { - width: 9.3em; + width: 9.6em; margin-right: 1px;} From 7a60fcb16b880032689b571dc059d5920dc5c75c Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 17:08:30 +0530 Subject: [PATCH 046/344] Update stylesheet.css --- stylesheet.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stylesheet.css b/stylesheet.css index 24ed32c..2a90ef3 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -11,7 +11,7 @@ /* For elements without w */ .simplenetspeed-label-w, .simplenetspeed-label-w-1, .simplenetspeed-label-w-2, .simplenetspeed-label-w-3, .simplenetspeed-label-w-4 { - width: 9.6em; + width: 9.9em; margin-right: 1px;} From a09f66f7f382107f9f65ebdd5ef7b710773a8ed1 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 17:13:42 +0530 Subject: [PATCH 047/344] Update extension.js --- extension.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extension.js b/extension.js index 08d0b0a..3ea3534 100644 --- a/extension.js +++ b/extension.js @@ -157,7 +157,7 @@ function speedToString(amount) { let digits; let speed_map; if (mode == 0 || mode == 2) { - speed_map = ["bps", "Kbps", "Mbps", "Gbps"]; + speed_map = ["b/s", "kb/s", "mb/s", "gb/s"]; } else if (mode == 1 || mode == 3) { speed_map = ["B/s", "K/s", "M/s", "G/s"]; From 51bc6c787e32d389fdd1c9a8f19744d3b79a4a60 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 17:16:21 +0530 Subject: [PATCH 048/344] Update stylesheet.css --- stylesheet.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stylesheet.css b/stylesheet.css index 2a90ef3..c2c6de5 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -11,7 +11,7 @@ /* For elements without w */ .simplenetspeed-label-w, .simplenetspeed-label-w-1, .simplenetspeed-label-w-2, .simplenetspeed-label-w-3, .simplenetspeed-label-w-4 { - width: 9.9em; + width: 10.1em; margin-right: 1px;} From 72658c8950eef040bd97382344d3dad944e3f246 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 17:24:59 +0530 Subject: [PATCH 049/344] Testing Some values --- stylesheet.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stylesheet.css b/stylesheet.css index c2c6de5..3228f79 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -6,12 +6,12 @@ /* For elements without w */ .simplenetspeed-label, .simplenetspeed-label-1, .simplenetspeed-label-2, .simplenetspeed-label-3, .simplenetspeed-label-4 { - width: 4.6em; + min-width: 4.4em; margin-right: 2px;} /* For elements without w */ .simplenetspeed-label-w, .simplenetspeed-label-w-1, .simplenetspeed-label-w-2, .simplenetspeed-label-w-3, .simplenetspeed-label-w-4 { - width: 10.1em; + min-width: 9.8em; margin-right: 1px;} From bec44639e5be79de0fff941aebdb8825350a9a7f Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 11 Oct 2020 17:29:04 +0530 Subject: [PATCH 050/344] Everthing working --- stylesheet.css | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/stylesheet.css b/stylesheet.css index 3228f79..0701297 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -11,7 +11,7 @@ /* For elements without w */ .simplenetspeed-label-w, .simplenetspeed-label-w-1, .simplenetspeed-label-w-2, .simplenetspeed-label-w-3, .simplenetspeed-label-w-4 { - min-width: 9.8em; + min-width: 9.6em; margin-right: 1px;} @@ -34,17 +34,3 @@ .simplenetspeed-label-4, .simplenetspeed-label-w-4 { font-size: 1.1em; } - -/*.simplenetspeed-static-icon { - font-size: 14px; - width: 15px; - text-align: left; -} - -.simplenetspeed-icon { - font-size: 12px; - width: 14px; - text-align: center; - color: lime; -}*/ - From 498bb35668be572dc9f90d2f37807b687d974b18 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 05:47:10 +0530 Subject: [PATCH 051/344] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 74e1785..933e310 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,9 @@ Gnome extension to show network speed Forked from : https://github.com/biji/simplenetspeed -Added : Refresh time is 1 second, supports GNOME SHELL 3.38 +Added : Refresh time is 1 second, supports GNOME SHELL 3.38, centred and more cleaner ui, added kbp/s instead of Kbps and more. + +Todo : hover to show total data used and double right click to reset total data counter instead of single right click Simply showing network speed. Left click to change modes: From 2a0fe679836c8dd97bc0e63548371fc3b1e95cd3 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 06:05:55 +0530 Subject: [PATCH 052/344] Add space b/w units --- extension.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extension.js b/extension.js index 3ea3534..f618678 100644 --- a/extension.js +++ b/extension.js @@ -167,7 +167,7 @@ function speedToString(amount) { } if (amount === 0) - return "0" + speed_map[0]; + return "0 " + speed_map[0]; if (mode==0 || mode==2) amount = amount * 8; @@ -181,7 +181,7 @@ function speedToString(amount) { digits = 0; else // <100MB 1.2MB digits = 1; - return String(amount.toFixed(digits)) + speed_map[unit]; + return String(amount.toFixed(digits)) + " " + speed_map[unit]; } function enable() { From 31fca09c2eec70bb58d886640873dd0892c55c19 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 06:11:28 +0530 Subject: [PATCH 053/344] Test new sigma sign --- extension.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extension.js b/extension.js index f618678..06d66d0 100644 --- a/extension.js +++ b/extension.js @@ -141,7 +141,7 @@ function parseStat() { resetNextCount = false; resetCount = count; } - ioSpeed.set_text("∑ " + speedToString(count - resetCount)); + ioSpeed.set_text("Σ " + speedToString(count - resetCount)); } lastCount = count; From 6fddd9d14dc1d0f0b537fc92e371ecf92a55e0d7 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 06:13:30 +0530 Subject: [PATCH 054/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 933e310..8b40de7 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ Gnome extension to show network speed Forked from : https://github.com/biji/simplenetspeed -Added : Refresh time is 1 second, supports GNOME SHELL 3.38, centred and more cleaner ui, added kbp/s instead of Kbps and more. +Added : Refresh time is 1 second, supports GNOME SHELL 3.38, centred and more cleaner ui, added kbp/s instead of Kbps, New sigma sign that respects vertical alignment and more. Todo : hover to show total data used and double right click to reset total data counter instead of single right click From 453f4f56945ba2062ee7401850ace9c4991a10c3 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 06:18:03 +0530 Subject: [PATCH 055/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8b40de7..34f8183 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ Gnome extension to show network speed Forked from : https://github.com/biji/simplenetspeed -Added : Refresh time is 1 second, supports GNOME SHELL 3.38, centred and more cleaner ui, added kbp/s instead of Kbps, New sigma sign that respects vertical alignment and more. +Added : Refresh time is 1 second, supports GNOME SHELL 3.38, centred and more cleaner ui, added kbp/s instead of Kbps, New sigma sign that respects vertical alignment, added space b/w speed and the units and more. Todo : hover to show total data used and double right click to reset total data counter instead of single right click From 43e504ae1c4775069e7b298e49aea6231ffe879b Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 06:21:01 +0530 Subject: [PATCH 056/344] Improve Code --- extension.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extension.js b/extension.js index 06d66d0..6788e26 100644 --- a/extension.js +++ b/extension.js @@ -177,9 +177,9 @@ function speedToString(amount) { ++unit; } - if (amount >= 100) // 100MB 100KB 200KB + if (Number.isInteger(amount.toFixed(1))) // 100.0 => 100 digits = 0; - else // <100MB 1.2MB + else // 100.9 => 100.9 digits = 1; return String(amount.toFixed(digits)) + " " + speed_map[unit]; } From 26aaf566b852325367d4b1e128a23ef459c1bbfc Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 06:27:59 +0530 Subject: [PATCH 057/344] Update extension.js --- extension.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extension.js b/extension.js index 6788e26..3987767 100644 --- a/extension.js +++ b/extension.js @@ -177,7 +177,7 @@ function speedToString(amount) { ++unit; } - if (Number.isInteger(amount.toFixed(1))) // 100.0 => 100 + if (Number.isInteger(parseFloat(amount.toFixed(1)))) // 100.0 => 100 digits = 0; else // 100.9 => 100.9 digits = 1; From a36ed99add35b89641a1d08eb95d04706a470f7a Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 07:12:12 +0530 Subject: [PATCH 058/344] Update Format --- stylesheet.css | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/stylesheet.css b/stylesheet.css index 0701297..6a3eb2e 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -1,20 +1,17 @@ /* For all elements */ .simplenetspeed-label, .simplenetspeed-label-1, .simplenetspeed-label-2, .simplenetspeed-label-3, .simplenetspeed-label-4, .simplenetspeed-label-w, .simplenetspeed-label-w-1, .simplenetspeed-label-w-2, .simplenetspeed-label-w-3, .simplenetspeed-label-w-4{ text-align: center; - margin-left: 1px; -} - -/* For elements without w */ -.simplenetspeed-label, .simplenetspeed-label-1, .simplenetspeed-label-2, .simplenetspeed-label-3, .simplenetspeed-label-4 { + margin: 0px 1px; min-width: 4.4em; - margin-right: 2px;} +} -/* For elements without w */ +/* For elements with seperate upload and download speed */ .simplenetspeed-label-w, .simplenetspeed-label-w-1, .simplenetspeed-label-w-2, .simplenetspeed-label-w-3, .simplenetspeed-label-w-4 { - min-width: 9.6em; - margin-right: 1px;} - + min-width: 9.6em; + /* To override previous min-width */ +} +/* Font change on middle click*/ .simplenetspeed-label, .simplenetspeed-label-w { font-size: 1em; } From c7fc7ec045a417b137d314e46f04bebafe3aaced Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 07:43:08 +0530 Subject: [PATCH 059/344] New updated classes --- extension.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/extension.js b/extension.js index 3987767..24267e2 100644 --- a/extension.js +++ b/extension.js @@ -77,12 +77,12 @@ function changeMode(widget, event) { function chooseLabel() { if (mode == 0 || mode == 1 || mode == 4) { - styleName = 'simplenetspeed-label'; + styleName = 'sumall'; } else { // 2 , 3 - styleName = 'simplenetspeed-label-w'; + styleName = 'upanddown'; } - + styleName = 'forall ' + styleName + ' size' if (fontmode > 0) { styleName = styleName + '-' + fontmode; } From 22ec55a4fc9e71b4e2d3e5db207b5223ce539a30 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 07:45:53 +0530 Subject: [PATCH 060/344] New styles class and more human readable code Changed whole game with new classes and more human readable code and comments so that anyone could make their own changes to this extension. --- stylesheet.css | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/stylesheet.css b/stylesheet.css index 6a3eb2e..16422b5 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -1,33 +1,35 @@ /* For all elements */ -.simplenetspeed-label, .simplenetspeed-label-1, .simplenetspeed-label-2, .simplenetspeed-label-3, .simplenetspeed-label-4, .simplenetspeed-label-w, .simplenetspeed-label-w-1, .simplenetspeed-label-w-2, .simplenetspeed-label-w-3, .simplenetspeed-label-w-4{ +.forall{ text-align: center; - margin: 0px 1px; + margin: 0px 2px; min-width: 4.4em; } /* For elements with seperate upload and download speed */ -.simplenetspeed-label-w, .simplenetspeed-label-w-1, .simplenetspeed-label-w-2, .simplenetspeed-label-w-3, .simplenetspeed-label-w-4 { - min-width: 9.6em; +.upanddown { + min-width: 9.6em; /* To override previous min-width */ } +.sumall{/* Will contain styling for sum of speeds */} + /* Font change on middle click*/ -.simplenetspeed-label, .simplenetspeed-label-w { +.size { font-size: 1em; } -.simplenetspeed-label-1, .simplenetspeed-label-w-1 { +.size-1 { font-size: .65em; } -.simplenetspeed-label-2, .simplenetspeed-label-w-2 { +.size-2 { font-size: .7em; } -.simplenetspeed-label-3, .simplenetspeed-label-w-3 { +.size-3 { font-size: .9em; } -.simplenetspeed-label-4, .simplenetspeed-label-w-4 { +.size-4 { font-size: 1.1em; } From 920d1ec057be6d73240546826cfa6a0eb8a525d9 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 07:53:55 +0530 Subject: [PATCH 061/344] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 34f8183..cf2af46 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # Net speed Simplified Gnome extension to show network speed -Forked from : https://github.com/biji/simplenetspeed +Forked from : [Simple Net speed](https://github.com/biji/simplenetspeed) -Added : Refresh time is 1 second, supports GNOME SHELL 3.38, centred and more cleaner ui, added kbp/s instead of Kbps, New sigma sign that respects vertical alignment, added space b/w speed and the units and more. +Added : Refresh time is 1 second, supports GNOME SHELL 3.38, centred and more cleaner ui, added kbp/s instead of Kbps, New sigma sign that respects vertical alignment, added space b/w speed and the units, Human readable stylesheet so that anyone with basic knowledge of css can modify it easily following [KISS](https://en.wikipedia.org/wiki/KISS_principle) principle and [DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself) principle Todo : hover to show total data used and double right click to reset total data counter instead of single right click From a6f666920e3510aabb2a88d7225a547d80c41b79 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 08:05:13 +0530 Subject: [PATCH 062/344] New Readme Style --- README.md | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index cf2af46..9847a2f 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,20 @@ # Net speed Simplified -Gnome extension to show network speed +*Gnome extension to show network speed* -Forked from : [Simple Net speed](https://github.com/biji/simplenetspeed) +> Forked from : [Simple Net speed](https://github.com/biji/simplenetspeed) -Added : Refresh time is 1 second, supports GNOME SHELL 3.38, centred and more cleaner ui, added kbp/s instead of Kbps, New sigma sign that respects vertical alignment, added space b/w speed and the units, Human readable stylesheet so that anyone with basic knowledge of css can modify it easily following [KISS](https://en.wikipedia.org/wiki/KISS_principle) principle and [DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself) principle +Added : +- [x] Reduce Refresh time to 1 second +- [x] Supports GNOME SHELL 3.38 +- [x] Centred and more cleaner ui +- [x] Changed Kbps to kbp/s +- [x] New sigma sign that respects vertical alignment(old: ∑ , new: Σ) +- [x] Added space b/w speed and their units +- [x] Human readable stylesheet following [KISS](https://en.wikipedia.org/wiki/KISS_principle) principle and [DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself) -Todo : hover to show total data used and double right click to reset total data counter instead of single right click +Todo : +- [ ] hover to show total data used +- [ ] double right click to reset total data counter instead of single right click Simply showing network speed. Left click to change modes: @@ -17,7 +26,7 @@ Simply showing network speed. Left click to change modes: * Middle click to change font size -* If you are getting it from source: +* Installation using terminal: - to install ```git clone https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - to load extension From c9d74d108b57e9a3603a1271d99f098c2a4c03ee Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 08:10:54 +0530 Subject: [PATCH 063/344] Update README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 9847a2f..1c6d75e 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ > Forked from : [Simple Net speed](https://github.com/biji/simplenetspeed) -Added : +#### Changelog for v18 : - [x] Reduce Refresh time to 1 second - [x] Supports GNOME SHELL 3.38 - [x] Centred and more cleaner ui @@ -12,11 +12,11 @@ Added : - [x] Added space b/w speed and their units - [x] Human readable stylesheet following [KISS](https://en.wikipedia.org/wiki/KISS_principle) principle and [DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself) -Todo : +#### Todo : - [ ] hover to show total data used - [ ] double right click to reset total data counter instead of single right click -Simply showing network speed. Left click to change modes: +**Left click to change modes:** 1. Total net speed in bits per second 1. Total net speed in Bytes per second @@ -24,7 +24,7 @@ Simply showing network speed. Left click to change modes: 1. Up & down speed in Bytes per second 1. Total of downloaded in Bytes (Right click to reset counter) -* Middle click to change font size +**Middle click to change font size ** * Installation using terminal: - to install From 98916952801783665e8dac03b77f573f877c081a Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 08:11:50 +0530 Subject: [PATCH 064/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1c6d75e..c50a75e 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ 1. Up & down speed in Bytes per second 1. Total of downloaded in Bytes (Right click to reset counter) -**Middle click to change font size ** +**Middle click to change font size** * Installation using terminal: - to install From d857e5d990b50843cf8429fb84b6349fe9f82f72 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 12:12:52 +0530 Subject: [PATCH 065/344] Added right click to toggle Total data usage Right click to toggle data usage , if you have mode 4 on i.e. total sum mode then right click will reset the counter to 0; --- extension.js | 63 +++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 48 insertions(+), 15 deletions(-) diff --git a/extension.js b/extension.js index 24267e2..2ca9b23 100644 --- a/extension.js +++ b/extension.js @@ -21,6 +21,10 @@ let lastCount = 0, lastSpeed = 0, lastCountUp = 0; let mode; // 0: kbps 1: K/s 2: U:kbps D:kbps 3: U:K/s D:K/s 4: Total KB let fontmode; let resetNextCount = false, resetCount = 0; +let toggle_bool = false; +let new_addon; +let new_addobit; +let reuseable_text; function init() { @@ -50,9 +54,15 @@ function init() { function changeMode(widget, event) { // log(event.get_button()); - if (event.get_button() == 3 && mode == 4) { // right click: reset downloaded sum + if (event.get_button() == 3) { + if (mode ==4 ){// right click: reset downloaded sum resetNextCount = true; - parseStat(); + parseStat();} + else {//right click on other modes; brings total downloaded sum + toggle_bool = !toggle_bool; + ioSpeed.set_text(" Hello"); + parseStat(); + } } else if (event.get_button() == 2) { // change font fontmode++; @@ -129,21 +139,37 @@ function parseStat() { if (speed > lastSpeed) { dot = "⇅"; } - + function commonSigma(fi, se) { + if (resetNextCount == true) { + resetNextCount = false; + resetCount = count; + } + return "Σ " + speedToString(count - resetCount, fi, se); + } + if (toggle_bool){ + new_addon = " | "+commonSigma(true) + new_addobit = " | "+commonSigma(false, true) + } + else{ + new_addon = ""; + new_addobit = ""; + } if (mode >= 0 && mode <= 1) { - ioSpeed.set_text(dot + speedToString(speed)); + reuseable_text = dot + speedToString(speed); } else if (mode >= 2 && mode <= 3) { - ioSpeed.set_text("↓" + speedToString(speed - speedUp) + " ↑" + speedToString(speedUp)); + reuseable_text = "↓" + speedToString(speed - speedUp) + " ↑" + speedToString(speedUp); } else if (mode == 4) { - if (resetNextCount == true) { - resetNextCount = false; - resetCount = count; - } - ioSpeed.set_text("Σ " + speedToString(count - resetCount)); + reuseable_text = commonSigma() } - + if (mode == 0 || mode == 2) { + reuseable_text = reuseable_text + new_addobit; + } + else if (mode == 1 || mode == 3) { + reuseable_text = reuseable_text + new_addon; + } + ioSpeed.set_text(reuseable_text); lastCount = count; lastCountUp = countUp; lastSpeed = speed; @@ -153,17 +179,24 @@ function parseStat() { return true; } -function speedToString(amount) { +function speedToString(amount, rMode = false /* Default value of Right click mode for Bytes */, rMbit = false /* Same as previous but for bits */) { let digits; - let speed_map; - if (mode == 0 || mode == 2) { + let speed_map, sp1; + sp1 = ["B", "KB", "MB", "GB"]; + if (rMode) {//Right click on Bytes + speed_map = sp1; + } + else if (rMbit) {//For bits + speed_map = ["b", "kb", "mb", "gb"]; + } + else if (mode == 0 || mode == 2) { speed_map = ["b/s", "kb/s", "mb/s", "gb/s"]; } else if (mode == 1 || mode == 3) { speed_map = ["B/s", "K/s", "M/s", "G/s"]; } else if (mode == 4) { - speed_map = ["B", "KB", "MB", "GB"]; + speed_map = sp1; } if (amount === 0) From e158db4fdae5f69d35f1b1134abc5ee33a8a774f Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 12:20:48 +0530 Subject: [PATCH 066/344] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c50a75e..abe29a3 100644 --- a/README.md +++ b/README.md @@ -13,8 +13,7 @@ - [x] Human readable stylesheet following [KISS](https://en.wikipedia.org/wiki/KISS_principle) principle and [DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself) #### Todo : -- [ ] hover to show total data used -- [ ] double right click to reset total data counter instead of single right click +- [x] Right Click to show total data used **Left click to change modes:** @@ -24,6 +23,8 @@ 1. Up & down speed in Bytes per second 1. Total of downloaded in Bytes (Right click to reset counter) +**Right click to toggle total data usage, Right click on total data usage mode to reset counter** + **Middle click to change font size** * Installation using terminal: From 8e2af055aa2047e5c29122112cbbce7c681f8fcc Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 12:23:18 +0530 Subject: [PATCH 067/344] Update README.md --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index abe29a3..d6b4dc7 100644 --- a/README.md +++ b/README.md @@ -11,9 +11,12 @@ - [x] New sigma sign that respects vertical alignment(old: ∑ , new: Σ) - [x] Added space b/w speed and their units - [x] Human readable stylesheet following [KISS](https://en.wikipedia.org/wiki/KISS_principle) principle and [DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself) +- [x] Right Click to show total data used #### Todo : -- [x] Right Click to show total data used +- [ ] Add vertical alignment for Dash to panel users as a 6th mode + +if you face any issues you can open pull request and can type your issue with images or error codes **Left click to change modes:** From dc519092707ae936f634567be0f023eaa399a5c7 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 12:26:02 +0530 Subject: [PATCH 068/344] Update README.md --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d6b4dc7..fd9e5d6 100644 --- a/README.md +++ b/README.md @@ -18,17 +18,18 @@ if you face any issues you can open pull request and can type your issue with images or error codes -**Left click to change modes:** +> **Left click to change modes** +*Modes available:* 1. Total net speed in bits per second 1. Total net speed in Bytes per second 1. Up & down speed in bits per second 1. Up & down speed in Bytes per second 1. Total of downloaded in Bytes (Right click to reset counter) -**Right click to toggle total data usage, Right click on total data usage mode to reset counter** +> **Right click to toggle total data usage, Right click on total data usage mode to reset counter** -**Middle click to change font size** +> **Middle click to change font size** * Installation using terminal: - to install From 8cd690172372f811140d74de6f58e5f71b1f79ca Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 12:26:39 +0530 Subject: [PATCH 069/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fd9e5d6..9dfe927 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ if you face any issues you can open pull request and can type your issue with im 1. Up & down speed in Bytes per second 1. Total of downloaded in Bytes (Right click to reset counter) -> **Right click to toggle total data usage, Right click on total data usage mode to reset counter** +> **Right click to toggle total data usage visiblity, Right click on total data usage mode to reset counter** > **Middle click to change font size** From db4d3cd00a947273c55e282bfb8992bf8cc81a64 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 12:53:07 +0530 Subject: [PATCH 070/344] Update metadata.json --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index d03ad5e..fb19283 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,6 @@ { "_generated": "Generated by SweetTooth, do not edit", - "description": "Simply showing network speed. Left click to change modes:\n\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up & down speed in bits per second\n4. Up & down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter)\n\nMiddle click to change font size", + "description": "Left click to change modes, right click to toggle total net used visibility, middle click to change fonts. :\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up & down speed in bits per second\n4. Up & down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter)\n\nMiddle click to change font size", "name": "Net speed Simplified", "shell-version": [ "3.14", From 06a4caf2305c6c8d75e86c932336b2d73b9ee883 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 12:56:05 +0530 Subject: [PATCH 071/344] Update metadata.json --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index fb19283..26633b0 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,6 @@ { "_generated": "Generated by SweetTooth, do not edit", - "description": "Left click to change modes, right click to toggle total net used visibility, middle click to change fonts. :\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up & down speed in bits per second\n4. Up & down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter)\n\nMiddle click to change font size", + "description": "Left click to change modes, right click to toggle total net used visibility, middle click to change fonts. :\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up & down speed in bits per second\n4. Up & down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter)", "name": "Net speed Simplified", "shell-version": [ "3.14", From a0c67ba8f437bbeac0e25ace1444125652be796f Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 13:16:10 +0530 Subject: [PATCH 072/344] Update metadata.json --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index 26633b0..1c1c95f 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,6 @@ { "_generated": "Generated by SweetTooth, do not edit", - "description": "Left click to change modes, right click to toggle total net used visibility, middle click to change fonts. :\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up & down speed in bits per second\n4. Up & down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter)", + "description": "Fork of Simple Net speed: https://github.com/biji/simplenetspeed \nAdded Features and Code cleanups to this fork. \nLeft click to change modes, right click to toggle total net used visibility, middle click to change fonts.\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up & down speed in bits per second\n4. Up & down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter)", "name": "Net speed Simplified", "shell-version": [ "3.14", From 8c649c51ecd7fb940e391a99f5f58a13963206d9 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 13:57:18 +0530 Subject: [PATCH 073/344] Update extension.js --- extension.js | 41 +++++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/extension.js b/extension.js index 2ca9b23..cea58ba 100644 --- a/extension.js +++ b/extension.js @@ -61,6 +61,7 @@ function changeMode(widget, event) { else {//right click on other modes; brings total downloaded sum toggle_bool = !toggle_bool; ioSpeed.set_text(" Hello"); + button.set_child(chooseLabel()); parseStat(); } } @@ -79,20 +80,37 @@ function changeMode(widget, event) { mode = 0; } settings.set_int('mode', mode); - button.set_child(chooseLabel()); + if (mode ==4) { + button.set_child(chooseLabel(true)); + } + else{ + button.set_child(chooseLabel()); + } parseStat(); } log('mode:' + mode + ' font:' + fontmode); } -function chooseLabel() { +function chooseLabel(addArg = false) { if (mode == 0 || mode == 1 || mode == 4) { styleName = 'sumall'; } else { // 2 , 3 styleName = 'upanddown'; } - styleName = 'forall ' + styleName + ' size' + let extraw; + if (addArg){ + extraw = "" + } + else{ + if (toggle_bool){ + extraw = ' iwidth' + } + else { + extraw = "" + } + } + styleName = 'forall ' + styleName + extraw + ' size' if (fontmode > 0) { styleName = styleName + '-' + fontmode; } @@ -137,7 +155,7 @@ function parseStat() { let dot = ""; if (speed > lastSpeed) { - dot = "⇅"; + dot = "⇅ "; } function commonSigma(fi, se) { if (resetNextCount == true) { @@ -158,7 +176,7 @@ function parseStat() { reuseable_text = dot + speedToString(speed); } else if (mode >= 2 && mode <= 3) { - reuseable_text = "↓" + speedToString(speed - speedUp) + " ↑" + speedToString(speedUp); + reuseable_text = "↓ " + speedToString(speed - speedUp) + " ↑ " + speedToString(speedUp); } else if (mode == 4) { reuseable_text = commonSigma() @@ -179,14 +197,13 @@ function parseStat() { return true; } -function speedToString(amount, rMode = false /* Default value of Right click mode for Bytes */, rMbit = false /* Same as previous but for bits */) { +function speedToString(amount, rMode = false, rMbit = false) { let digits; - let speed_map, sp1; - sp1 = ["B", "KB", "MB", "GB"]; - if (rMode) {//Right click on Bytes - speed_map = sp1; + let speed_map; + if (rMode) { + speed_map = ["B", "KB", "MB", "GB"]; } - else if (rMbit) {//For bits + else if (rMbit) { speed_map = ["b", "kb", "mb", "gb"]; } else if (mode == 0 || mode == 2) { @@ -196,7 +213,7 @@ function speedToString(amount, rMode = false /* Default value of Right click mod speed_map = ["B/s", "K/s", "M/s", "G/s"]; } else if (mode == 4) { - speed_map = sp1; + speed_map = ["B", "KB", "MB", "GB"]; } if (amount === 0) From 8595659533e711d5de2168daace638841929f1ca Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 13:58:32 +0530 Subject: [PATCH 074/344] Update stylesheet.css --- stylesheet.css | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/stylesheet.css b/stylesheet.css index 16422b5..67c55de 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -1,10 +1,15 @@ /* For all elements */ .forall{ - text-align: center; + text-align: center !important; margin: 0px 2px; min-width: 4.4em; } +.iwidth{ +/*Increase width if total data usage is visible with speed*/ + min-width: 11.3em; +} + /* For elements with seperate upload and download speed */ .upanddown { min-width: 9.6em; From 06608b33c4f29ddf8f491c6ec5529a531ae75794 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 14:04:38 +0530 Subject: [PATCH 075/344] Added Screenshots for refrence --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9dfe927..fc82e18 100644 --- a/README.md +++ b/README.md @@ -21,14 +21,18 @@ if you face any issues you can open pull request and can type your issue with im > **Left click to change modes** *Modes available:* -1. Total net speed in bits per second +1. Total net speed in bits per second 1. Total net speed in Bytes per second 1. Up & down speed in bits per second 1. Up & down speed in Bytes per second 1. Total of downloaded in Bytes (Right click to reset counter) > **Right click to toggle total data usage visiblity, Right click on total data usage mode to reset counter** + ![Before](https://user-images.githubusercontent.com/41370460/95724032-78b84480-0c93-11eb-9a2f-07976cb99e19.png) +![After Right Click](https://user-images.githubusercontent.com/41370460/95724072-8968ba80-0c93-11eb-98c9-e5651167760d.png) + + > **Middle click to change font size** * Installation using terminal: From 950c0d3e85797790d2d89f804aac4efce2e798b1 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 14:05:49 +0530 Subject: [PATCH 076/344] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fc82e18..9d3d0fb 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ #### Changelog for v18 : - [x] Reduce Refresh time to 1 second - [x] Supports GNOME SHELL 3.38 +- [x] Changes width accordingly / dynamic width - [x] Centred and more cleaner ui - [x] Changed Kbps to kbp/s - [x] New sigma sign that respects vertical alignment(old: ∑ , new: Σ) From a73ff7732f483782883a4020a713c0f2e6bd6d73 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 14:06:51 +0530 Subject: [PATCH 077/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9d3d0fb..966e56f 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ if you face any issues you can open pull request and can type your issue with im 1. Total of downloaded in Bytes (Right click to reset counter) > **Right click to toggle total data usage visiblity, Right click on total data usage mode to reset counter** - ![Before](https://user-images.githubusercontent.com/41370460/95724032-78b84480-0c93-11eb-9a2f-07976cb99e19.png) + ![Before](https://user-images.githubusercontent.com/41370460/95724032-78b84480-0c93-11eb-9a2f-07976cb99e19.png) ===== ![After Right Click](https://user-images.githubusercontent.com/41370460/95724072-8968ba80-0c93-11eb-98c9-e5651167760d.png) From 80e98348f5a992ffc22c9ea661213fe805544799 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 19:58:47 +0530 Subject: [PATCH 078/344] Update README.md --- README.md | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 966e56f..34b8800 100644 --- a/README.md +++ b/README.md @@ -20,20 +20,17 @@ if you face any issues you can open pull request and can type your issue with images or error codes > **Left click to change modes** - + *Modes available:* 1. Total net speed in bits per second 1. Total net speed in Bytes per second 1. Up & down speed in bits per second 1. Up & down speed in Bytes per second 1. Total of downloaded in Bytes (Right click to reset counter) - + > **Right click to toggle total data usage visiblity, Right click on total data usage mode to reset counter** - ![Before](https://user-images.githubusercontent.com/41370460/95724032-78b84480-0c93-11eb-9a2f-07976cb99e19.png) ===== -![After Right Click](https://user-images.githubusercontent.com/41370460/95724072-8968ba80-0c93-11eb-98c9-e5651167760d.png) - - - + ### From this ![Before](https://user-images.githubusercontent.com/41370460/95724032-78b84480-0c93-11eb-9a2f-07976cb99e19.png) =====> To this ![After Right Click](https://user-images.githubusercontent.com/41370460/95724072-8968ba80-0c93-11eb-98c9-e5651167760d.png) + > **Middle click to change font size** * Installation using terminal: From 6f50dac2d89b297030bf6ce75ed06b69a1d33c46 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 12 Oct 2020 20:02:58 +0530 Subject: [PATCH 079/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 34b8800..8749a3b 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ if you face any issues you can open pull request and can type your issue with im * Installation using terminal: - to install - ```git clone https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` + ```mkdir ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension && git clone https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - to load extension Press ```Alt+F2``` then type ```r``` and ```hit enter```. - to enable From 92144aad5b0b5f9c22a8fa910da0fdf21278ce7a Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 13 Oct 2020 07:10:15 +0530 Subject: [PATCH 080/344] ADD TWO DECIMAL DIGITS FOR TOTAL DATA --- extension.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/extension.js b/extension.js index cea58ba..ebcab92 100644 --- a/extension.js +++ b/extension.js @@ -229,6 +229,8 @@ function speedToString(amount, rMode = false, rMbit = false) { if (Number.isInteger(parseFloat(amount.toFixed(1)))) // 100.0 => 100 digits = 0; + else if (mode==4 || rMode || rMbit) + digits = 2; else // 100.9 => 100.9 digits = 1; return String(amount.toFixed(digits)) + " " + speed_map[unit]; From fa8dddfedd318f9e4c7eb8ea0fc422447edbf463 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 13 Oct 2020 07:19:14 +0530 Subject: [PATCH 081/344] Update some code --- extension.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extension.js b/extension.js index ebcab92..7c48a2b 100644 --- a/extension.js +++ b/extension.js @@ -229,7 +229,7 @@ function speedToString(amount, rMode = false, rMbit = false) { if (Number.isInteger(parseFloat(amount.toFixed(1)))) // 100.0 => 100 digits = 0; - else if (mode==4 || rMode || rMbit) + else if (mode==4 || rMode || rMbit && !Number.isInteger(parseFloat((amount*10).toFixed(1)))) digits = 2; else // 100.9 => 100.9 digits = 1; From b52f0dd4000c3f2558ce503558129373aebe1534 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 13 Oct 2020 07:24:07 +0530 Subject: [PATCH 082/344] Update extension.js --- extension.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extension.js b/extension.js index 7c48a2b..060b78c 100644 --- a/extension.js +++ b/extension.js @@ -229,7 +229,7 @@ function speedToString(amount, rMode = false, rMbit = false) { if (Number.isInteger(parseFloat(amount.toFixed(1)))) // 100.0 => 100 digits = 0; - else if (mode==4 || rMode || rMbit && !Number.isInteger(parseFloat((amount*10).toFixed(1)))) + else if ((mode==4 || rMode || rMbit) && !Number.isInteger(parseFloat((amount*10).toFixed(1)))) digits = 2; else // 100.9 => 100.9 digits = 1; From 64d0e1780b9531f70681b88a6159585040b37cdc Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 13 Oct 2020 07:39:34 +0530 Subject: [PATCH 083/344] New arrows test --- extension.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extension.js b/extension.js index 060b78c..9a82385 100644 --- a/extension.js +++ b/extension.js @@ -176,7 +176,7 @@ function parseStat() { reuseable_text = dot + speedToString(speed); } else if (mode >= 2 && mode <= 3) { - reuseable_text = "↓ " + speedToString(speed - speedUp) + " ↑ " + speedToString(speedUp); + reuseable_text = "⬇ " + speedToString(speed - speedUp) + " ⬆ " + speedToString(speedUp); } else if (mode == 4) { reuseable_text = commonSigma() From 3cef5e42941e53b5e90c26769e6ee18a03c76483 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 13 Oct 2020 07:42:01 +0530 Subject: [PATCH 084/344] Update extension.js --- extension.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extension.js b/extension.js index 9a82385..2f8a92a 100644 --- a/extension.js +++ b/extension.js @@ -192,7 +192,7 @@ function parseStat() { lastCountUp = countUp; lastSpeed = speed; } catch (e) { - ioSpeed.set_text(e.message); + ioSpeed.set_text(e.message) } return true; } From 63c40e60498bdc5960333a61b4f6e4bcdaf03df8 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 13 Oct 2020 07:44:43 +0530 Subject: [PATCH 085/344] New icons test 2 --- extension.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/extension.js b/extension.js index 2f8a92a..8764e83 100644 --- a/extension.js +++ b/extension.js @@ -175,8 +175,8 @@ function parseStat() { if (mode >= 0 && mode <= 1) { reuseable_text = dot + speedToString(speed); } - else if (mode >= 2 && mode <= 3) { - reuseable_text = "⬇ " + speedToString(speed - speedUp) + " ⬆ " + speedToString(speedUp); + else if (mode >= 2 && mode <= 3) { + reuseable_text = " 🡳 " + speedToString(speed - speedUp) + " 🡱 " + speedToString(speedUp); } else if (mode == 4) { reuseable_text = commonSigma() @@ -192,7 +192,7 @@ function parseStat() { lastCountUp = countUp; lastSpeed = speed; } catch (e) { - ioSpeed.set_text(e.message) + ioSpeed.set_text(e.message); } return true; } From 71eb7fdc508bbee7d2f880d74a0e19bb607616f2 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 13 Oct 2020 07:45:59 +0530 Subject: [PATCH 086/344] Added some space b/w final icons --- extension.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extension.js b/extension.js index 8764e83..b776a92 100644 --- a/extension.js +++ b/extension.js @@ -176,7 +176,7 @@ function parseStat() { reuseable_text = dot + speedToString(speed); } else if (mode >= 2 && mode <= 3) { - reuseable_text = " 🡳 " + speedToString(speed - speedUp) + " 🡱 " + speedToString(speedUp); + reuseable_text = " 🡳 " + speedToString(speed - speedUp) + " 🡱 " + speedToString(speedUp); } else if (mode == 4) { reuseable_text = commonSigma() From f60b9bf64a876aa8bfa172b0d240ec699a280834 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 13 Oct 2020 07:51:42 +0530 Subject: [PATCH 087/344] Update README.md --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8749a3b..5b4e651 100644 --- a/README.md +++ b/README.md @@ -9,10 +9,11 @@ - [x] Changes width accordingly / dynamic width - [x] Centred and more cleaner ui - [x] Changed Kbps to kbp/s -- [x] New sigma sign that respects vertical alignment(old: ∑ , new: Σ) +- [x] New sigma icon that respects vertical alignment(old: ∑ , new: Σ) +- [x] New Speed up and down icons for mode 2 & 3. (old: ↓ and ↑ , new: 🡳 and 🡱) - [x] Added space b/w speed and their units -- [x] Human readable stylesheet following [KISS](https://en.wikipedia.org/wiki/KISS_principle) principle and [DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself) -- [x] Right Click to show total data used +- [x] Human readable stylesheet +- [x] Right Click to toggle visibility of total data used //If you will Right click on 4th mode i.e. total speed mode then total speed counter will reset to 0 MB. #### Todo : - [ ] Add vertical alignment for Dash to panel users as a 6th mode From 5d51f8744de44997cadd3fe862a7f2d742c1e812 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 13 Oct 2020 14:09:08 +0530 Subject: [PATCH 088/344] Update stylesheet.css --- stylesheet.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stylesheet.css b/stylesheet.css index 67c55de..c67a59d 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -1,7 +1,7 @@ /* For all elements */ .forall{ text-align: center !important; - margin: 0px 2px; + margin: auto 2px; min-width: 4.4em; } From dbbfcd09b119ae35a63ef420832c720888b408d1 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 13 Oct 2020 14:11:27 +0530 Subject: [PATCH 089/344] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5b4e651..cf9bde2 100644 --- a/README.md +++ b/README.md @@ -37,12 +37,12 @@ if you face any issues you can open pull request and can type your issue with im * Installation using terminal: - to install ```mkdir ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension && git clone https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - - to load extension + - to load/reload extension Press ```Alt+F2``` then type ```r``` and ```hit enter```. - to enable - ```Enable manually using extensions app``` + ```Enable manually using extensions app/ Using Gnome tweaks extension tab``` - to disable - ```Disable manually using extensions app``` + ```Disable manually using extensions app/ Using Gnome tweaks extension tab``` - to reinstall or update this extension ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension && git clone https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - to remove From e15e14b18d76b19a484d8fb081185883d3ccac8c Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 13 Oct 2020 14:13:44 +0530 Subject: [PATCH 090/344] Trying optimal refreshRate --- extension.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extension.js b/extension.js index b776a92..6ac885d 100644 --- a/extension.js +++ b/extension.js @@ -11,7 +11,7 @@ const Me = ExtensionUtils.getCurrentExtension(); const Convenience = Me.imports.convenience; const PREFS_SCHEMA = 'org.gnome.shell.extensions.netspeedsimplified'; -const refreshTime = 1.0; +const refreshTime = 1.6; let settings; let button, timeout; From 615707754250a1001e9acfcde81dc65f409aaa34 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 13 Oct 2020 14:23:13 +0530 Subject: [PATCH 091/344] Added new todo --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cf9bde2..dd8df8d 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ #### Todo : - [ ] Add vertical alignment for Dash to panel users as a 6th mode +- [ ] Middle click to show popup menu with font sizes, Change colours based on data usage, change refreshRate by your own [Impossible right now] if you face any issues you can open pull request and can type your issue with images or error codes From 3a232aefcab181fed6c1ed70310b316efe76ce65 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 13 Oct 2020 14:24:39 +0530 Subject: [PATCH 092/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dd8df8d..f5973a5 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ > Forked from : [Simple Net speed](https://github.com/biji/simplenetspeed) -#### Changelog for v18 : +#### Changelog : - [x] Reduce Refresh time to 1 second - [x] Supports GNOME SHELL 3.38 - [x] Changes width accordingly / dynamic width From a3a0349db7e5e644be19d368b25f31a658d6ccde Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 13 Oct 2020 14:26:14 +0530 Subject: [PATCH 093/344] Updated version with features --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index 1c1c95f..371e571 100644 --- a/metadata.json +++ b/metadata.json @@ -27,5 +27,5 @@ ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 18 + "version": 20 } From 6e0789957ada83c041ccb4e95dbaca11f1992343 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 13 Oct 2020 14:34:54 +0530 Subject: [PATCH 094/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f5973a5..7a6ccab 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ > Forked from : [Simple Net speed](https://github.com/biji/simplenetspeed) #### Changelog : -- [x] Reduce Refresh time to 1 second +- [x] Reduce Refresh time - [x] Supports GNOME SHELL 3.38 - [x] Changes width accordingly / dynamic width - [x] Centred and more cleaner ui From 52a60c9f6a4592f06a3ec42c82a7aea796a9a60e Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 13 Oct 2020 15:42:18 +0530 Subject: [PATCH 095/344] update description --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index 371e571..6b8287d 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,6 @@ { "_generated": "Generated by SweetTooth, do not edit", - "description": "Fork of Simple Net speed: https://github.com/biji/simplenetspeed \nAdded Features and Code cleanups to this fork. \nLeft click to change modes, right click to toggle total net used visibility, middle click to change fonts.\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up & down speed in bits per second\n4. Up & down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter)", + "description": "Fork of Simple Net speed: https://github.com/biji/simplenetspeed \nWhats New: Clean UI, Reduce refresh time, Fix repetitive code in stylesheet.css, Right Click to view total downloaded data in bits and bytes, new Sigma and Up and down Arrow, dynamic width, used kb/s instead of Kbps, added spaces where needed, and more coming\n\nLeft Click To change modes.\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up & down speed in bits per second\n4. Up & down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter\nRight Click To toggle visibility of Total Up and Down or Reset counter if you are in 5th mode.\n\nMiddle Click to change font size.)", "name": "Net speed Simplified", "shell-version": [ "3.14", From 60dbfea14e82fdab37951c65abe5002ea82f6339 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 13 Oct 2020 15:48:58 +0530 Subject: [PATCH 096/344] Update spacing --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index 6b8287d..6dd7d90 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,6 @@ { "_generated": "Generated by SweetTooth, do not edit", - "description": "Fork of Simple Net speed: https://github.com/biji/simplenetspeed \nWhats New: Clean UI, Reduce refresh time, Fix repetitive code in stylesheet.css, Right Click to view total downloaded data in bits and bytes, new Sigma and Up and down Arrow, dynamic width, used kb/s instead of Kbps, added spaces where needed, and more coming\n\nLeft Click To change modes.\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up & down speed in bits per second\n4. Up & down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter\nRight Click To toggle visibility of Total Up and Down or Reset counter if you are in 5th mode.\n\nMiddle Click to change font size.)", + "description": "Fork of Simple Net speed: https://github.com/biji/simplenetspeed \n\nWhats New: Clean UI, Reduce refresh time, Fix repetitive code in stylesheet.css, Right Click to view total downloaded data in bits and bytes, new Sigma and Up and down Arrow, dynamic width, used kb/s instead of Kbps, added spaces where needed, and more coming\n\nLeft Click To change modes.\n\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up & down speed in bits per second\n4. Up & down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter\n\nRight Click To toggle visibility of Total Up and Down or Reset counter if you are in 5th mode.\n\nMiddle Click to change font size.", "name": "Net speed Simplified", "shell-version": [ "3.14", From 5b7de067dd428aac28d37abc1723c3a1797d70d2 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 13 Oct 2020 18:54:09 +0530 Subject: [PATCH 097/344] Made code cleaner with comments --- extension.js | 48 +++++++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/extension.js b/extension.js index 6ac885d..34a0682 100644 --- a/extension.js +++ b/extension.js @@ -22,8 +22,6 @@ let mode; // 0: kbps 1: K/s 2: U:kbps D:kbps 3: U:K/s D:K/s 4: Total KB let fontmode; let resetNextCount = false, resetCount = 0; let toggle_bool = false; -let new_addon; -let new_addobit; let reuseable_text; function init() { @@ -157,21 +155,25 @@ function parseStat() { if (speed > lastSpeed) { dot = "⇅ "; } - function commonSigma(fi, se) { - if (resetNextCount == true) { - resetNextCount = false; - resetCount = count; - } - return "Σ " + speedToString(count - resetCount, fi, se); - } - if (toggle_bool){ - new_addon = " | "+commonSigma(true) - new_addobit = " | "+commonSigma(false, true) - } - else{ - new_addon = ""; - new_addobit = ""; - } + if (resetNextCount == true) { + resetNextCount = false; + resetCount = count; + } + function commonSigma(fi=0, + se=false /*This default value is for 4th mode*/, + thr = true /*If true will return a result else will return empty string*/ + ){ + if(thr){ + if(se){ //This is for Right Click event on mode!=4 + return " | Σ " + speedToString(count - resetCount, fi);} + else{ //This is for mode 4 sigma + return "Σ " + speedToString(count - resetCount, fi); + } + } + else{ + return "";} + + } if (mode >= 0 && mode <= 1) { reuseable_text = dot + speedToString(speed); } @@ -182,10 +184,10 @@ function parseStat() { reuseable_text = commonSigma() } if (mode == 0 || mode == 2) { - reuseable_text = reuseable_text + new_addobit; + reuseable_text = reuseable_text + commonSigma(2, true, toggle_bool);; } else if (mode == 1 || mode == 3) { - reuseable_text = reuseable_text + new_addon; + reuseable_text = reuseable_text + commonSigma(1, true, toggle_bool);; } ioSpeed.set_text(reuseable_text); lastCount = count; @@ -197,13 +199,13 @@ function parseStat() { return true; } -function speedToString(amount, rMode = false, rMbit = false) { +function speedToString(amount, rMode = 0) { let digits; let speed_map; - if (rMode) { + if (rMode==1) { speed_map = ["B", "KB", "MB", "GB"]; } - else if (rMbit) { + else if (rMode == 2) { speed_map = ["b", "kb", "mb", "gb"]; } else if (mode == 0 || mode == 2) { @@ -229,7 +231,7 @@ function speedToString(amount, rMode = false, rMbit = false) { if (Number.isInteger(parseFloat(amount.toFixed(1)))) // 100.0 => 100 digits = 0; - else if ((mode==4 || rMode || rMbit) && !Number.isInteger(parseFloat((amount*10).toFixed(1)))) + else if ((mode==4 || rMode !=0) && !Number.isInteger(parseFloat((amount*10).toFixed(1)))) digits = 2; else // 100.9 => 100.9 digits = 1; From b9c5d2c2953472cc82c7a5c287b8873462a5044f Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 14 Oct 2020 19:32:21 +0530 Subject: [PATCH 098/344] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7a6ccab..90a313b 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ if you face any issues you can open pull request and can type your issue with im * Installation using terminal: - to install - ```mkdir ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension && git clone https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` + ```mkdir ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension && git clone --single-branch --branch master https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - to load/reload extension Press ```Alt+F2``` then type ```r``` and ```hit enter```. - to enable @@ -45,7 +45,7 @@ if you face any issues you can open pull request and can type your issue with im - to disable ```Disable manually using extensions app/ Using Gnome tweaks extension tab``` - to reinstall or update this extension - ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension && git clone https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` + ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension && git clone --single-branch --branch master https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - to remove ```Remove manually using extensions app``` or From d42c9e8c7946b9706386734b882d7d1b29da1b7e Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 14 Oct 2020 19:34:24 +0530 Subject: [PATCH 099/344] Use ternary where needed --- extension.js | 132 +++++++++++++++------------------------------------ 1 file changed, 37 insertions(+), 95 deletions(-) diff --git a/extension.js b/extension.js index 34a0682..80fda76 100644 --- a/extension.js +++ b/extension.js @@ -1,24 +1,21 @@ const Clutter = imports.gi.Clutter; const St = imports.gi.St; const Main = imports.ui.main; -// const Tweener = imports.ui.tweener; const Gio = imports.gi.Gio; const Mainloop = imports.mainloop; -// const GLib = imports.gi.GLib; const ExtensionUtils = imports.misc.extensionUtils; const Me = ExtensionUtils.getCurrentExtension(); const Convenience = Me.imports.convenience; const PREFS_SCHEMA = 'org.gnome.shell.extensions.netspeedsimplified'; -const refreshTime = 1.6; +const refreshTime = 1.5; let settings; let button, timeout; -// let icon, iconDark; let ioSpeed; let lastCount = 0, lastSpeed = 0, lastCountUp = 0; -let mode; // 0: kbps 1: K/s 2: U:kbps D:kbps 3: U:K/s D:K/s 4: Total KB +let mode; // 0: kb/s 1: KB/s 2: U:kb/s D:kb/s 3: U:KB/s D:KB/s 4: Total KB let fontmode; let resetNextCount = false, resetCount = 0; let toggle_bool = false; @@ -28,7 +25,7 @@ function init() { settings = Convenience.getSettings(PREFS_SCHEMA); - mode = settings.get_int('mode'); // default mode using bit (bps, kbps) + mode = settings.get_int('mode'); // default mode using bit (b/s, kb/s) fontmode = settings.get_int('fontmode'); button = new St.Bin({ @@ -43,7 +40,7 @@ function init() { ioSpeed = new St.Label({ text: '---', y_align: Clutter.ActorAlign.CENTER, - style_class: 'simplenetspeed-label' + style_class: 'forall' }); button.set_child(chooseLabel()); @@ -65,53 +62,29 @@ function changeMode(widget, event) { } else if (event.get_button() == 2) { // change font fontmode++; - if (fontmode > 4) { - fontmode=0; - } + if (fontmode > 4) fontmode=0; + settings.set_int('fontmode', fontmode); button.set_child(chooseLabel()); parseStat(); } else if (event.get_button() == 1) { mode++; - if (mode > 4) { - mode = 0; - } + if (mode > 4) mode = 0; settings.set_int('mode', mode); - if (mode ==4) { - button.set_child(chooseLabel(true)); - } - else{ - button.set_child(chooseLabel()); - } + button.set_child(chooseLabel(mode==4 ? true : false)); parseStat(); } log('mode:' + mode + ' font:' + fontmode); } function chooseLabel(addArg = false) { - if (mode == 0 || mode == 1 || mode == 4) { - styleName = 'sumall'; - } - else { // 2 , 3 - styleName = 'upanddown'; - } - let extraw; - if (addArg){ - extraw = "" - } - else{ - if (toggle_bool){ - extraw = ' iwidth' - } - else { - extraw = "" - } - } + styleName = (mode == 0 || mode == 1 || mode == 4) ? 'sumall' : 'upanddown' + + let extraw = ''; + (!addArg) ? (extraw = toggle_bool ? ' iwidth' : '') : null // Doesnt increase width width on right click if mode==4 styleName = 'forall ' + styleName + extraw + ' size' - if (fontmode > 0) { - styleName = styleName + '-' + fontmode; - } + styleName = fontmode > 0 ? styleName + '-' + fontmode : styleName ioSpeed.set_style_class_name(styleName); return ioSpeed; @@ -150,11 +123,8 @@ function parseStat() { let speed = (count - lastCount) / refreshTime; let speedUp = (countUp - lastCountUp) / refreshTime; - - let dot = ""; - if (speed > lastSpeed) { - dot = "⇅ "; - } + let dot; + dot = (speed > lastSpeed) ? "⇅ " : "" if (resetNextCount == true) { resetNextCount = false; resetCount = count; @@ -163,32 +133,17 @@ function parseStat() { se=false /*This default value is for 4th mode*/, thr = true /*If true will return a result else will return empty string*/ ){ - if(thr){ - if(se){ //This is for Right Click event on mode!=4 - return " | Σ " + speedToString(count - resetCount, fi);} - else{ //This is for mode 4 sigma - return "Σ " + speedToString(count - resetCount, fi); - } - } - else{ - return "";} - - } - if (mode >= 0 && mode <= 1) { - reuseable_text = dot + speedToString(speed); - } - else if (mode >= 2 && mode <= 3) { - reuseable_text = " 🡳 " + speedToString(speed - speedUp) + " 🡱 " + speedToString(speedUp); - } - else if (mode == 4) { - reuseable_text = commonSigma() - } - if (mode == 0 || mode == 2) { - reuseable_text = reuseable_text + commonSigma(2, true, toggle_bool);; - } - else if (mode == 1 || mode == 3) { - reuseable_text = reuseable_text + commonSigma(1, true, toggle_bool);; - } + let otu = (se) ? " | " : "" + return (thr) ? otu + "Σ " + speedToString(count - resetCount, fi) : "" + } + + reuseable_text = (mode >= 0 && mode <= 1) ? dot + speedToString(speed) : + (mode >= 2 && mode <= 3) ? " 🡳 " + speedToString(speed - speedUp) + " 🡱 " + speedToString(speedUp) : + (mode == 4) ? commonSigma(): "Mode Unavailable" + + reuseable_text += (mode == 0 || mode == 2) ? commonSigma(2, true, toggle_bool) : + (mode == 1 || mode == 3) ? commonSigma(1, true, toggle_bool) : "" + ioSpeed.set_text(reuseable_text); lastCount = count; lastCountUp = countUp; @@ -202,24 +157,12 @@ function parseStat() { function speedToString(amount, rMode = 0) { let digits; let speed_map; - if (rMode==1) { - speed_map = ["B", "KB", "MB", "GB"]; - } - else if (rMode == 2) { - speed_map = ["b", "kb", "mb", "gb"]; - } - else if (mode == 0 || mode == 2) { - speed_map = ["b/s", "kb/s", "mb/s", "gb/s"]; - } - else if (mode == 1 || mode == 3) { - speed_map = ["B/s", "K/s", "M/s", "G/s"]; - } - else if (mode == 4) { - speed_map = ["B", "KB", "MB", "GB"]; - } - - if (amount === 0) - return "0 " + speed_map[0]; + speed_map = ["B", "KB", "MB", "GB"].map( + (rMode==1) ? v => v : //KB + (rMode == 2) ? v => v.toLowerCase() : //kb + (mode == 0 || mode == 2) ? v => v.toLowerCase() + "/s" : //kb/s + (mode == 1 || mode == 3) ? v => v + "/s" : v=>v) //KB/s + if (amount === 0) return "0 " + speed_map[0]; if (mode==0 || mode==2) amount = amount * 8; @@ -228,13 +171,12 @@ function speedToString(amount, rMode = 0) { amount /= 1000; ++unit; } + function ChkifInt(amnt, tofid = 1){ + return Number.isInteger(parseFloat(amnt.toFixed(tofid))); + } + digits = ChkifInt(amount) ? 0 : //For Integer like 21.0 + ((mode==4 || rMode !=0) && !ChkifInt(amount*10)) ? 2 /* For floats like 21.1 */ : 1 //For floats like 21.22 - if (Number.isInteger(parseFloat(amount.toFixed(1)))) // 100.0 => 100 - digits = 0; - else if ((mode==4 || rMode !=0) && !Number.isInteger(parseFloat((amount*10).toFixed(1)))) - digits = 2; - else // 100.9 => 100.9 - digits = 1; return String(amount.toFixed(digits)) + " " + speed_map[unit]; } From daa2cab4c1cc1bff9ff997c911c01b48e1d863ed Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 15 Oct 2020 11:08:34 +0530 Subject: [PATCH 100/344] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 90a313b..3515483 100644 --- a/README.md +++ b/README.md @@ -12,12 +12,12 @@ - [x] New sigma icon that respects vertical alignment(old: ∑ , new: Σ) - [x] New Speed up and down icons for mode 2 & 3. (old: ↓ and ↑ , new: 🡳 and 🡱) - [x] Added space b/w speed and their units -- [x] Human readable stylesheet +- [x] Human readable stylesheet // used minimum width and removed repetitive codes +- [x] Used ES6 classes for less code and more efficent javascript - [x] Right Click to toggle visibility of total data used //If you will Right click on 4th mode i.e. total speed mode then total speed counter will reset to 0 MB. #### Todo : -- [ ] Add vertical alignment for Dash to panel users as a 6th mode -- [ ] Middle click to show popup menu with font sizes, Change colours based on data usage, change refreshRate by your own [Impossible right now] +- [ ] If network is not connected, then after 15 sec display text "---" instead of 0 b/s if you face any issues you can open pull request and can type your issue with images or error codes From c7eeda802f835844a2fa470b4d85bba8cecc24ce Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 18 Oct 2020 09:53:45 +0530 Subject: [PATCH 101/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3515483..6296094 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ if you face any issues you can open pull request and can type your issue with im * Installation using terminal: - to install - ```mkdir ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension && git clone --single-branch --branch master https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` + ```git clone --single-branch --branch master https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - to load/reload extension Press ```Alt+F2``` then type ```r``` and ```hit enter```. - to enable From aca84d42ab1e23721303480faddcc9d04814b45c Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 18 Oct 2020 15:05:09 +0530 Subject: [PATCH 102/344] Update format --- README.md | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 6296094..69aaa04 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,8 @@ > Forked from : [Simple Net speed](https://github.com/biji/simplenetspeed) +***Tested on GNOME 3.36 and 3.38*** + #### Changelog : - [x] Reduce Refresh time - [x] Supports GNOME SHELL 3.38 @@ -15,11 +17,12 @@ - [x] Human readable stylesheet // used minimum width and removed repetitive codes - [x] Used ES6 classes for less code and more efficent javascript - [x] Right Click to toggle visibility of total data used //If you will Right click on 4th mode i.e. total speed mode then total speed counter will reset to 0 MB. +- [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode #### Todo : -- [ ] If network is not connected, then after 15 sec display text "---" instead of 0 b/s + *Nothing Todo* -if you face any issues you can open pull request and can type your issue with images or error codes +if you face any **issues** you can **open pull request** and can type your issue with images or error codes > **Left click to change modes** @@ -35,18 +38,20 @@ if you face any issues you can open pull request and can type your issue with im > **Middle click to change font size** -* Installation using terminal: - - to install +* Installing the extension using terminal: + ...**Requirements : git** + + - ***to install*** ```git clone --single-branch --branch master https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - - to load/reload extension + + - ***to load/reload extension*** Press ```Alt+F2``` then type ```r``` and ```hit enter```. - - to enable - ```Enable manually using extensions app/ Using Gnome tweaks extension tab``` - - to disable - ```Disable manually using extensions app/ Using Gnome tweaks extension tab``` - - to reinstall or update this extension + + - ***to enable/disable/remove*** + You can do that manually using extensions app or [website](https://extensions.gnome.org/local) or Using Gnome tweaks tool's extension tab + + - ***to reinstall or update*** ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension && git clone --single-branch --branch master https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - - to remove - ```Remove manually using extensions app``` - or + + - ***to remove( using Terminal )*** ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` From 69e777fa6084a06958b37438b5991e02cf04bcdd Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 18 Oct 2020 15:06:48 +0530 Subject: [PATCH 103/344] Add Feature --- extension.js | 63 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 26 deletions(-) diff --git a/extension.js b/extension.js index 80fda76..32d1878 100644 --- a/extension.js +++ b/extension.js @@ -9,7 +9,7 @@ const Me = ExtensionUtils.getCurrentExtension(); const Convenience = Me.imports.convenience; const PREFS_SCHEMA = 'org.gnome.shell.extensions.netspeedsimplified'; -const refreshTime = 1.5; +const refreshTime = 1.5; let settings; let button, timeout; @@ -20,6 +20,7 @@ let fontmode; let resetNextCount = false, resetCount = 0; let toggle_bool = false; let reuseable_text; +let h =0; function init() { @@ -32,6 +33,8 @@ function init() { style_class: 'panel-button', reactive: true, can_focus: true, + x_fill: true, + y_fill: false, x_expand: true, y_expand: false, track_hover: true @@ -42,9 +45,6 @@ function init() { y_align: Clutter.ActorAlign.CENTER, style_class: 'forall' }); - - button.set_child(chooseLabel()); - button.connect('button-press-event', changeMode); } function changeMode(widget, event) { @@ -55,7 +55,7 @@ function changeMode(widget, event) { parseStat();} else {//right click on other modes; brings total downloaded sum toggle_bool = !toggle_bool; - ioSpeed.set_text(" Hello"); + ioSpeed.set_text("Loading Info..."); button.set_child(chooseLabel()); parseStat(); } @@ -78,11 +78,11 @@ function changeMode(widget, event) { log('mode:' + mode + ' font:' + fontmode); } -function chooseLabel(addArg = false) { +function chooseLabel(addArg = false /*for mode 4*/) { styleName = (mode == 0 || mode == 1 || mode == 4) ? 'sumall' : 'upanddown' let extraw = ''; - (!addArg) ? (extraw = toggle_bool ? ' iwidth' : '') : null // Doesnt increase width width on right click if mode==4 + (!addArg) ? (extraw = toggle_bool ? ' iwidth' : '') : null // Doesnt increase width on right click if mode==4 styleName = 'forall ' + styleName + extraw + ' size' styleName = fontmode > 0 ? styleName + '-' + fontmode : styleName @@ -124,27 +124,37 @@ function parseStat() { let speed = (count - lastCount) / refreshTime; let speedUp = (countUp - lastCountUp) / refreshTime; let dot; + let dash; dot = (speed > lastSpeed) ? "⇅ " : "" if (resetNextCount == true) { resetNextCount = false; resetCount = count; } - function commonSigma(fi=0, - se=false /*This default value is for 4th mode*/, - thr = true /*If true will return a result else will return empty string*/ - ){ - let otu = (se) ? " | " : "" - return (thr) ? otu + "Σ " + speedToString(count - resetCount, fi) : "" + function commonSigma(thr = true /*If true will return a result else will return empty string*/){ + let sigma = "Σ "; + let extRaw = " | " + sigma; + let speedy = speedToString(count - resetCount, 1); + if (thr && mode !=4){ + if (mode == 0 || mode == 2) return extRaw + speedy.toLowerCase(); + else if (mode == 1 || mode == 3) return extRaw + speedy; } - - reuseable_text = (mode >= 0 && mode <= 1) ? dot + speedToString(speed) : - (mode >= 2 && mode <= 3) ? " 🡳 " + speedToString(speed - speedUp) + " 🡱 " + speedToString(speedUp) : - (mode == 4) ? commonSigma(): "Mode Unavailable" - - reuseable_text += (mode == 0 || mode == 2) ? commonSigma(2, true, toggle_bool) : - (mode == 1 || mode == 3) ? commonSigma(1, true, toggle_bool) : "" - - ioSpeed.set_text(reuseable_text); + else if (mode == 4) return sigma + speedy; + else return ""; + } + + (speed || speedUp) ? h = 0 : h++ + + if(h<=8){ + reuseable_text = (mode >= 0 && mode <= 1) ? dot + speedToString(speed) + commonSigma(toggle_bool) : + (mode >= 2 && mode <= 3) ? " 🡳 " + speedToString(speed - speedUp) + " 🡱 " + speedToString(speedUp) +commonSigma(toggle_bool) : + (mode == 4) ? commonSigma(): "Mode Unavailable" + } + else{ + ioSpeed.set_style_class_name("forall"); + if (mode !=4) reuseable_text = "--".repeat(mode+1) + commonSigma(toggle_bool); + else reuseable_text = commonSigma(toggle_bool); + } + ioSpeed.set_text(reuseable_text); lastCount = count; lastCountUp = countUp; lastSpeed = speed; @@ -157,13 +167,12 @@ function parseStat() { function speedToString(amount, rMode = 0) { let digits; let speed_map; - speed_map = ["B", "KB", "MB", "GB"].map( - (rMode==1) ? v => v : //KB - (rMode == 2) ? v => v.toLowerCase() : //kb + speed_map = ["B", "KB", "MB", "GB"].map( + (rMode==1) ? v => v : //KB (mode == 0 || mode == 2) ? v => v.toLowerCase() + "/s" : //kb/s (mode == 1 || mode == 3) ? v => v + "/s" : v=>v) //KB/s + if (amount === 0) return "0 " + speed_map[0]; - if (mode==0 || mode==2) amount = amount * 8; let unit = 0; @@ -182,6 +191,8 @@ function speedToString(amount, rMode = 0) { function enable() { Main.panel._rightBox.insert_child_at_index(button, 0); + button.set_child(chooseLabel()); + button.connect('button-press-event', changeMode); timeout = Mainloop.timeout_add_seconds(refreshTime, parseStat); } From 0cad5b968e5ddea97466764561e0f92b8ca10a57 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 18 Oct 2020 16:55:07 +0530 Subject: [PATCH 104/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 69aaa04..da62be6 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ - [x] Centred and more cleaner ui - [x] Changed Kbps to kbp/s - [x] New sigma icon that respects vertical alignment(old: ∑ , new: Σ) -- [x] New Speed up and down icons for mode 2 & 3. (old: ↓ and ↑ , new: 🡳 and 🡱) +- [x] New Speed up and down icons for mode 3 & 4. (old: ↓ and ↑ , new: 🡳 and 🡱) - [x] Added space b/w speed and their units - [x] Human readable stylesheet // used minimum width and removed repetitive codes - [x] Used ES6 classes for less code and more efficent javascript From 12019cfa1e2dbf6382a7564a3e76d565d9583212 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 18 Oct 2020 17:01:41 +0530 Subject: [PATCH 105/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index da62be6..4f76e92 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ - [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode #### Todo : - *Nothing Todo* +- [ ] Vertical Aligment for mode 3,4 for Dash to panel or Big Screen users. if you face any **issues** you can **open pull request** and can type your issue with images or error codes From 5817d1a8e1d82e93509801da63a80692153650d9 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 18 Oct 2020 17:04:26 +0530 Subject: [PATCH 106/344] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 4f76e92..71f1556 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ # Net speed Simplified *Gnome extension to show network speed* +> Website Link : [prateekmedia.io/netspeedsimplified](https://prateekmedia.github.io/netspeedsimplified/) + > Forked from : [Simple Net speed](https://github.com/biji/simplenetspeed) ***Tested on GNOME 3.36 and 3.38*** From 0d0ba7823b5f6ab3b3d87d8e3a613d795be8b0ba Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 18 Oct 2020 17:17:29 +0530 Subject: [PATCH 107/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 71f1556..a71e3e1 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ #### Todo : - [ ] Vertical Aligment for mode 3,4 for Dash to panel or Big Screen users. -if you face any **issues** you can **open pull request** and can type your issue with images or error codes +if you face any **issues** you can **[open pull request](https://github.com/prateekmedia/netspeedsimplified/pulls)** and can type your issue with images or error codes > **Left click to change modes** From 119803ac9b01fd7bbbb89ce2c1b5a534fac52b82 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 18 Oct 2020 21:01:33 +0530 Subject: [PATCH 108/344] Update extension.js --- extension.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/extension.js b/extension.js index 32d1878..4297f27 100644 --- a/extension.js +++ b/extension.js @@ -45,6 +45,7 @@ function init() { y_align: Clutter.ActorAlign.CENTER, style_class: 'forall' }); + button.set_child(chooseLabel()); } function changeMode(widget, event) { @@ -124,7 +125,6 @@ function parseStat() { let speed = (count - lastCount) / refreshTime; let speedUp = (countUp - lastCountUp) / refreshTime; let dot; - let dash; dot = (speed > lastSpeed) ? "⇅ " : "" if (resetNextCount == true) { resetNextCount = false; @@ -191,7 +191,6 @@ function speedToString(amount, rMode = 0) { function enable() { Main.panel._rightBox.insert_child_at_index(button, 0); - button.set_child(chooseLabel()); button.connect('button-press-event', changeMode); timeout = Mainloop.timeout_add_seconds(refreshTime, parseStat); } From 0393511944326b1622d8eee4019d7e04334b330a Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 19 Oct 2020 10:45:49 +0530 Subject: [PATCH 109/344] Made tool_bool a settings schema --- extension.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/extension.js b/extension.js index 4297f27..dfc9fc0 100644 --- a/extension.js +++ b/extension.js @@ -18,7 +18,7 @@ let lastCount = 0, lastSpeed = 0, lastCountUp = 0; let mode; // 0: kb/s 1: KB/s 2: U:kb/s D:kb/s 3: U:KB/s D:KB/s 4: Total KB let fontmode; let resetNextCount = false, resetCount = 0; -let toggle_bool = false; +let toggle_bool; let reuseable_text; let h =0; @@ -27,7 +27,8 @@ function init() { settings = Convenience.getSettings(PREFS_SCHEMA); mode = settings.get_int('mode'); // default mode using bit (b/s, kb/s) - fontmode = settings.get_int('fontmode'); + fontmode = settings.get_int('fontmode'); + toggle_bool = settings.get_boolean('toggle_bool'); button = new St.Bin({ style_class: 'panel-button', @@ -45,7 +46,9 @@ function init() { y_align: Clutter.ActorAlign.CENTER, style_class: 'forall' }); + //Refrence for Below Code : https://wiki.gnome.org/Projects/GnomeShell/Extensions/StepByStepTutorial#knowingClutter-someExamples-signals button.set_child(chooseLabel()); + button.connect('button-press-event', changeMode); } function changeMode(widget, event) { @@ -191,7 +194,6 @@ function speedToString(amount, rMode = 0) { function enable() { Main.panel._rightBox.insert_child_at_index(button, 0); - button.connect('button-press-event', changeMode); timeout = Mainloop.timeout_add_seconds(refreshTime, parseStat); } From 6785b0d92a5dee69cadb00fcaf63cc1a51b39afe Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 19 Oct 2020 10:47:54 +0530 Subject: [PATCH 110/344] Add tool_bool --- .../org.gnome.shell.extensions.netspeedsimplified.gschema.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml index e987d47..09938aa 100644 --- a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml +++ b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml @@ -9,5 +9,8 @@ 0 + + false + From 2717e0e140d5c3b6cd8a64661e9aef5e527e05b8 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 19 Oct 2020 10:51:54 +0530 Subject: [PATCH 111/344] Update org.gnome.shell.extensions.netspeedsimplified.gschema.xml --- .../org.gnome.shell.extensions.netspeedsimplified.gschema.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml index 09938aa..9431070 100644 --- a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml +++ b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml @@ -9,7 +9,7 @@ 0 - + false From 727ac4d273a0e0691a263e957d2e0493957d5ca7 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 19 Oct 2020 11:22:41 +0530 Subject: [PATCH 112/344] Add files via upload --- extension.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/extension.js b/extension.js index dfc9fc0..29c4858 100644 --- a/extension.js +++ b/extension.js @@ -18,7 +18,7 @@ let lastCount = 0, lastSpeed = 0, lastCountUp = 0; let mode; // 0: kb/s 1: KB/s 2: U:kb/s D:kb/s 3: U:KB/s D:KB/s 4: Total KB let fontmode; let resetNextCount = false, resetCount = 0; -let toggle_bool; +let togglebool; let reuseable_text; let h =0; @@ -28,7 +28,7 @@ function init() { mode = settings.get_int('mode'); // default mode using bit (b/s, kb/s) fontmode = settings.get_int('fontmode'); - toggle_bool = settings.get_boolean('toggle_bool'); + togglebool = settings.get_boolean('togglebool'); button = new St.Bin({ style_class: 'panel-button', @@ -58,7 +58,7 @@ function changeMode(widget, event) { resetNextCount = true; parseStat();} else {//right click on other modes; brings total downloaded sum - toggle_bool = !toggle_bool; + togglebool = !togglebool; ioSpeed.set_text("Loading Info..."); button.set_child(chooseLabel()); parseStat(); @@ -86,7 +86,7 @@ function chooseLabel(addArg = false /*for mode 4*/) { styleName = (mode == 0 || mode == 1 || mode == 4) ? 'sumall' : 'upanddown' let extraw = ''; - (!addArg) ? (extraw = toggle_bool ? ' iwidth' : '') : null // Doesnt increase width on right click if mode==4 + (!addArg) ? (extraw = togglebool ? ' iwidth' : '') : null // Doesnt increase width on right click if mode==4 styleName = 'forall ' + styleName + extraw + ' size' styleName = fontmode > 0 ? styleName + '-' + fontmode : styleName @@ -148,14 +148,14 @@ function parseStat() { (speed || speedUp) ? h = 0 : h++ if(h<=8){ - reuseable_text = (mode >= 0 && mode <= 1) ? dot + speedToString(speed) + commonSigma(toggle_bool) : - (mode >= 2 && mode <= 3) ? " 🡳 " + speedToString(speed - speedUp) + " 🡱 " + speedToString(speedUp) +commonSigma(toggle_bool) : + reuseable_text = (mode >= 0 && mode <= 1) ? dot + speedToString(speed) + commonSigma(togglebool) : + (mode >= 2 && mode <= 3) ? " 🡳 " + speedToString(speed - speedUp) + " 🡱 " + speedToString(speedUp) +commonSigma(togglebool) : (mode == 4) ? commonSigma(): "Mode Unavailable" } else{ ioSpeed.set_style_class_name("forall"); - if (mode !=4) reuseable_text = "--".repeat(mode+1) + commonSigma(toggle_bool); - else reuseable_text = commonSigma(toggle_bool); + if (mode !=4) reuseable_text = "--".repeat(mode+1) + commonSigma(togglebool); + else reuseable_text = commonSigma(togglebool); } ioSpeed.set_text(reuseable_text); lastCount = count; From 0927f65a2faf42af1d93603e28f2e632c00ba272 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 19 Oct 2020 11:23:14 +0530 Subject: [PATCH 113/344] Add files via upload --- schemas/gschemas.compiled | Bin 403 -> 450 bytes ...ll.extensions.netspeedsimplified.gschema.xml | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index 1c2dfcc33762c2fcd03c9611746cbf05db5b59a9..1e04b1aa891048450a2d3415748172395465e8b4 100644 GIT binary patch delta 236 zcmbQte295M2&2NpQ0sbD1_WRNGMRyx1&CQi85sTpfdV5)-iHB1>j3e=wPoxe5fGb$ zp^U)-NCyM)W}OGqK;j@a7f?I_NT&j^*REMLAaM|z1t?wsq`QImKy4j2(0Hl;APy@~ zVgisp1jIlDb_CO8Pev`rzAx%nxnU^av(g0ewwX3)sgsMN^J R)YR0}D@ZKKm@L3(1OSymDZc;! delta 166 zcmX@aJehey2qVkHQ0saY1_)pTQp`XM;vcB3EI>h4hB5{LAngQVi!v~P#6fHZ z1|J3&AngOh2iKOdgM>hA4xsu7AYBZ^Ub|-1fW$#;7NB?qke&?0dIgCk86YDV7#JBQ cPhd1+XJB9ga+oJ;GHS8p=BK1i&S#VX08G#xMF0Q* diff --git a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml index 9431070..bc3bb55 100644 --- a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml +++ b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml @@ -9,7 +9,7 @@ 0 - + false From ec74f826073b661ed5eb545d6d665c84e3d1ec6e Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 19 Oct 2020 11:30:21 +0530 Subject: [PATCH 114/344] Update metadata.json --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index 6dd7d90..6920ab1 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,6 @@ { "_generated": "Generated by SweetTooth, do not edit", - "description": "Fork of Simple Net speed: https://github.com/biji/simplenetspeed \n\nWhats New: Clean UI, Reduce refresh time, Fix repetitive code in stylesheet.css, Right Click to view total downloaded data in bits and bytes, new Sigma and Up and down Arrow, dynamic width, used kb/s instead of Kbps, added spaces where needed, and more coming\n\nLeft Click To change modes.\n\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up & down speed in bits per second\n4. Up & down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter\n\nRight Click To toggle visibility of Total Up and Down or Reset counter if you are in 5th mode.\n\nMiddle Click to change font size.", + "description": "Fork of Simple Net speed by bijignome \n\nTested on gnome 3.36 and 3.38\n\nWhats New: Clean UI, Reduce refresh time, Fix repetitive code in stylesheet.css, Right Click to view total downloaded data in bits and bytes, new Sigma and Up and down Arrow, dynamic width, used kb/s instead of Kbps, added spaces where needed, If you don't have active net connection for 12 seconds then this extension will show "--" instead of 0 B/s and more coming\n\nLeft Click To change modes.\n\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up and down speed in bits per second\n4. Up and down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter\n\nRight Click To toggle visibility of Total Up and Down or Reset counter for 5th mode.\n\nMiddle Click to change font size.", "name": "Net speed Simplified", "shell-version": [ "3.14", From 588d4445ca1fd3a611fbba623a7e1a9bede28c10 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 19 Oct 2020 11:38:02 +0530 Subject: [PATCH 115/344] Add ' instead of " --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index 6920ab1..794e952 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,6 @@ { "_generated": "Generated by SweetTooth, do not edit", - "description": "Fork of Simple Net speed by bijignome \n\nTested on gnome 3.36 and 3.38\n\nWhats New: Clean UI, Reduce refresh time, Fix repetitive code in stylesheet.css, Right Click to view total downloaded data in bits and bytes, new Sigma and Up and down Arrow, dynamic width, used kb/s instead of Kbps, added spaces where needed, If you don't have active net connection for 12 seconds then this extension will show "--" instead of 0 B/s and more coming\n\nLeft Click To change modes.\n\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up and down speed in bits per second\n4. Up and down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter\n\nRight Click To toggle visibility of Total Up and Down or Reset counter for 5th mode.\n\nMiddle Click to change font size.", + "description": "Fork of Simple Net speed by bijignome \n\nTested on gnome 3.36 and 3.38\n\nWhats New: Clean UI, Reduce refresh time, Fix repetitive code in stylesheet.css, Right Click to view total downloaded data in bits and bytes, new Sigma and Up and down Arrow, dynamic width, used kb/s instead of Kbps, added spaces where needed, If you don't have active net connection for 12 seconds then this extension will show '--' instead of 0 B/s and more coming\n\nLeft Click To change modes.\n\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up and down speed in bits per second\n4. Up and down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter\n\nRight Click To toggle visibility of Total Up and Down or Reset counter for 5th mode.\n\nMiddle Click to change font size.", "name": "Net speed Simplified", "shell-version": [ "3.14", From 4b92a35aab74f0406c8ccdce4a67bbe517a909dc Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 19 Oct 2020 12:17:19 +0530 Subject: [PATCH 116/344] Add Screenshot --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a71e3e1..4cd7f4f 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,12 @@ # Net speed Simplified -*Gnome extension to show network speed* +*Gnome extension to show network speed* > Website Link : [prateekmedia.io/netspeedsimplified](https://prateekmedia.github.io/netspeedsimplified/) > Forked from : [Simple Net speed](https://github.com/biji/simplenetspeed) +![screen-min2-min](https://user-images.githubusercontent.com/41370460/96410083-f9cb8a80-1203-11eb-98a0-4cada29306b1.png) *Screenshots* + ***Tested on GNOME 3.36 and 3.38*** #### Changelog : From 6ac6b62886c2ce7976ee4b2a0f21e1f2432e8465 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 19 Oct 2020 12:19:04 +0530 Subject: [PATCH 117/344] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4cd7f4f..82d9389 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,11 @@ # Net speed Simplified *Gnome extension to show network speed* +> Gnome Extensions Link : [extensions.gnome/netspeedsimplified](https://extensions.gnome.org/review/20012) + > Website Link : [prateekmedia.io/netspeedsimplified](https://prateekmedia.github.io/netspeedsimplified/) -> Forked from : [Simple Net speed](https://github.com/biji/simplenetspeed) +> Forked from : [biji/simplenetspeed](https://github.com/biji/simplenetspeed) ![screen-min2-min](https://user-images.githubusercontent.com/41370460/96410083-f9cb8a80-1203-11eb-98a0-4cada29306b1.png) *Screenshots* From e023b0276b743d541742efa94065b2785ab2074e Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 19 Oct 2020 14:38:52 +0530 Subject: [PATCH 118/344] Update extension.js --- extension.js | 1 - 1 file changed, 1 deletion(-) diff --git a/extension.js b/extension.js index 29c4858..40cae7d 100644 --- a/extension.js +++ b/extension.js @@ -46,7 +46,6 @@ function init() { y_align: Clutter.ActorAlign.CENTER, style_class: 'forall' }); - //Refrence for Below Code : https://wiki.gnome.org/Projects/GnomeShell/Extensions/StepByStepTutorial#knowingClutter-someExamples-signals button.set_child(chooseLabel()); button.connect('button-press-event', changeMode); } From 9cbbb15ebd0eebc0f6e663808572d73c472798ee Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 20 Oct 2020 09:24:45 +0530 Subject: [PATCH 119/344] Update to support vertical align --- extension.js | 45 +++++++++++++++++++++++++++++++-------------- stylesheet.css | 6 +++++- 2 files changed, 36 insertions(+), 15 deletions(-) diff --git a/extension.js b/extension.js index 40cae7d..8bc1e86 100644 --- a/extension.js +++ b/extension.js @@ -20,7 +20,10 @@ let fontmode; let resetNextCount = false, resetCount = 0; let togglebool; let reuseable_text; -let h =0; +let h = 8; +let newLine; +var extRaw; +let isVertical; function init() { @@ -29,6 +32,7 @@ function init() { mode = settings.get_int('mode'); // default mode using bit (b/s, kb/s) fontmode = settings.get_int('fontmode'); togglebool = settings.get_boolean('togglebool'); + isVertical = settings.get_boolean('isvertical'); button = new St.Bin({ style_class: 'panel-button', @@ -83,9 +87,9 @@ function changeMode(widget, event) { function chooseLabel(addArg = false /*for mode 4*/) { styleName = (mode == 0 || mode == 1 || mode == 4) ? 'sumall' : 'upanddown' - let extraw = ''; - (!addArg) ? (extraw = togglebool ? ' iwidth' : '') : null // Doesnt increase width on right click if mode==4 + (!isVertical) ? ((!addArg) ? (extraw = togglebool ? ' iwidth' : '') : null) : // Doesnt increase width on right click if mode==4 or if vertical is true + ((mode ==2 || mode ==3) && togglebool ? extraw = ' leftlign' : null) // if vertical is true and right click is also true in mode 2,3 then make them left align styleName = 'forall ' + styleName + extraw + ' size' styleName = fontmode > 0 ? styleName + '-' + fontmode : styleName @@ -132,28 +136,41 @@ function parseStat() { resetNextCount = false; resetCount = count; } - function commonSigma(thr = true /*If true will return a result else will return empty string*/){ + newLine = (isVertical && (mode ==2 || mode ==3)) ? "\n" : ""; + var speedy = speedToString(count - resetCount, 1); + function sped(exta = extRaw, spda = speedy){ return exta + spda; } + function commonSigma(thr = true /*If true will return a result else will return empty string*/, isnewline = false){ let sigma = "Σ "; - let extRaw = " | " + sigma; - let speedy = speedToString(count - resetCount, 1); + extRaw = " | " + sigma; if (thr && mode !=4){ - if (mode == 0 || mode == 2) return extRaw + speedy.toLowerCase(); - else if (mode == 1 || mode == 3) return extRaw + speedy; + if ((mode ==0 || mode ==1)){ + if (isVertical) extRaw = "\n" + sigma; + if (mode == 0) return sped(extRaw, speedy.toLowerCase()); + else return sped(extRaw); + } + else if ((mode ==2 || mode ==3)) { + if (isVertical){ + extRaw = " " + sigma; + } + if (mode == 2) return sped(extRaw, speedy.toLowerCase()); + else return sped(extRaw); + } + else { return ""} } - else if (mode == 4) return sigma + speedy; + else if (mode == 4){ + return sped(sigma); + } else return ""; } - (speed || speedUp) ? h = 0 : h++ - if(h<=8){ reuseable_text = (mode >= 0 && mode <= 1) ? dot + speedToString(speed) + commonSigma(togglebool) : - (mode >= 2 && mode <= 3) ? " 🡳 " + speedToString(speed - speedUp) + " 🡱 " + speedToString(speedUp) +commonSigma(togglebool) : + (mode >= 2 && mode <= 3) ? " 🡳 " + speedToString(speed - speedUp) +newLine+ " 🡱 " + speedToString(speedUp) +commonSigma(togglebool) : (mode == 4) ? commonSigma(): "Mode Unavailable" } else{ - ioSpeed.set_style_class_name("forall"); - if (mode !=4) reuseable_text = "--".repeat(mode+1) + commonSigma(togglebool); + ioSpeed.set_style_class_name("forall"); + if (mode !=4) reuseable_text = "--".repeat(mode+1) + newLine + commonSigma(togglebool, true); else reuseable_text = commonSigma(togglebool); } ioSpeed.set_text(reuseable_text); diff --git a/stylesheet.css b/stylesheet.css index c67a59d..6d4129c 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -1,10 +1,14 @@ /* For all elements */ .forall{ - text-align: center !important; + text-align: center; margin: auto 2px; min-width: 4.4em; } +.leftlign{ + text-align: left; +} + .iwidth{ /*Increase width if total data usage is visible with speed*/ min-width: 11.3em; From 4bff286dcf89899221d3348e027dfe350d502197 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 20 Oct 2020 09:25:31 +0530 Subject: [PATCH 120/344] Update schemas to support vertical align --- schemas/gschemas.compiled | Bin 450 -> 499 bytes ...ll.extensions.netspeedsimplified.gschema.xml | 3 +++ 2 files changed, 3 insertions(+) diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index 1e04b1aa891048450a2d3415748172395465e8b4..c32a0ac59fcfd3ddc012587b0c750ca532d6b6b4 100644 GIT binary patch delta 261 zcmX@a{F!+|2&2u!Q0sa&228*N6k-A5%{mXJfoK~>1_myMG6oMI?F+=xJHt9b;vhCi zJOW6^0`Y;`I`02K0AjNO#WR5PEFkvUHLC`s9>it=iZ1}tyMdThlp&G>v#wHV06{4Iup)h)eR*({oaj^7C^*>NS!yGmFboi%K$+6F~w%zFt9M mNd`!cfno9lMkAKo{FKzmd5p4rK=&{(08Lj3e=wPoxe5fGb$ zp^U)-NCyM)W}OGqK;j@a7f?I_NT&j^*REMLAaM|z1t?wsq`QImKy4j2(0Hl;APy@~ zVgisp1jIlDb_CPplZ;x@CHd*;IjKqc`8gm%7&MYJbMsSD!R*QN7-d=Y3KB~)CTB1j F0RVHCDGUGr diff --git a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml index bc3bb55..269b8b2 100644 --- a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml +++ b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml @@ -12,5 +12,8 @@ false + + false + From 7444aa5b8f5ca84b0b6880aec7882fc82dac93f6 Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 20 Oct 2020 09:34:14 +0530 Subject: [PATCH 121/344] Update Readme --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 82d9389..4d807c4 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -# Net speed Simplified -*Gnome extension to show network speed* +

Net speed Simplified

+
Gnome extension to show network speed
> Gnome Extensions Link : [extensions.gnome/netspeedsimplified](https://extensions.gnome.org/review/20012) @@ -7,7 +7,7 @@ > Forked from : [biji/simplenetspeed](https://github.com/biji/simplenetspeed) -![screen-min2-min](https://user-images.githubusercontent.com/41370460/96410083-f9cb8a80-1203-11eb-98a0-4cada29306b1.png) *Screenshots* +

*Screenshots*

***Tested on GNOME 3.36 and 3.38*** @@ -24,9 +24,10 @@ - [x] Used ES6 classes for less code and more efficent javascript - [x] Right Click to toggle visibility of total data used //If you will Right click on 4th mode i.e. total speed mode then total speed counter will reset to 0 MB. - [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode +- [x] Vertical Aligment for mode 3,4 for Dash to panel or Big Screen users. #### Todo : -- [ ] Vertical Aligment for mode 3,4 for Dash to panel or Big Screen users. +***Nothing TODO*** if you face any **issues** you can **[open pull request](https://github.com/prateekmedia/netspeedsimplified/pulls)** and can type your issue with images or error codes @@ -40,7 +41,7 @@ if you face any **issues** you can **[open pull request](https://github.com/prat 1. Total of downloaded in Bytes (Right click to reset counter) > **Right click to toggle total data usage visiblity, Right click on total data usage mode to reset counter** - ### From this ![Before](https://user-images.githubusercontent.com/41370460/95724032-78b84480-0c93-11eb-9a2f-07976cb99e19.png) =====> To this ![After Right Click](https://user-images.githubusercontent.com/41370460/95724072-8968ba80-0c93-11eb-98c9-e5651167760d.png) +

=====> To this

> **Middle click to change font size** From 74179dd9a5e875c67cfb35dad460b29df8a94b1c Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 20 Oct 2020 09:38:38 +0530 Subject: [PATCH 122/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4d807c4..d471581 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ - [x] Used ES6 classes for less code and more efficent javascript - [x] Right Click to toggle visibility of total data used //If you will Right click on 4th mode i.e. total speed mode then total speed counter will reset to 0 MB. - [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode -- [x] Vertical Aligment for mode 3,4 for Dash to panel or Big Screen users. +- [x] Vertical Aligment for Dash to panel or Big Screen users, to enable this go to this [branch](https://github.com/prateekmedia/netspeedsimplified/tree/verticalalign) #### Todo : ***Nothing TODO*** From 9e1ea2879ebd107093ce16b178f736da77e7cd6d Mon Sep 17 00:00:00 2001 From: prateekmedia <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 20 Oct 2020 09:39:14 +0530 Subject: [PATCH 123/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d471581..4bd95bc 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ - [x] Used ES6 classes for less code and more efficent javascript - [x] Right Click to toggle visibility of total data used //If you will Right click on 4th mode i.e. total speed mode then total speed counter will reset to 0 MB. - [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode -- [x] Vertical Aligment for Dash to panel or Big Screen users, to enable this go to this [branch](https://github.com/prateekmedia/netspeedsimplified/tree/verticalalign) +- [x] Disabled Vertical Aligment for Dash to panel or Big Screen users, to enable this go to this [branch](https://github.com/prateekmedia/netspeedsimplified/tree/verticalalign) #### Todo : ***Nothing TODO*** From ba850115ebd16bd1aea0486ddba046a1718bf46f Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Fri, 23 Oct 2020 14:19:54 +0530 Subject: [PATCH 124/344] Update master to main --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4bd95bc..15747e7 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ if you face any **issues** you can **[open pull request](https://github.com/prat ...**Requirements : git** - ***to install*** - ```git clone --single-branch --branch master https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` + ```git clone --single-branch --branch main https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - ***to load/reload extension*** Press ```Alt+F2``` then type ```r``` and ```hit enter```. @@ -58,7 +58,7 @@ if you face any **issues** you can **[open pull request](https://github.com/prat You can do that manually using extensions app or [website](https://extensions.gnome.org/local) or Using Gnome tweaks tool's extension tab - ***to reinstall or update*** - ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension && git clone --single-branch --branch master https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` + ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension && git clone --single-branch --branch main https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - ***to remove( using Terminal )*** ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` From 55f62b72fbb8a3aaaed5e8c46f3b6382a46d22f6 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Fri, 23 Oct 2020 16:23:40 +0000 Subject: [PATCH 125/344] Easily switch vertical alignment --- extension.js | 93 +++++++++++++++++++++++++++++----------------------- 1 file changed, 52 insertions(+), 41 deletions(-) diff --git a/extension.js b/extension.js index 8bc1e86..3f7aaac 100644 --- a/extension.js +++ b/extension.js @@ -11,6 +11,8 @@ const Convenience = Me.imports.convenience; const PREFS_SCHEMA = 'org.gnome.shell.extensions.netspeedsimplified'; const refreshTime = 1.5; +const rCConst = 3; + let settings; let button, timeout; let ioSpeed; @@ -18,12 +20,8 @@ let lastCount = 0, lastSpeed = 0, lastCountUp = 0; let mode; // 0: kb/s 1: KB/s 2: U:kb/s D:kb/s 3: U:KB/s D:KB/s 4: Total KB let fontmode; let resetNextCount = false, resetCount = 0; -let togglebool; -let reuseable_text; -let h = 8; -let newLine; -var extRaw; -let isVertical; +let togglebool, reuseable_text, h = 8, newLine, tTime=0, useOldIcon = false; +var extRaw, rClickCount =0, isVertical, DIcons = []; function init() { @@ -31,27 +29,6 @@ function init() { mode = settings.get_int('mode'); // default mode using bit (b/s, kb/s) fontmode = settings.get_int('fontmode'); - togglebool = settings.get_boolean('togglebool'); - isVertical = settings.get_boolean('isvertical'); - - button = new St.Bin({ - style_class: 'panel-button', - reactive: true, - can_focus: true, - x_fill: true, - y_fill: false, - x_expand: true, - y_expand: false, - track_hover: true - }); - - ioSpeed = new St.Label({ - text: '---', - y_align: Clutter.ActorAlign.CENTER, - style_class: 'forall' - }); - button.set_child(chooseLabel()); - button.connect('button-press-event', changeMode); } function changeMode(widget, event) { @@ -66,6 +43,7 @@ function changeMode(widget, event) { button.set_child(chooseLabel()); parseStat(); } + rClickCount++; } else if (event.get_button() == 2) { // change font fontmode++; @@ -106,6 +84,17 @@ function parseStat() { let count = 0; let countUp = 0; let line; + if (rClickCount != 0) tTime++; + if(tTime>rCConst){ + tTime = 0; + rClickCount = 0; + } + if (rClickCount>=rCConst){ + isVertical = !isVertical; + rClickCount =0; + } + log("tTime : " + tTime); + log("rclickcounttttt " + rClickCount); while (line = dstream.read_line(null)) { line = String(line); line = line.trim(); @@ -136,36 +125,33 @@ function parseStat() { resetNextCount = false; resetCount = count; } + newLine = (isVertical && (mode ==2 || mode ==3)) ? "\n" : ""; var speedy = speedToString(count - resetCount, 1); function sped(exta = extRaw, spda = speedy){ return exta + spda; } function commonSigma(thr = true /*If true will return a result else will return empty string*/, isnewline = false){ - let sigma = "Σ "; + let sigma = DIcons[2]+" "; extRaw = " | " + sigma; if (thr && mode !=4){ if ((mode ==0 || mode ==1)){ - if (isVertical) extRaw = "\n" + sigma; - if (mode == 0) return sped(extRaw, speedy.toLowerCase()); - else return sped(extRaw); + (isVertical) ? (extRaw = "\n") + sigma : null + return (mode == 0) ? sped(extRaw, speedy.toLowerCase()) : sped(extRaw) } else if ((mode ==2 || mode ==3)) { - if (isVertical){ - extRaw = " " + sigma; - } - if (mode == 2) return sped(extRaw, speedy.toLowerCase()); - else return sped(extRaw); + (isVertical) ? (extRaw = " " + sigma) + sigma : null + return (mode == 2) ? sped(extRaw, speedy.toLowerCase()) : sped(extRaw) } - else { return ""} + else return ""; } else if (mode == 4){ - return sped(sigma); + return (isVertical) ? sped(sigma) + " -v" : sped(sigma) } else return ""; } (speed || speedUp) ? h = 0 : h++ if(h<=8){ reuseable_text = (mode >= 0 && mode <= 1) ? dot + speedToString(speed) + commonSigma(togglebool) : - (mode >= 2 && mode <= 3) ? " 🡳 " + speedToString(speed - speedUp) +newLine+ " 🡱 " + speedToString(speedUp) +commonSigma(togglebool) : + (mode >= 2 && mode <= 3) ? " "+DIcons[0]+" " + speedToString(speed - speedUp) +newLine+ " "+DIcons[1]+" " + speedToString(speedUp) +commonSigma(togglebool) : (mode == 4) ? commonSigma(): "Mode Unavailable" } else{ @@ -199,8 +185,8 @@ function speedToString(amount, rMode = 0) { amount /= 1000; ++unit; } - function ChkifInt(amnt, tofid = 1){ - return Number.isInteger(parseFloat(amnt.toFixed(tofid))); + function ChkifInt(amnt, digitsToFix = 1){ + return Number.isInteger(parseFloat(amnt.toFixed(digitsToFix))); } digits = ChkifInt(amount) ? 0 : //For Integer like 21.0 ((mode==4 || rMode !=0) && !ChkifInt(amount*10)) ? 2 /* For floats like 21.1 */ : 1 //For floats like 21.22 @@ -208,7 +194,32 @@ function speedToString(amount, rMode = 0) { return String(amount.toFixed(digits)) + " " + speed_map[unit]; } +function chooseIconSet(){ + DIcons = (useOldIcon) ? ["↓","↑","∑"] : ["🡳","🡱","Σ"] +} + function enable() { + button = new St.Bin({ + style_class: 'panel-button', + reactive: true, + can_focus: true, + x_fill: true, + y_fill: false, + x_expand: true, + y_expand: false, + track_hover: true + }); + + ioSpeed = new St.Label({ + text: '---', + y_align: Clutter.ActorAlign.CENTER, + style_class: 'forall' + }); + button.set_child(chooseLabel()); + button.connect('button-press-event', changeMode); + + chooseIconSet(); + Main.panel._rightBox.insert_child_at_index(button, 0); timeout = Mainloop.timeout_add_seconds(refreshTime, parseStat); } From 1de0925ae3155cef014d447adeff3a0ac853ecca Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Fri, 23 Oct 2020 16:24:13 +0000 Subject: [PATCH 126/344] Remove unwanted code --- schemas/gschemas.compiled | Bin 499 -> 403 bytes ...ll.extensions.netspeedsimplified.gschema.xml | 6 ------ 2 files changed, 6 deletions(-) diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index c32a0ac59fcfd3ddc012587b0c750ca532d6b6b4..1c2dfcc33762c2fcd03c9611746cbf05db5b59a9 100644 GIT binary patch delta 164 zcmey&Jehey2qVkHQ0saY1_)pTQp`XM;vcB3EI>h4hB5{LAngQVi!v~P#6fHZ z1|J3&AngOh2iKOdgM>hA4xsu7AYBZ^Ub|-1fW$#;7NB?qke&?0dIgCk86YEo+;m1` Yb_NC}Ad`9WNk%P}-29Z($@3Xy06qa99RL6T delta 279 zcmbQt{F!+|2&2u!Q0sa&228*N6k-A5%{mXJfoK~>1_myMG6oMI?F+=xJHt9b;vhCi zJOW6^0`Y;`I`02K0AjNO#WR5PEFkvUHLC`s9>it=iZ1}tyMdThlp&Y_qyfZXVDMqs z1EkLY@xira>>v#wHV06{4Iup)h)eR*({oaj^7C^*>NS!yGmFboi%K$+6F~w%zFt9M xNycO@MhpGi{FGFXA_j&c2nF^LgGQ!CrAB6^rluy)g$xWpGZ~mc@{>IowEzaNHShoc diff --git a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml index 269b8b2..e987d47 100644 --- a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml +++ b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml @@ -9,11 +9,5 @@ 0 - - false - - - false - From d0f64dc5fa388c746e1201646482264739f0a056 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Fri, 23 Oct 2020 16:46:44 +0000 Subject: [PATCH 127/344] Update README.md --- README.md | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 15747e7..b9863f5 100644 --- a/README.md +++ b/README.md @@ -22,9 +22,12 @@ - [x] Added space b/w speed and their units - [x] Human readable stylesheet // used minimum width and removed repetitive codes - [x] Used ES6 classes for less code and more efficent javascript -- [x] Right Click to toggle visibility of total data used //If you will Right click on 4th mode i.e. total speed mode then total speed counter will reset to 0 MB. +- [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. - [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode -- [x] Disabled Vertical Aligment for Dash to panel or Big Screen users, to enable this go to this [branch](https://github.com/prateekmedia/netspeedsimplified/tree/verticalalign) +- [x] Easy Vertical Aligment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuosly for four times to enable/disable vertical align *(If you have vertical align enabled then in mode 5 you will see " -v" written after total net speed)*, +***Tip : You can also change font size in vertical alignment to your liking by middle mouse click on the speed*** +- [x] Add Old Icons like original simplenetspeed extension, to enable this manually change ```useOldIcon``` value to false in `extension.js` located in `~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` + #### Todo : ***Nothing TODO*** @@ -40,16 +43,22 @@ if you face any **issues** you can **[open pull request](https://github.com/prat 1. Up & down speed in Bytes per second 1. Total of downloaded in Bytes (Right click to reset counter) -> **Right click to toggle total data usage visiblity, Right click on total data usage mode to reset counter** +> **Right click to toggle total data usage visiblity, Right click on total data usage mode in reset counter**

=====> To this

+> **Right click continuosly for 4 times to toggle vertical alignment, This can also be applied to 5th mode** + > **Middle click to change font size** * Installing the extension using terminal: - ...**Requirements : git** + - ***to install( reload required )( Requirements : git )*** + ```git clone --single-branch --branch main https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` + + *Or* - - ***to install*** - ```git clone --single-branch --branch main https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` + You can manually download the zip and paste its content in the folder + `~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` + [Create it, if its not their] - ***to load/reload extension*** Press ```Alt+F2``` then type ```r``` and ```hit enter```. @@ -57,8 +66,17 @@ if you face any **issues** you can **[open pull request](https://github.com/prat - ***to enable/disable/remove*** You can do that manually using extensions app or [website](https://extensions.gnome.org/local) or Using Gnome tweaks tool's extension tab - - ***to reinstall or update*** + - ***to reinstall or update( reload required )( Requirements : git )*** ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension && git clone --single-branch --branch main https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - - ***to remove( using Terminal )*** + *Or* + + First delete netspeedsimplified@prateekmedia.extension diretory by typing + `rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` + & then + You can manually download the latest zip and paste its content in the folder + `~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` + [Create it, if its not their] + + - ***to remove( using Terminal )( reload required )*** ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` From a9a9dd76d0effc334725be9ed96c8ef78e852c8f Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Fri, 23 Oct 2020 16:48:00 +0000 Subject: [PATCH 128/344] Fix typo --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b9863f5..ba55e93 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ if you face any **issues** you can **[open pull request](https://github.com/prat You can manually download the zip and paste its content in the folder `~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` - [Create it, if its not their] + [Create it, if its not there] - ***to load/reload extension*** Press ```Alt+F2``` then type ```r``` and ```hit enter```. @@ -76,7 +76,7 @@ if you face any **issues** you can **[open pull request](https://github.com/prat & then You can manually download the latest zip and paste its content in the folder `~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` - [Create it, if its not their] + [Create it, if its not there] - ***to remove( using Terminal )( reload required )*** ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` From 6ab85a5290385fa39bcbda9eeeed1fb9269040b6 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Fri, 23 Oct 2020 16:49:06 +0000 Subject: [PATCH 129/344] Fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ba55e93..0fede33 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ - [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode - [x] Easy Vertical Aligment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuosly for four times to enable/disable vertical align *(If you have vertical align enabled then in mode 5 you will see " -v" written after total net speed)*, ***Tip : You can also change font size in vertical alignment to your liking by middle mouse click on the speed*** -- [x] Add Old Icons like original simplenetspeed extension, to enable this manually change ```useOldIcon``` value to false in `extension.js` located in `~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` +- [x] Add Old Icons like original simplenetspeed extension, to enable this manually change ```useOldIcon``` value to `true` in `extension.js` located in `~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` #### Todo : From 861a80f6c2776df361809b13db0d34d40e2c2a96 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Fri, 23 Oct 2020 17:00:59 +0000 Subject: [PATCH 130/344] Add vertical align info --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index 794e952..9470fc0 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,6 @@ { "_generated": "Generated by SweetTooth, do not edit", - "description": "Fork of Simple Net speed by bijignome \n\nTested on gnome 3.36 and 3.38\n\nWhats New: Clean UI, Reduce refresh time, Fix repetitive code in stylesheet.css, Right Click to view total downloaded data in bits and bytes, new Sigma and Up and down Arrow, dynamic width, used kb/s instead of Kbps, added spaces where needed, If you don't have active net connection for 12 seconds then this extension will show '--' instead of 0 B/s and more coming\n\nLeft Click To change modes.\n\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up and down speed in bits per second\n4. Up and down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter\n\nRight Click To toggle visibility of Total Up and Down or Reset counter for 5th mode.\n\nMiddle Click to change font size.", + "description": "Fork of Simple Net speed by bijignome \n\nTested on gnome 3.36 and 3.38\n\nWhats New: Clean UI, Reduce refresh time, Fix repetitive code in stylesheet.css, Right Click to view total downloaded data in bits and bytes, new Sigma and Up and down Arrow, dynamic width, used kb/s instead of Kbps, added spaces where needed, If you don't have active net connection for 12 seconds then this extension will show '--' instead of 0 B/s, added vertical align support for dash to panel or big screen users(to use it just right click 4 time continuosly on any mode to toggle vertical align) and more coming\n\nLeft Click To change modes.\n\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up and down speed in bits per second\n4. Up and down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter\n\nRight Click To toggle visibility of Total Up and Down or Reset counter for 5th mode.\n\nRight Click four times to toggle Vertical alignment\n\nMiddle Click to change font size.", "name": "Net speed Simplified", "shell-version": [ "3.14", From 4ef3e58eeef0a94b4c67bdcceede49cb03cc7391 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Fri, 23 Oct 2020 17:14:03 +0000 Subject: [PATCH 131/344] Add backticks in some variables --- extension.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/extension.js b/extension.js index 3f7aaac..ce4e250 100644 --- a/extension.js +++ b/extension.js @@ -120,7 +120,7 @@ function parseStat() { let speed = (count - lastCount) / refreshTime; let speedUp = (countUp - lastCountUp) / refreshTime; let dot; - dot = (speed > lastSpeed) ? "⇅ " : "" + dot = (speed > lastSpeed) ? "⇅" : "" if (resetNextCount == true) { resetNextCount = false; resetCount = count; @@ -130,7 +130,7 @@ function parseStat() { var speedy = speedToString(count - resetCount, 1); function sped(exta = extRaw, spda = speedy){ return exta + spda; } function commonSigma(thr = true /*If true will return a result else will return empty string*/, isnewline = false){ - let sigma = DIcons[2]+" "; + let sigma = `${DIcons[2]} `; extRaw = " | " + sigma; if (thr && mode !=4){ if ((mode ==0 || mode ==1)){ @@ -150,8 +150,8 @@ function parseStat() { } (speed || speedUp) ? h = 0 : h++ if(h<=8){ - reuseable_text = (mode >= 0 && mode <= 1) ? dot + speedToString(speed) + commonSigma(togglebool) : - (mode >= 2 && mode <= 3) ? " "+DIcons[0]+" " + speedToString(speed - speedUp) +newLine+ " "+DIcons[1]+" " + speedToString(speedUp) +commonSigma(togglebool) : + reuseable_text = (mode >= 0 && mode <= 1) ? `${dot} ${speedToString(speed)} ${commonSigma(togglebool)}` : + (mode >= 2 && mode <= 3) ? `${DIcons[0]} ${speedToString(speed - speedUp)} ${newLine} ${DIcons[1]} ${speedToString(speedUp)} ${commonSigma(togglebool)}` : (mode == 4) ? commonSigma(): "Mode Unavailable" } else{ From 325c891214f48d1f576d48f0037a68f7c0cea242 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Fri, 23 Oct 2020 17:17:24 +0000 Subject: [PATCH 132/344] Update extension.js --- extension.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extension.js b/extension.js index ce4e250..2b870db 100644 --- a/extension.js +++ b/extension.js @@ -151,7 +151,7 @@ function parseStat() { (speed || speedUp) ? h = 0 : h++ if(h<=8){ reuseable_text = (mode >= 0 && mode <= 1) ? `${dot} ${speedToString(speed)} ${commonSigma(togglebool)}` : - (mode >= 2 && mode <= 3) ? `${DIcons[0]} ${speedToString(speed - speedUp)} ${newLine} ${DIcons[1]} ${speedToString(speedUp)} ${commonSigma(togglebool)}` : + (mode >= 2 && mode <= 3) ? `${DIcons[0]} ${speedToString(speed - speedUp)} ${newLine}${DIcons[1]} ${speedToString(speedUp)} ${commonSigma(togglebool)}` : (mode == 4) ? commonSigma(): "Mode Unavailable" } else{ From 6534ef6986be68ab25519a7e3b16bb596a9d6ac2 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 24 Oct 2020 08:39:38 +0000 Subject: [PATCH 133/344] Add Left Click 6 times to change icon style --- extension.js | 50 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 18 deletions(-) diff --git a/extension.js b/extension.js index 2b870db..7df3545 100644 --- a/extension.js +++ b/extension.js @@ -11,7 +11,8 @@ const Convenience = Me.imports.convenience; const PREFS_SCHEMA = 'org.gnome.shell.extensions.netspeedsimplified'; const refreshTime = 1.5; -const rCConst = 3; +const rCConst = 3; //Right Click 4 timees to change Vertical Alignment +const lCConst = 5; //Left Click 6 timees to change icon set let settings; let button, timeout; @@ -20,8 +21,8 @@ let lastCount = 0, lastSpeed = 0, lastCountUp = 0; let mode; // 0: kb/s 1: KB/s 2: U:kb/s D:kb/s 3: U:KB/s D:KB/s 4: Total KB let fontmode; let resetNextCount = false, resetCount = 0; -let togglebool, reuseable_text, h = 8, newLine, tTime=0, useOldIcon = false; -var extRaw, rClickCount =0, isVertical, DIcons = []; +let reuseable_text, h = 8, newLine, tTime=0, ltTime=0, useOldIcon = false; +var extRaw, rClickCount =0, lClickCount =0, isVertical = false, togglebool = false, DIcons = []; function init() { @@ -59,15 +60,17 @@ function changeMode(widget, event) { settings.set_int('mode', mode); button.set_child(chooseLabel(mode==4 ? true : false)); parseStat(); + lClickCount++; } log('mode:' + mode + ' font:' + fontmode); } function chooseLabel(addArg = false /*for mode 4*/) { - styleName = (mode == 0 || mode == 1 || mode == 4) ? 'sumall' : 'upanddown' + if (mode == 0 || mode == 1 || mode == 4) styleName = 'sumall'; + else if(!isVertical) styleName = 'upanddown'; let extraw = ''; (!isVertical) ? ((!addArg) ? (extraw = togglebool ? ' iwidth' : '') : null) : // Doesnt increase width on right click if mode==4 or if vertical is true - ((mode ==2 || mode ==3) && togglebool ? extraw = ' leftlign' : null) // if vertical is true and right click is also true in mode 2,3 then make them left align + ((mode ==2 || mode ==3) ? extraw = ' leftlign' : null) // if vertical is true in mode 2,3 then make them left align styleName = 'forall ' + styleName + extraw + ' size' styleName = fontmode > 0 ? styleName + '-' + fontmode : styleName @@ -84,17 +87,27 @@ function parseStat() { let count = 0; let countUp = 0; let line; - if (rClickCount != 0) tTime++; + if (rClickCount != 0) tTime++ + if (lClickCount != 0) ltTime++ + if (rClickCount>=rCConst){ + log("Changed Vertical Alignment."); + isVertical = !isVertical; + rClickCount =0; + } + if (lClickCount>=lCConst){ + log("Changed Icon set."); + useOldIcon = !useOldIcon; + chooseIconSet(); + lClickCount =0; + } if(tTime>rCConst){ tTime = 0; rClickCount = 0; } - if (rClickCount>=rCConst){ - isVertical = !isVertical; - rClickCount =0; + if(ltTime>lCConst){ + ltTime = 0; + lClickCount = 0; } - log("tTime : " + tTime); - log("rclickcounttttt " + rClickCount); while (line = dstream.read_line(null)) { line = String(line); line = line.trim(); @@ -134,17 +147,19 @@ function parseStat() { extRaw = " | " + sigma; if (thr && mode !=4){ if ((mode ==0 || mode ==1)){ - (isVertical) ? (extRaw = "\n") + sigma : null + (isVertical) ? (extRaw = "\n" + sigma) : null return (mode == 0) ? sped(extRaw, speedy.toLowerCase()) : sped(extRaw) } else if ((mode ==2 || mode ==3)) { - (isVertical) ? (extRaw = " " + sigma) + sigma : null + (isVertical) ? (extRaw = " " + sigma) : null return (mode == 2) ? sped(extRaw, speedy.toLowerCase()) : sped(extRaw) } else return ""; } else if (mode == 4){ - return (isVertical) ? sped(sigma) + " -v" : sped(sigma) + let toReturn = (isVertical) ? sped(sigma) + "\n -v" : sped(sigma); + toReturn = (useOldIcon) ? toReturn + " -o" : toReturn + return toReturn } else return ""; } @@ -173,9 +188,9 @@ function speedToString(amount, rMode = 0) { let digits; let speed_map; speed_map = ["B", "KB", "MB", "GB"].map( - (rMode==1) ? v => v : //KB + (rMode==1 || mode ==4) ? v => v : //KB (mode == 0 || mode == 2) ? v => v.toLowerCase() + "/s" : //kb/s - (mode == 1 || mode == 3) ? v => v + "/s" : v=>v) //KB/s + (mode == 1 || mode == 3) ? v => v + "/s" : v=>v) //KB/s, KB if (amount === 0) return "0 " + speed_map[0]; if (mode==0 || mode==2) amount = amount * 8; @@ -217,9 +232,8 @@ function enable() { }); button.set_child(chooseLabel()); button.connect('button-press-event', changeMode); - chooseIconSet(); - + Main.panel._rightBox.insert_child_at_index(button, 0); timeout = Mainloop.timeout_add_seconds(refreshTime, parseStat); } From 6c76d358c02fca5409c782c1725e1508a1c43603 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 24 Oct 2020 08:47:45 +0000 Subject: [PATCH 134/344] Update Readme --- README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 0fede33..6b51219 100644 --- a/README.md +++ b/README.md @@ -24,10 +24,11 @@ - [x] Used ES6 classes for less code and more efficent javascript - [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. - [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode -- [x] Easy Vertical Aligment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuosly for four times to enable/disable vertical align *(If you have vertical align enabled then in mode 5 you will see " -v" written after total net speed)*, +- [x] Easy Vertical Aligment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuosly for four times to enable/disable vertical align, to make vertical Alignment default then manually change ```isVertical``` value to `true` in `extension.js` located in `~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` +*(If you have vertical align enabled then in mode 5 you will see " -v" written after total net speed)*, ***Tip : You can also change font size in vertical alignment to your liking by middle mouse click on the speed*** -- [x] Add Old Icons like original simplenetspeed extension, to enable this manually change ```useOldIcon``` value to `true` in `extension.js` located in `~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` - +- [x] Easy Switch to Old Icons from simplenetspeed extension, to enable this Left Click continuosly for six or seven times to enable/disable old icons, to make old icons default then manually change ```useOldIcon``` value to `true` in `extension.js` located in `~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` +*(If you have old icons enabled then in mode 5 you will see " -o" written after total net speed)*, #### Todo : ***Nothing TODO*** @@ -35,6 +36,7 @@ if you face any **issues** you can **[open pull request](https://github.com/prateekmedia/netspeedsimplified/pulls)** and can type your issue with images or error codes > **Left click to change modes** +> **Left click continuosly for 6/7 times to toggle old icons like simplenetspeed extension, You will se "-o" written in 5th mode after total download data if this is enabled** *Modes available:* 1. Total net speed in bits per second @@ -46,7 +48,7 @@ if you face any **issues** you can **[open pull request](https://github.com/prat > **Right click to toggle total data usage visiblity, Right click on total data usage mode in reset counter**

=====> To this

-> **Right click continuosly for 4 times to toggle vertical alignment, This can also be applied to 5th mode** +> **Right click continuosly for 4 times in any mode to toggle vertical alignment, You will se "-v" written in 5th mode after total download data if this is enabled** > **Middle click to change font size** From d6c32ea255fdd17e27c0a3d586e87319ad977725 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 24 Oct 2020 08:51:12 +0000 Subject: [PATCH 135/344] Update Changelog Format --- README.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 6b51219..5b58a89 100644 --- a/README.md +++ b/README.md @@ -22,13 +22,15 @@ - [x] Added space b/w speed and their units - [x] Human readable stylesheet // used minimum width and removed repetitive codes - [x] Used ES6 classes for less code and more efficent javascript -- [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. -- [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode -- [x] Easy Vertical Aligment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuosly for four times to enable/disable vertical align, to make vertical Alignment default then manually change ```isVertical``` value to `true` in `extension.js` located in `~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` -*(If you have vertical align enabled then in mode 5 you will see " -v" written after total net speed)*, -***Tip : You can also change font size in vertical alignment to your liking by middle mouse click on the speed*** +- [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. + +#### Changelog for October Month : +- [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode +- [x] Easy Vertical Aligment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuosly for four times to enable/disable vertical align, to make vertical Alignment default then manually change ```isVertical``` value to `true` in `extension.js` located in `~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` +*(If you have vertical align enabled then in mode 5 you will see " -v" written after total net speed)* +***Tip : You can also change font size in vertical alignment to your liking by middle mouse click on the speed*** - [x] Easy Switch to Old Icons from simplenetspeed extension, to enable this Left Click continuosly for six or seven times to enable/disable old icons, to make old icons default then manually change ```useOldIcon``` value to `true` in `extension.js` located in `~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` -*(If you have old icons enabled then in mode 5 you will see " -o" written after total net speed)*, +*(If you have old icons enabled then in mode 5 you will see " -o" written after total net speed)* #### Todo : ***Nothing TODO*** From a5c78bde38d5c1d4f6d8549d99d349b9a8d8bdd4 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 24 Oct 2020 14:37:04 +0530 Subject: [PATCH 136/344] Add Old icons Featurre --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index 9470fc0..3fba991 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,6 @@ { "_generated": "Generated by SweetTooth, do not edit", - "description": "Fork of Simple Net speed by bijignome \n\nTested on gnome 3.36 and 3.38\n\nWhats New: Clean UI, Reduce refresh time, Fix repetitive code in stylesheet.css, Right Click to view total downloaded data in bits and bytes, new Sigma and Up and down Arrow, dynamic width, used kb/s instead of Kbps, added spaces where needed, If you don't have active net connection for 12 seconds then this extension will show '--' instead of 0 B/s, added vertical align support for dash to panel or big screen users(to use it just right click 4 time continuosly on any mode to toggle vertical align) and more coming\n\nLeft Click To change modes.\n\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up and down speed in bits per second\n4. Up and down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter\n\nRight Click To toggle visibility of Total Up and Down or Reset counter for 5th mode.\n\nRight Click four times to toggle Vertical alignment\n\nMiddle Click to change font size.", + "description": "Fork of Simple Net speed by bijignome \n\nTested on gnome 3.36 and 3.38\n\nWhats New: Clean UI, Reduce refresh time, Fix repetitive code in stylesheet.css, Right Click to view total downloaded data in bits and bytes, Lesser Code Better Code, new Sigma and Up and down Arrow icons, dynamic width, used kb/s instead of Kbps, added spaces where needed, If you don't have active net connection for 12 seconds then this extension will show '--' instead of 0 B/s, added vertical align support for dash to panel or big screen users(to use it just right click 4 time continuosly on any mode to toggle vertical align), added old icons from simplenetspeed extension(to use it left click 6/7 times continuosly to toggle old icons) and more coming\n\nLeft Click To change modes.\n\nLeft Click six times continuosly to toggle Old Icons\n\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up and down speed in bits per second\n4. Up and down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter\n\nRight Click To toggle visibility of Total Up and Down or Reset counter for 5th mode.\n\nRight Click four times continuosly to toggle Vertical alignment\n\nMiddle Click to change font size.", "name": "Net speed Simplified", "shell-version": [ "3.14", From 77f540a18a772f97c8914742dc749ae28fb9bbeb Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 24 Oct 2020 14:52:00 +0530 Subject: [PATCH 137/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5b58a89..08b3240 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ - [x] Used ES6 classes for less code and more efficent javascript - [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. -#### Changelog for October Month : +#### Changelog for New Version : - [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode - [x] Easy Vertical Aligment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuosly for four times to enable/disable vertical align, to make vertical Alignment default then manually change ```isVertical``` value to `true` in `extension.js` located in `~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` *(If you have vertical align enabled then in mode 5 you will see " -v" written after total net speed)* From 43a22751f28ac5b2bce8a786505e9b6dd5744897 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 24 Oct 2020 15:58:25 +0530 Subject: [PATCH 138/344] Remove unnecessary code --- extension.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extension.js b/extension.js index 7df3545..0d35141 100644 --- a/extension.js +++ b/extension.js @@ -142,7 +142,7 @@ function parseStat() { newLine = (isVertical && (mode ==2 || mode ==3)) ? "\n" : ""; var speedy = speedToString(count - resetCount, 1); function sped(exta = extRaw, spda = speedy){ return exta + spda; } - function commonSigma(thr = true /*If true will return a result else will return empty string*/, isnewline = false){ + function commonSigma(thr = true /*If true will return a result else will return empty string*/){ let sigma = `${DIcons[2]} `; extRaw = " | " + sigma; if (thr && mode !=4){ @@ -171,7 +171,7 @@ function parseStat() { } else{ ioSpeed.set_style_class_name("forall"); - if (mode !=4) reuseable_text = "--".repeat(mode+1) + newLine + commonSigma(togglebool, true); + if (mode !=4) reuseable_text = "--".repeat(mode+1) + newLine + commonSigma(togglebool); else reuseable_text = commonSigma(togglebool); } ioSpeed.set_text(reuseable_text); From dd4ff1df6a61c209202e67871bd3a1e334ef2398 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 24 Oct 2020 16:08:28 +0530 Subject: [PATCH 139/344] Update metadata.json --- metadata.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/metadata.json b/metadata.json index 3fba991..ca90387 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,5 @@ { - "_generated": "Generated by SweetTooth, do not edit", - "description": "Fork of Simple Net speed by bijignome \n\nTested on gnome 3.36 and 3.38\n\nWhats New: Clean UI, Reduce refresh time, Fix repetitive code in stylesheet.css, Right Click to view total downloaded data in bits and bytes, Lesser Code Better Code, new Sigma and Up and down Arrow icons, dynamic width, used kb/s instead of Kbps, added spaces where needed, If you don't have active net connection for 12 seconds then this extension will show '--' instead of 0 B/s, added vertical align support for dash to panel or big screen users(to use it just right click 4 time continuosly on any mode to toggle vertical align), added old icons from simplenetspeed extension(to use it left click 6/7 times continuosly to toggle old icons) and more coming\n\nLeft Click To change modes.\n\nLeft Click six times continuosly to toggle Old Icons\n\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up and down speed in bits per second\n4. Up and down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter\n\nRight Click To toggle visibility of Total Up and Down or Reset counter for 5th mode.\n\nRight Click four times continuosly to toggle Vertical alignment\n\nMiddle Click to change font size.", + "description": "Fork of Simple Net speed by bijignome \n\nTested on gnome 3.36 and 3.38\n\nWhats New:\n Clean UI, Reduce refresh time, Fix repetitive code in stylesheet.css, \nRight Click to view total downloaded data in bits and bytes, Lesser Code Better Code,\n new Sigma and Up and down Arrow icons, dynamic width,\n used kb/s instead of Kbps, added spaces where needed,\n If you don't have active net connection for 12 seconds then this extension will show '--' instead of 0 B/s,\n Added vertical align support for dash to panel or big screen users(to use it just right click 4 time continuously on any mode to toggle vertical align), \nAdded old icons from simplenetspeed extension(to use it left click 6/7 times continuously to toggle old icons) and more coming\n\nLeft Click To change modes.\n\nLeft Click six times continuously to toggle Old Icons\n\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up and down speed in bits per second\n4. Up and down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter\n\nRight Click To toggle visibility of Total Up and Down or Reset counter for 5th mode.\n\nRight Click four times continuously to toggle Vertical alignment\n\nMiddle Click to change font size.", "name": "Net speed Simplified", "shell-version": [ "3.14", From c8b17478d85107522df13e67df50a3466d9b354b Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 24 Oct 2020 21:04:25 +0530 Subject: [PATCH 140/344] Code Improvements --- extension.js | 99 +++++++++++++++++++++++++++------------------------- 1 file changed, 52 insertions(+), 47 deletions(-) diff --git a/extension.js b/extension.js index 0d35141..7ac9c64 100644 --- a/extension.js +++ b/extension.js @@ -9,20 +9,21 @@ const Me = ExtensionUtils.getCurrentExtension(); const Convenience = Me.imports.convenience; const PREFS_SCHEMA = 'org.gnome.shell.extensions.netspeedsimplified'; -const refreshTime = 1.5; +const refreshTime=1.5; -const rCConst = 3; //Right Click 4 timees to change Vertical Alignment -const lCConst = 5; //Left Click 6 timees to change icon set +const rCConst=3; //Right Click 4 timees to change Vertical Alignment +const lCConst=5; //Left Click 6 timees to change icon set -let settings; -let button, timeout; -let ioSpeed; -let lastCount = 0, lastSpeed = 0, lastCountUp = 0; -let mode; // 0: kb/s 1: KB/s 2: U:kb/s D:kb/s 3: U:KB/s D:KB/s 4: Total KB -let fontmode; -let resetNextCount = false, resetCount = 0; -let reuseable_text, h = 8, newLine, tTime=0, ltTime=0, useOldIcon = false; -var extRaw, rClickCount =0, lClickCount =0, isVertical = false, togglebool = false, DIcons = []; +let settings, + button, timeout, + ioSpeed, + lastCount = 0, lastSpeed = 0, lastCountUp = 0, + mode, // 0: kb/s 1: KB/s 2: U:kb/s D:kb/s 3: U:KB/s D:KB/s 4: Total KB + fontmode, + resetNextCount=false, resetCount=0, + reuseable_text, newLine, h=8, tTime=0, ltTime=0, useOldIcon=false; + +var extRaw, rClickCount=0, lClickCount=0, isVertical=false, togglebool=false, DIcons=[]; function init() { @@ -87,26 +88,30 @@ function parseStat() { let count = 0; let countUp = 0; let line; - if (rClickCount != 0) tTime++ - if (lClickCount != 0) ltTime++ - if (rClickCount>=rCConst){ - log("Changed Vertical Alignment."); - isVertical = !isVertical; - rClickCount =0; - } - if (lClickCount>=lCConst){ - log("Changed Icon set."); - useOldIcon = !useOldIcon; - chooseIconSet(); - lClickCount =0; - } - if(tTime>rCConst){ - tTime = 0; - rClickCount = 0; + if (rClickCount != 0){ + tTime++; + if (rClickCount>=rCConst){ + log("Changed Vertical Alignment."); + isVertical = !isVertical; + rClickCount =0; + } + if(tTime>rCConst){ + tTime = 0; + rClickCount = 0; + } } - if(ltTime>lCConst){ - ltTime = 0; - lClickCount = 0; + if (lClickCount != 0) { + ltTime++; + if (lClickCount>=lCConst){ + log("Changed Icon set."); + useOldIcon = !useOldIcon; + chooseIconSet(); + lClickCount =0; + } + if(ltTime>lCConst){ + ltTime = 0; + lClickCount = 0; + } } while (line = dstream.read_line(null)) { line = String(line); @@ -130,9 +135,9 @@ function parseStat() { if (lastCount === 0) lastCount = count; if (lastCountUp === 0) lastCountUp = countUp; - let speed = (count - lastCount) / refreshTime; - let speedUp = (countUp - lastCountUp) / refreshTime; - let dot; + let speed = (count - lastCount) / refreshTime, + speedUp = (countUp - lastCountUp) / refreshTime, + dot; dot = (speed > lastSpeed) ? "⇅" : "" if (resetNextCount == true) { resetNextCount = false; @@ -146,20 +151,20 @@ function parseStat() { let sigma = `${DIcons[2]} `; extRaw = " | " + sigma; if (thr && mode !=4){ - if ((mode ==0 || mode ==1)){ - (isVertical) ? (extRaw = "\n" + sigma) : null - return (mode == 0) ? sped(extRaw, speedy.toLowerCase()) : sped(extRaw) - } - else if ((mode ==2 || mode ==3)) { - (isVertical) ? (extRaw = " " + sigma) : null - return (mode == 2) ? sped(extRaw, speedy.toLowerCase()) : sped(extRaw) - } - else return ""; - } + if ((mode ==0 || mode ==1)){ + (isVertical) ? (extRaw = "\n" + sigma) : null + return (mode == 0) ? sped(extRaw, speedy.toLowerCase()) : sped(extRaw) + } + else if ((mode ==2 || mode ==3)) { + (isVertical) ? (extRaw = " " + sigma) : null + return (mode == 2) ? sped(extRaw, speedy.toLowerCase()) : sped(extRaw) + } + else return ""; + } else if (mode == 4){ let toReturn = (isVertical) ? sped(sigma) + "\n -v" : sped(sigma); toReturn = (useOldIcon) ? toReturn + " -o" : toReturn - return toReturn + return toReturn; } else return ""; } @@ -185,8 +190,8 @@ function parseStat() { } function speedToString(amount, rMode = 0) { - let digits; - let speed_map; + let digits, + speed_map; speed_map = ["B", "KB", "MB", "GB"].map( (rMode==1 || mode ==4) ? v => v : //KB (mode == 0 || mode == 2) ? v => v.toLowerCase() + "/s" : //kb/s From 34c613d7a6fc2a180f1c5774d13b6f30a42309e8 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 24 Oct 2020 21:13:24 +0530 Subject: [PATCH 141/344] Update README.md --- README.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 08b3240..aabab83 100644 --- a/README.md +++ b/README.md @@ -22,14 +22,17 @@ - [x] Added space b/w speed and their units - [x] Human readable stylesheet // used minimum width and removed repetitive codes - [x] Used ES6 classes for less code and more efficent javascript -- [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. +- [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. If you want to always show sigma by default then paste below command in terminal +`sed -i 's togglebool=false togglebool=true ' ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension/extension.js` #### Changelog for New Version : - [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode -- [x] Easy Vertical Aligment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuosly for four times to enable/disable vertical align, to make vertical Alignment default then manually change ```isVertical``` value to `true` in `extension.js` located in `~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` +- [x] Easy Vertical Aligment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuosly for four times to enable/disable vertical align, to make vertical Alignment default then type +`sed -i 's isVertical=false isVertical=true ' ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension/extension.js` *(If you have vertical align enabled then in mode 5 you will see " -v" written after total net speed)* ***Tip : You can also change font size in vertical alignment to your liking by middle mouse click on the speed*** -- [x] Easy Switch to Old Icons from simplenetspeed extension, to enable this Left Click continuosly for six or seven times to enable/disable old icons, to make old icons default then manually change ```useOldIcon``` value to `true` in `extension.js` located in `~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` +- [x] Easy Switch to Old Icons from simplenetspeed extension, to enable this Left Click continuosly for six or seven times to enable/disable old icons, to make old icons default then type +`sed -i 's useOldIcon=false useOldIcon=true ' ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension/extension.js` *(If you have old icons enabled then in mode 5 you will see " -o" written after total net speed)* #### Todo : From 46ab3818b603d3a688c5d8d743438701b3e04931 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 24 Oct 2020 21:56:09 +0530 Subject: [PATCH 142/344] Add disclaimer --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index aabab83..c7e5bbd 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ - [x] Added space b/w speed and their units - [x] Human readable stylesheet // used minimum width and removed repetitive codes - [x] Used ES6 classes for less code and more efficent javascript -- [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. If you want to always show sigma by default then paste below command in terminal +- [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. If you want to always show sigma by default then paste below command in terminal (Disclaimer: the specific below code may break your extension, if it happens then reinstall it) `sed -i 's togglebool=false togglebool=true ' ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension/extension.js` #### Changelog for New Version : @@ -33,7 +33,9 @@ ***Tip : You can also change font size in vertical alignment to your liking by middle mouse click on the speed*** - [x] Easy Switch to Old Icons from simplenetspeed extension, to enable this Left Click continuosly for six or seven times to enable/disable old icons, to make old icons default then type `sed -i 's useOldIcon=false useOldIcon=true ' ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension/extension.js` -*(If you have old icons enabled then in mode 5 you will see " -o" written after total net speed)* +*(If you have old icons enabled then in mode 5 you will see " -o" written after total net speed)* + +**To Revert Back any changes made using sed -i command then replace false with true and true with false in orignal command, like the above command will become** `sed -i 's useOldIcon=true useOldIcon=false ...` , if this doesn't work then reinstall the extension. #### Todo : ***Nothing TODO*** From 81f0c6a1505cf47f2358f0302cd877f8b0fe820e Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 24 Oct 2020 21:57:20 +0530 Subject: [PATCH 143/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c7e5bbd..6c4f03c 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ `sed -i 's useOldIcon=false useOldIcon=true ' ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension/extension.js` *(If you have old icons enabled then in mode 5 you will see " -o" written after total net speed)* -**To Revert Back any changes made using sed -i command then replace false with true and true with false in orignal command, like the above command will become** `sed -i 's useOldIcon=true useOldIcon=false ...` , if this doesn't work then reinstall the extension. +**To Revert Back any changes made using sed -i command then replace false with true and true with false in orignal command, like the above command will become** `sed -i 's useOldIcon=true useOldIcon=false ...` , ***if this doesn't work then reinstall the extension.*** #### Todo : ***Nothing TODO*** From f33da4f53e4cca826d40196394408082abcfe66e Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 24 Oct 2020 21:59:06 +0530 Subject: [PATCH 144/344] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6c4f03c..bf0bb97 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,8 @@ - [x] Added space b/w speed and their units - [x] Human readable stylesheet // used minimum width and removed repetitive codes - [x] Used ES6 classes for less code and more efficent javascript -- [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. If you want to always show sigma by default then paste below command in terminal (Disclaimer: the specific below code may break your extension, if it happens then reinstall it) +- [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. +If you want to always show total data used by default then paste below command in terminal (Disclaimer: The code below may break your extension, if it happens then reinstall it) `sed -i 's togglebool=false togglebool=true ' ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension/extension.js` #### Changelog for New Version : From ae47a8f04543944022002f84fc345078b0e503d1 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 26 Oct 2020 07:46:45 +0530 Subject: [PATCH 145/344] Add icon --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bf0bb97..eb2be72 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +

Net speed Simplified

Gnome extension to show network speed
@@ -5,7 +6,7 @@ > Website Link : [prateekmedia.io/netspeedsimplified](https://prateekmedia.github.io/netspeedsimplified/) -> Forked from : [biji/simplenetspeed](https://github.com/biji/simplenetspeed) +> Forked from : [biji.gnome/simplenetspeed](https://github.com/biji/simplenetspeed)

*Screenshots*

@@ -30,7 +31,7 @@ If you want to always show total data used by default then paste below command i - [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode - [x] Easy Vertical Aligment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuosly for four times to enable/disable vertical align, to make vertical Alignment default then type `sed -i 's isVertical=false isVertical=true ' ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension/extension.js` -*(If you have vertical align enabled then in mode 5 you will see " -v" written after total net speed)* +*(If you have vertical align enabled then in mode 5 you will see " -v" written after total net speed)*, ***Tip : You can also change font size in vertical alignment to your liking by middle mouse click on the speed*** - [x] Easy Switch to Old Icons from simplenetspeed extension, to enable this Left Click continuosly for six or seven times to enable/disable old icons, to make old icons default then type `sed -i 's useOldIcon=false useOldIcon=true ' ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension/extension.js` From eb9a009ba98ddd7509558f556a23ea9e56c0360f Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 26 Oct 2020 10:36:30 +0530 Subject: [PATCH 146/344] Update icon Link --- README.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index eb2be72..1fda9ac 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,7 @@ -

+

Net speed Simplified

Gnome extension to show network speed
-> Gnome Extensions Link : [extensions.gnome/netspeedsimplified](https://extensions.gnome.org/review/20012) - > Website Link : [prateekmedia.io/netspeedsimplified](https://prateekmedia.github.io/netspeedsimplified/) > Forked from : [biji.gnome/simplenetspeed](https://github.com/biji/simplenetspeed) @@ -44,7 +42,8 @@ If you want to always show total data used by default then paste below command i if you face any **issues** you can **[open pull request](https://github.com/prateekmedia/netspeedsimplified/pulls)** and can type your issue with images or error codes -> **Left click to change modes** +> **Left click to change modes**, + > **Left click continuosly for 6/7 times to toggle old icons like simplenetspeed extension, You will se "-o" written in 5th mode after total download data if this is enabled** *Modes available:* @@ -54,14 +53,16 @@ if you face any **issues** you can **[open pull request](https://github.com/prat 1. Up & down speed in Bytes per second 1. Total of downloaded in Bytes (Right click to reset counter) -> **Right click to toggle total data usage visiblity, Right click on total data usage mode in reset counter** +> **Right click to toggle total data usage visiblity, Right click on total data usage mode in reset counter**,

=====> To this

> **Right click continuosly for 4 times in any mode to toggle vertical alignment, You will se "-v" written in 5th mode after total download data if this is enabled** > **Middle click to change font size** -* Installing the extension using terminal: +

Installing the extension using terminal:

+ +* Please Mark this as Watch if you want to know about the updates - ***to install( reload required )( Requirements : git )*** ```git clone --single-branch --branch main https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` From a89f3cc8cab24e9cd47842fcfa43f5a3ae722dd0 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 26 Oct 2020 10:47:31 +0530 Subject: [PATCH 147/344] Add Png icon --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1fda9ac..6ef26a7 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -

+

Net speed Simplified

Gnome extension to show network speed
From f80a11157d9f9b864c1d978c2fcefd53094907a9 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 26 Oct 2020 12:23:21 +0530 Subject: [PATCH 148/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6ef26a7..3557d35 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ if you face any **issues** you can **[open pull request](https://github.com/prat

Installing the extension using terminal:

-* Please Mark this as Watch if you want to know about the updates +* Please Mark this extension page as Watch if you want to know about the updates - ***to install( reload required )( Requirements : git )*** ```git clone --single-branch --branch main https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` From d56a76c9986935dadd2bd6d64e34388644fea66d Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 27 Oct 2020 10:37:10 +0530 Subject: [PATCH 149/344] Update Screenshot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3557d35..4c0f164 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ > Forked from : [biji.gnome/simplenetspeed](https://github.com/biji/simplenetspeed) -

*Screenshots*

+

Screenshot *Screenshots*

***Tested on GNOME 3.36 and 3.38*** From c4f233fa8fcda1122f906f32946dc00b7d1555bb Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 28 Oct 2020 15:15:31 +0530 Subject: [PATCH 150/344] Update Direct Install URL --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4c0f164..e0660b0 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -

+

Net speed Simplified

Gnome extension to show network speed
From d41f17042ca2b05097da8056c1e6710618be1c83 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 28 Oct 2020 15:18:34 +0530 Subject: [PATCH 151/344] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e0660b0..a0d58c4 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,9 @@

Net speed Simplified

Gnome extension to show network speed
-> Website Link : [prateekmedia.io/netspeedsimplified](https://prateekmedia.github.io/netspeedsimplified/) +> GNOME Extensions Link : [prateeksu.gnome/netspeedsimplified](https://extensions.gnome.org/extension/3724/net-speed-simplified/) + +> Web Link : [prateekmedia.github/netspeedsimplified](https://prateekmedia.github.io/netspeedsimplified) > Forked from : [biji.gnome/simplenetspeed](https://github.com/biji/simplenetspeed) From 0ea853130235caa1efee798ee4477d6d690db8e7 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Fri, 30 Oct 2020 17:13:04 +0530 Subject: [PATCH 152/344] Add Preference Dialog --- extension.js | 78 +++++----- lib.js | 35 +++++ prefs.js | 143 ++++++++++++++++++ schemas/gschemas.compiled | Bin 403 -> 557 bytes ....extensions.netspeedsimplified.gschema.xml | 9 ++ 5 files changed, 228 insertions(+), 37 deletions(-) create mode 100644 lib.js create mode 100644 prefs.js diff --git a/extension.js b/extension.js index 7ac9c64..b0b0806 100644 --- a/extension.js +++ b/extension.js @@ -16,14 +16,14 @@ const lCConst=5; //Left Click 6 timees to change icon set let settings, button, timeout, - ioSpeed, + ioSpeed, spaCe, lastCount = 0, lastSpeed = 0, lastCountUp = 0, mode, // 0: kb/s 1: KB/s 2: U:kb/s D:kb/s 3: U:KB/s D:KB/s 4: Total KB fontmode, resetNextCount=false, resetCount=0, - reuseable_text, newLine, h=8, tTime=0, ltTime=0, useOldIcon=false; + reuseable_text, newLine, h=8, tTime=0, ltTime=0, useOldIcon; -var extRaw, rClickCount=0, lClickCount=0, isVertical=false, togglebool=false, DIcons=[]; +var extRaw, rClickCount=0, lClickCount=0, isVertical, togglebool, DIcons=[]; function init() { @@ -31,50 +31,49 @@ function init() { mode = settings.get_int('mode'); // default mode using bit (b/s, kb/s) fontmode = settings.get_int('fontmode'); + togglebool = settings.get_boolean('togglebool'); + isVertical = settings.get_boolean('isvertical'); + useOldIcon = settings.get_boolean('useoldicon'); } function changeMode(widget, event) { // log(event.get_button()); if (event.get_button() == 3) { - if (mode ==4 ){// right click: reset downloaded sum - resetNextCount = true; - parseStat();} - else {//right click on other modes; brings total downloaded sum + if (mode ==4 ) resetNextCount = true; // right click: reset downloaded sum + else {//right click on other modes brings total downloaded sum togglebool = !togglebool; ioSpeed.set_text("Loading Info..."); - button.set_child(chooseLabel()); - parseStat(); } - rClickCount++; + parseStat(); + rClickCount++; } else if (event.get_button() == 2) { // change font fontmode++; if (fontmode > 4) fontmode=0; settings.set_int('fontmode', fontmode); - button.set_child(chooseLabel()); parseStat(); } else if (event.get_button() == 1) { mode++; if (mode > 4) mode = 0; settings.set_int('mode', mode); - button.set_child(chooseLabel(mode==4 ? true : false)); parseStat(); - lClickCount++; + button.set_child(chooseLabel(mode==4 ? true : false)); + lClickCount++; } log('mode:' + mode + ' font:' + fontmode); } function chooseLabel(addArg = false /*for mode 4*/) { + log('mode:' + mode + ' font:' + fontmode); if (mode == 0 || mode == 1 || mode == 4) styleName = 'sumall'; else if(!isVertical) styleName = 'upanddown'; let extraw = ''; (!isVertical) ? ((!addArg) ? (extraw = togglebool ? ' iwidth' : '') : null) : // Doesnt increase width on right click if mode==4 or if vertical is true ((mode ==2 || mode ==3) ? extraw = ' leftlign' : null) // if vertical is true in mode 2,3 then make them left align styleName = 'forall ' + styleName + extraw + ' size' - styleName = fontmode > 0 ? styleName + '-' + fontmode : styleName - + styleName = fontmode > 0 ? styleName + '-' + fontmode : styleName ioSpeed.set_style_class_name(styleName); return ioSpeed; } @@ -152,37 +151,38 @@ function parseStat() { extRaw = " | " + sigma; if (thr && mode !=4){ if ((mode ==0 || mode ==1)){ - (isVertical) ? (extRaw = "\n" + sigma) : null - return (mode == 0) ? sped(extRaw, speedy.toLowerCase()) : sped(extRaw) - } + (isVertical) ? (extRaw = "\n" + sigma) : null + return (mode == 0) ? sped(extRaw, speedy.toLowerCase()) : sped(extRaw) + } else if ((mode ==2 || mode ==3)) { - (isVertical) ? (extRaw = " " + sigma) : null - return (mode == 2) ? sped(extRaw, speedy.toLowerCase()) : sped(extRaw) - } + (isVertical) ? (extRaw = " " + sigma) : null + return (mode == 2) ? sped(extRaw, speedy.toLowerCase()) : sped(extRaw) + } else return ""; - } + } else if (mode == 4){ let toReturn = (isVertical) ? sped(sigma) + "\n -v" : sped(sigma); toReturn = (useOldIcon) ? toReturn + " -o" : toReturn - return toReturn; + return toReturn; } else return ""; - } - (speed || speedUp) ? h = 0 : h++ - if(h<=8){ - reuseable_text = (mode >= 0 && mode <= 1) ? `${dot} ${speedToString(speed)} ${commonSigma(togglebool)}` : - (mode >= 2 && mode <= 3) ? `${DIcons[0]} ${speedToString(speed - speedUp)} ${newLine}${DIcons[1]} ${speedToString(speedUp)} ${commonSigma(togglebool)}` : - (mode == 4) ? commonSigma(): "Mode Unavailable" - } - else{ - ioSpeed.set_style_class_name("forall"); - if (mode !=4) reuseable_text = "--".repeat(mode+1) + newLine + commonSigma(togglebool); - else reuseable_text = commonSigma(togglebool); + } + if (useOldIcon) spaCe = "" ; + else spaCe = " "; + (speed || speedUp) ? h = 0 : h++ + if(h<=8){ + reuseable_text = (mode >= 0 && mode <= 1) ? `${dot} ${speedToString(speed)} ${commonSigma(togglebool)}` : + (mode >= 2 && mode <= 3) ? `${DIcons[0]} ${spaCe}${speedToString(speed - speedUp)} ${newLine}${DIcons[1]} ${spaCe}${speedToString(speedUp)} ${commonSigma(togglebool)}` : + (mode == 4) ? commonSigma(): "Mode Unavailable" } - ioSpeed.set_text(reuseable_text); + else{ + reuseable_text = (mode !=4) ? "--".repeat(mode+1) + newLine + commonSigma(togglebool) : commonSigma(togglebool) + } + ioSpeed.set_text(reuseable_text); lastCount = count; lastCountUp = countUp; lastSpeed = speed; + button.set_child(chooseLabel()); } catch (e) { ioSpeed.set_text(e.message); } @@ -215,7 +215,7 @@ function speedToString(amount, rMode = 0) { } function chooseIconSet(){ - DIcons = (useOldIcon) ? ["↓","↑","∑"] : ["🡳","🡱","Σ"] + DIcons = (useOldIcon) ? ["↓","↑","∑"] : ["🡳","🡱","Σ"]; } function enable() { @@ -235,8 +235,12 @@ function enable() { y_align: Clutter.ActorAlign.CENTER, style_class: 'forall' }); - button.set_child(chooseLabel()); + /*styleName = 'forall size' + styleName = fontmode > 0 ? styleName + '-' + fontmode : styleName + ioSpeed.set_style_class_name(styleName);*/ button.connect('button-press-event', changeMode); + button.set_child(chooseLabel()); + chooseIconSet(); Main.panel._rightBox.insert_child_at_index(button, 0); diff --git a/lib.js b/lib.js new file mode 100644 index 0000000..3c75883 --- /dev/null +++ b/lib.js @@ -0,0 +1,35 @@ +const Gio = imports.gi.Gio; +const Extension = imports.misc.extensionUtils.getCurrentExtension(); + +function Settings(schema) +{ + this.init(schema); +} + +Settings.prototype = +{ + schema: null, + + init: function(schema) + { + this.schema = schema; + }, + + getSettings: function() + { + const GioSSS = Gio.SettingsSchemaSource; + + let schemaDir = Extension.dir.get_child('schemas'); + let schemaSource; + if (schemaDir.query_exists(null)) + schemaSource = GioSSS.new_from_directory(schemaDir.get_path(), GioSSS.get_default(), false); + else + schemaSource = GioSSS.get_default(); + + let schemaObj = schemaSource.lookup(this.schema, true); + if (! schemaObj) + throw new Error('Schema ' + this.schema + ' could not be found for extension ' + Extension.metadata.uuid + '. Please check your installation.'); + + return new Gio.Settings({settings_schema: schemaObj}) + } +} diff --git a/prefs.js b/prefs.js new file mode 100644 index 0000000..dc2d41b --- /dev/null +++ b/prefs.js @@ -0,0 +1,143 @@ +const Gtk = imports.gi.Gtk; +const Lang = imports.lang; + +const Extension = imports.misc.extensionUtils.getCurrentExtension(); +const Lib = Extension.imports.lib; + +const schema = "org.gnome.shell.extensions.netspeedsimplified"; + +function init() +{ +} + +function buildPrefsWidget() +{ + let prefs = new Prefs(schema); + + return prefs.buildPrefsWidget(); +} + +function Prefs(schema) +{ + this.init(schema); +} + +Prefs.prototype = +{ + settings: null, + + init: function(schema) + { + let settings = new Lib.Settings(schema); + + this.settings = settings.getSettings(); + }, + + changeVertical: function(object, valueVertical) + { + this.settings.set_boolean("isvertical", object.active); + }, + + changeToggleBool: function(object, valueToggbool) + { + this.settings.set_boolean("togglebool", object.active); + }, + + changeOldIcons: function(object, valueToggbool) + { + this.settings.set_boolean("useoldicon", object.active); + }, + + buildPrefsWidget: function() + { + let frame = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, border_width: 10}); + let label = new Gtk.Label({ label: "Default Settings", use_markup: true, xalign:0}); + let vbox = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, margin_left: 20}); + let resetBtn = new Gtk.Button({ label: "Restore Defaults", can_focus: true}); + let footer = new Gtk.Label({ label: "To See changes either press 'Alt + F2' and then type 'r' then press enter or logout and log back in",use_markup: true, margin_top: 20}); + //Mode + let hboxMode = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); + let labelMode = new Gtk.Label({label: "Mode (1-5) ", xalign: 0}); + let value2Mode = new Gtk.ComboBoxText({ + halign: Gtk.Align.END, + tooltip_text: ("Choose which mode to load") + }); + value2Mode.append_text("Mode 1"); + value2Mode.append_text("Mode 2"); + value2Mode.append_text("Mode 3"); + value2Mode.append_text("Mode 4"); + value2Mode.append_text("Mode 5"); + value2Mode.set_active(Math.round(this.settings.get_int("mode"))); + value2Mode.connect('changed', (widget) => { + let valueMode = widget.get_active(); + this.settings.set_int("mode", valueMode); + }) + hboxMode.add(labelMode); + hboxMode.pack_end(value2Mode, true, true, 0); + vbox.add(hboxMode); + vbox.add(new Gtk.Separator({visible : true})); + + //FontMode + + let hboxFontMode = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); + let labelFontMode = new Gtk.Label({label: "Font Mode ", xalign: 0}); + let value2FontMode = new Gtk.ComboBoxText({ + halign: Gtk.Align.END, + tooltip_text: ("Choose which font to display") + }); + value2FontMode.append_text("Default"); + value2FontMode.append_text("Smallest"); + value2FontMode.append_text("Smaller"); + value2FontMode.append_text("Small"); + value2FontMode.append_text("Large"); + value2FontMode.set_active(Math.round(this.settings.get_int("fontmode"))); + value2FontMode.connect('changed', (widget) => { + let valueFontMode = widget.get_active(); + this.settings.set_int("fontmode", valueFontMode); + }) + hboxFontMode.add(labelFontMode); + hboxFontMode.pack_end(value2FontMode, true, true, 0); + vbox.add(hboxFontMode); + vbox.add(new Gtk.Separator({visible : true})); + +//For Vertical Alignment + let hboxVertical = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); + let labelVertical = new Gtk.Label({label: "Vertical Align", xalign: 0}); + let valueVertical = new Gtk.Switch({active: this.settings.get_boolean("isvertical"), tooltip_text: ("Enabling it will enable Vertical Alignment") }); + valueVertical.connect('notify::active', Lang.bind(this, this.changeVertical)); + + hboxVertical.pack_start(labelVertical, true, true, 0); + hboxVertical.add(valueVertical); + vbox.add(hboxVertical); + + vbox.add(new Gtk.Separator({visible : true})) +//For Default sigma View + let hboxToggleBool = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); + let labelToggleBool = new Gtk.Label({label: "Toggle Right Click Behaviour", xalign: 0}); + let valueToggleBool = new Gtk.Switch({active: this.settings.get_boolean("togglebool"), tooltip_text: ("Enabling it will show sigma by default") }); + valueToggleBool.connect('notify::active', Lang.bind(this, this.changeToggleBool)); + + hboxToggleBool.pack_start(labelToggleBool, true, true, 0); + hboxToggleBool.add(valueToggleBool); + vbox.add(hboxToggleBool); + vbox.add(new Gtk.Separator({visible : true})); + +//For Toggling Old Icons + let hboxOldIcons = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); + let labelOldIcons = new Gtk.Label({label: "Display Old Icons", xalign: 0}); + let valueOldIcons = new Gtk.Switch({active: this.settings.get_boolean("useoldicon"), tooltip_text: ("Enabling it will show Old Icons of simplenetspeed") }); + valueOldIcons.connect('notify::active', Lang.bind(this, this.changeOldIcons)); + + hboxOldIcons.pack_start(labelOldIcons, true, true, 0); + hboxOldIcons.add(valueOldIcons); + vbox.add(hboxOldIcons); + vbox.add(new Gtk.Separator({visible : true})); + + frame.add(label); + frame.add(vbox); + frame.add(footer); + frame.show_all(); + + return frame; + } +} diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index 1c2dfcc33762c2fcd03c9611746cbf05db5b59a9..cd986fc581b792e95f1aab6fb03ce89afa6326f0 100644 GIT binary patch literal 557 zcmZ`#KTE?v9Q|oiD>@4W{QwErWcLgBht8!#m$bR22gzN?ouPsXj)I%upo@!RL2%MZ zzlk`xy9)Y#mzECVk38Pv-Mie~+waAtjFqMNw88ya`>P8R+}tAi!PIMAml?pn_!``C zjCF?&=nC9lA;L$xOv6;^T!dyKvMdx+E0mF1nNSI93Lz3B^CFXDDH7x{eye7;zX8qg zfF{6edxtyUtoe)$s%Qevfwx)JVxRRo{3-Yvc-noxVV^bU@4*ki>)H7xzlU`b{v-GU zIC{A~50JI!ok8E6(%y!(gnH&2=Jb zgUUJc`^cC6i7#ak1XibMCWcyPZXNr=BDRw{9HG?6l^VHHqh+bl-%=wYvpn#h^IX?! W_&whPS9c>#B}ywtaeWDRxW_N}Np3Iz delta 225 zcmZ3>GMRZo2qVkHQ0saY1_)pTQp`XM;vcB3EI>h4hB5{LAngQVi!v~P#6fHZ z1|J3&AngOh2iKOdgM>hA4xsu7AYBZ^Ub|-1fW$#;7NB?qke&?0dIgCk86YEo-1Usc sfeZ{xKqkocwEVo1-29YOkQ4|MK`5}R7&J09Dm5}QH8nNiN^r;n029?FCIA2c diff --git a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml index e987d47..f561197 100644 --- a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml +++ b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml @@ -8,6 +8,15 @@ 0 + + + false + + + false + + + false From 4b7211580e231034a7ef4f7d6cb7c620c0594a3b Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 31 Oct 2020 14:36:36 +0530 Subject: [PATCH 153/344] Update Changelog --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a0d58c4..97012d9 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ ***Tested on GNOME 3.36 and 3.38*** -#### Changelog : +#### Feature Highlights : - [x] Reduce Refresh time - [x] Supports GNOME SHELL 3.38 - [x] Changes width accordingly / dynamic width @@ -27,7 +27,7 @@ If you want to always show total data used by default then paste below command in terminal (Disclaimer: The code below may break your extension, if it happens then reinstall it) `sed -i 's togglebool=false togglebool=true ' ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension/extension.js` -#### Changelog for New Version : +#### Changelog Till October 29 : - [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode - [x] Easy Vertical Aligment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuosly for four times to enable/disable vertical align, to make vertical Alignment default then type `sed -i 's isVertical=false isVertical=true ' ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension/extension.js` @@ -39,6 +39,9 @@ If you want to always show total data used by default then paste below command i **To Revert Back any changes made using sed -i command then replace false with true and true with false in orignal command, like the above command will become** `sed -i 's useOldIcon=true useOldIcon=false ...` , ***if this doesn't work then reinstall the extension.*** +#### Changelog After October 29 : +- [x] Added Preference Dialog with all the customizations needed + #### Todo : ***Nothing TODO*** From 219eef0ee4047960fe031ff731ea33c4d5f1002b Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 31 Oct 2020 14:37:34 +0530 Subject: [PATCH 154/344] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 97012d9..ed4dfab 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,9 @@ ***Tested on GNOME 3.36 and 3.38*** +#### Whats new in this repo version: +- [x] Added Preference Dialog with all the customizations needed + #### Feature Highlights : - [x] Reduce Refresh time - [x] Supports GNOME SHELL 3.38 @@ -39,9 +42,6 @@ If you want to always show total data used by default then paste below command i **To Revert Back any changes made using sed -i command then replace false with true and true with false in orignal command, like the above command will become** `sed -i 's useOldIcon=true useOldIcon=false ...` , ***if this doesn't work then reinstall the extension.*** -#### Changelog After October 29 : -- [x] Added Preference Dialog with all the customizations needed - #### Todo : ***Nothing TODO*** From 8f39890548dad69bbe98bb93f9e8043efb6284ce Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 31 Oct 2020 17:23:05 +0530 Subject: [PATCH 155/344] Update Prefs Dialog and code improvements --- extension.js | 47 ++--- prefs.js | 181 ++++++++---------- schemas/gschemas.compiled | Bin 557 -> 608 bytes ....extensions.netspeedsimplified.gschema.xml | 3 + 4 files changed, 104 insertions(+), 127 deletions(-) diff --git a/extension.js b/extension.js index b0b0806..95c0916 100644 --- a/extension.js +++ b/extension.js @@ -8,7 +8,7 @@ const ExtensionUtils = imports.misc.extensionUtils; const Me = ExtensionUtils.getCurrentExtension(); const Convenience = Me.imports.convenience; -const PREFS_SCHEMA = 'org.gnome.shell.extensions.netspeedsimplified'; +const schema = 'org.gnome.shell.extensions.netspeedsimplified'; const refreshTime=1.5; const rCConst=3; //Right Click 4 timees to change Vertical Alignment @@ -23,50 +23,39 @@ let settings, resetNextCount=false, resetCount=0, reuseable_text, newLine, h=8, tTime=0, ltTime=0, useOldIcon; -var extRaw, rClickCount=0, lClickCount=0, isVertical, togglebool, DIcons=[]; +var extRaw, rClickCount=0, lClickCount=0, isVertical, togglebool, DIcons=[], lckMuseAct; function init() { - - settings = Convenience.getSettings(PREFS_SCHEMA); - - mode = settings.get_int('mode'); // default mode using bit (b/s, kb/s) - fontmode = settings.get_int('fontmode'); - togglebool = settings.get_boolean('togglebool'); - isVertical = settings.get_boolean('isvertical'); - useOldIcon = settings.get_boolean('useoldicon'); + settings = Convenience.getSettings(schema); } function changeMode(widget, event) { - // log(event.get_button()); if (event.get_button() == 3) { if (mode ==4 ) resetNextCount = true; // right click: reset downloaded sum else {//right click on other modes brings total downloaded sum togglebool = !togglebool; + settings.set_boolean('togglebool', togglebool); ioSpeed.set_text("Loading Info..."); } - parseStat(); rClickCount++; } else if (event.get_button() == 2) { // change font fontmode++; if (fontmode > 4) fontmode=0; - settings.set_int('fontmode', fontmode); - parseStat(); } else if (event.get_button() == 1) { mode++; if (mode > 4) mode = 0; settings.set_int('mode', mode); - parseStat(); - button.set_child(chooseLabel(mode==4 ? true : false)); lClickCount++; } + parseStat(); log('mode:' + mode + ' font:' + fontmode); } -function chooseLabel(addArg = false /*for mode 4*/) { - log('mode:' + mode + ' font:' + fontmode); +function chooseLabel() { + addArg = (mode==4) ? true : false if (mode == 0 || mode == 1 || mode == 4) styleName = 'sumall'; else if(!isVertical) styleName = 'upanddown'; let extraw = ''; @@ -90,8 +79,8 @@ function parseStat() { if (rClickCount != 0){ tTime++; if (rClickCount>=rCConst){ - log("Changed Vertical Alignment."); isVertical = !isVertical; + settings.set_boolean('isvertical', isVertical); rClickCount =0; } if(tTime>rCConst){ @@ -102,8 +91,8 @@ function parseStat() { if (lClickCount != 0) { ltTime++; if (lClickCount>=lCConst){ - log("Changed Icon set."); useOldIcon = !useOldIcon; + settings.set_boolean('useoldicon', useOldIcon); chooseIconSet(); lClickCount =0; } @@ -175,9 +164,7 @@ function parseStat() { (mode >= 2 && mode <= 3) ? `${DIcons[0]} ${spaCe}${speedToString(speed - speedUp)} ${newLine}${DIcons[1]} ${spaCe}${speedToString(speedUp)} ${commonSigma(togglebool)}` : (mode == 4) ? commonSigma(): "Mode Unavailable" } - else{ - reuseable_text = (mode !=4) ? "--".repeat(mode+1) + newLine + commonSigma(togglebool) : commonSigma(togglebool) - } + else reuseable_text = (mode !=4) ? "--".repeat(mode+1) + newLine + commonSigma(togglebool) : commonSigma(togglebool) ioSpeed.set_text(reuseable_text); lastCount = count; lastCountUp = countUp; @@ -219,6 +206,14 @@ function chooseIconSet(){ } function enable() { + mode = settings.get_int('mode'); // default mode using bit (b/s, kb/s) + fontmode = settings.get_int('fontmode'); + togglebool = settings.get_boolean('togglebool'); + isVertical = settings.get_boolean('isvertical'); + useOldIcon = settings.get_boolean('useoldicon'); + lckMuseAct = settings.get_boolean('lockmouseactions'); + fontmode = settings.get_int('fontmode'); + button = new St.Bin({ style_class: 'panel-button', reactive: true, @@ -235,10 +230,8 @@ function enable() { y_align: Clutter.ActorAlign.CENTER, style_class: 'forall' }); - /*styleName = 'forall size' - styleName = fontmode > 0 ? styleName + '-' + fontmode : styleName - ioSpeed.set_style_class_name(styleName);*/ - button.connect('button-press-event', changeMode); + + (!lckMuseAct) ? button.connect('button-press-event', changeMode) : null button.set_child(chooseLabel()); chooseIconSet(); diff --git a/prefs.js b/prefs.js index dc2d41b..87ce1a1 100644 --- a/prefs.js +++ b/prefs.js @@ -6,138 +6,119 @@ const Lib = Extension.imports.lib; const schema = "org.gnome.shell.extensions.netspeedsimplified"; -function init() -{ -} +function init(){} -function buildPrefsWidget() -{ +function buildPrefsWidget(){ let prefs = new Prefs(schema); return prefs.buildPrefsWidget(); } -function Prefs(schema) -{ +function Prefs(schema){ this.init(schema); } Prefs.prototype = { settings: null, - init: function(schema) { - let settings = new Lib.Settings(schema); - - this.settings = settings.getSettings(); + let settings = new Lib.Settings(schema); + this.settings = settings.getSettings(); }, - - changeVertical: function(object, valueVertical) + + buildPrefsWidget: function() { - this.settings.set_boolean("isvertical", object.active); - }, + let thset = this.settings; + function vBoxAddSeleCt(stArt, getInt, whichHbox, getLbl = "", getTooTip = ""){ + if (stArt) { + boolComp = (thset.get_int(getInt) == thset.get_default_value(getInt).unpack()); + getLbl = boolComp ? getLbl : + `${getLbl}` + tootext = boolComp ? "" : "The Value is Changed" + whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: tootext }); + whichVlue = new Gtk.ComboBoxText({ + halign: Gtk.Align.END, + tooltip_text: getTooTip + }); + } + else { + whichVlue.set_active(Math.round(thset.get_int(getInt))); + whichVlue.connect('changed', (widget) => { + let valueMode = widget.get_active(); + thset.set_int(getInt, valueMode); + }) + whichHbox.add(whichLbl); + whichHbox.pack_end(whichVlue, true, true, 0); + vbox.add(whichHbox); + vbox.add(new Gtk.Separator({visible : true})); + } + } - changeToggleBool: function(object, valueToggbool) - { - this.settings.set_boolean("togglebool", object.active); - }, + function vBoxAddTgglBtn(whichHbox, getLbl, getBool,getTooTip = ""){ + boolComp = (thset.get_boolean(getBool) == thset.get_default_value(getBool).unpack()); + getLbl = boolComp ? getLbl : + `${getLbl}` + tootext = boolComp ? "" : "The Value is Changed" + whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: tootext }); + whichVlue = new Gtk.Switch({active: thset.get_boolean(getBool), tooltip_text: getTooTip }); + whichVlue.connect('notify::active', (widget, whichVlue) => { + thset.set_boolean(getBool, widget.active); + }) + + whichHbox.pack_start(whichLbl, true, true, 0); + whichHbox.add(whichVlue); + + vbox.add(whichHbox); + vbox.add(new Gtk.Separator({visible : true})); + } - changeOldIcons: function(object, valueToggbool) - { - this.settings.set_boolean("useoldicon", object.active); - }, + let frame = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, border_width: 10}); + let label = new Gtk.Label({ label: "Default Settings", use_markup: true, xalign:0}); + let vbox = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, margin_left: 20}); + let footer = new Gtk.Label({ label: "To See the changes Disable and then re-enable the extension",use_markup: true, margin_top: 20}); - buildPrefsWidget: function() - { - let frame = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, border_width: 10}); - let label = new Gtk.Label({ label: "Default Settings", use_markup: true, xalign:0}); - let vbox = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, margin_left: 20}); - let resetBtn = new Gtk.Button({ label: "Restore Defaults", can_focus: true}); - let footer = new Gtk.Label({ label: "To See changes either press 'Alt + F2' and then type 'r' then press enter or logout and log back in",use_markup: true, margin_top: 20}); - //Mode + //For Modes let hboxMode = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); - let labelMode = new Gtk.Label({label: "Mode (1-5) ", xalign: 0}); - let value2Mode = new Gtk.ComboBoxText({ - halign: Gtk.Align.END, - tooltip_text: ("Choose which mode to load") - }); - value2Mode.append_text("Mode 1"); - value2Mode.append_text("Mode 2"); - value2Mode.append_text("Mode 3"); - value2Mode.append_text("Mode 4"); - value2Mode.append_text("Mode 5"); - value2Mode.set_active(Math.round(this.settings.get_int("mode"))); - value2Mode.connect('changed', (widget) => { - let valueMode = widget.get_active(); - this.settings.set_int("mode", valueMode); - }) - hboxMode.add(labelMode); - hboxMode.pack_end(value2Mode, true, true, 0); - vbox.add(hboxMode); - vbox.add(new Gtk.Separator({visible : true})); - - //FontMode - + vBoxAddSeleCt(true, "mode", hboxMode, "Mode (1-5)", "Choose which mode to load"); + whichVlue.append_text("Mode 1"); + whichVlue.append_text("Mode 2"); + whichVlue.append_text("Mode 3"); + whichVlue.append_text("Mode 4"); + whichVlue.append_text("Mode 5"); + vBoxAddSeleCt(false, "mode", hboxMode); + + //For FontModes let hboxFontMode = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); - let labelFontMode = new Gtk.Label({label: "Font Mode ", xalign: 0}); - let value2FontMode = new Gtk.ComboBoxText({ - halign: Gtk.Align.END, - tooltip_text: ("Choose which font to display") - }); - value2FontMode.append_text("Default"); - value2FontMode.append_text("Smallest"); - value2FontMode.append_text("Smaller"); - value2FontMode.append_text("Small"); - value2FontMode.append_text("Large"); - value2FontMode.set_active(Math.round(this.settings.get_int("fontmode"))); - value2FontMode.connect('changed', (widget) => { - let valueFontMode = widget.get_active(); - this.settings.set_int("fontmode", valueFontMode); - }) - hboxFontMode.add(labelFontMode); - hboxFontMode.pack_end(value2FontMode, true, true, 0); - vbox.add(hboxFontMode); - vbox.add(new Gtk.Separator({visible : true})); + vBoxAddSeleCt(true, "fontmode", hboxFontMode, "Font Mode", "Choose which font to display"); + whichVlue.append_text("Default"); + whichVlue.append_text("Smallest"); + whichVlue.append_text("Smaller"); + whichVlue.append_text("Small"); + whichVlue.append_text("Large"); + vBoxAddSeleCt(false, "fontmode", hboxFontMode); //For Vertical Alignment let hboxVertical = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); - let labelVertical = new Gtk.Label({label: "Vertical Align", xalign: 0}); - let valueVertical = new Gtk.Switch({active: this.settings.get_boolean("isvertical"), tooltip_text: ("Enabling it will enable Vertical Alignment") }); - valueVertical.connect('notify::active', Lang.bind(this, this.changeVertical)); - - hboxVertical.pack_start(labelVertical, true, true, 0); - hboxVertical.add(valueVertical); - vbox.add(hboxVertical); + vBoxAddTgglBtn(hboxVertical, "Vertical Align", "isvertical", "Changing it will toggle Vertical Alignment"); - vbox.add(new Gtk.Separator({visible : true})) //For Default sigma View let hboxToggleBool = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); - let labelToggleBool = new Gtk.Label({label: "Toggle Right Click Behaviour", xalign: 0}); - let valueToggleBool = new Gtk.Switch({active: this.settings.get_boolean("togglebool"), tooltip_text: ("Enabling it will show sigma by default") }); - valueToggleBool.connect('notify::active', Lang.bind(this, this.changeToggleBool)); - - hboxToggleBool.pack_start(labelToggleBool, true, true, 0); - hboxToggleBool.add(valueToggleBool); - vbox.add(hboxToggleBool); - vbox.add(new Gtk.Separator({visible : true})); + vBoxAddTgglBtn(hboxToggleBool, "Toggle Right Click Behaviour", "togglebool", "Enabling it will show sigma by default"); //For Toggling Old Icons - let hboxOldIcons = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); - let labelOldIcons = new Gtk.Label({label: "Display Old Icons", xalign: 0}); - let valueOldIcons = new Gtk.Switch({active: this.settings.get_boolean("useoldicon"), tooltip_text: ("Enabling it will show Old Icons of simplenetspeed") }); - valueOldIcons.connect('notify::active', Lang.bind(this, this.changeOldIcons)); - - hboxOldIcons.pack_start(labelOldIcons, true, true, 0); - hboxOldIcons.add(valueOldIcons); - vbox.add(hboxOldIcons); - vbox.add(new Gtk.Separator({visible : true})); - + let hboxOldIcons = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); + vBoxAddTgglBtn(hboxOldIcons, "Display Old Icons", "useoldicon", "Enabling it will show Old Icons of simplenetspeed"); + +//For Lock Mouse Actions + let hboxLckMuseAct = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); + vBoxAddTgglBtn(hboxLckMuseAct, "Lock Mouse Actions", "lockmouseactions", "Enabling it will Lock Mouse Actions"); + frame.add(label); frame.add(vbox); frame.add(footer); frame.show_all(); return frame; - } -} + } +} \ No newline at end of file diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index cd986fc581b792e95f1aab6fb03ce89afa6326f0..87a834ec45e4bca0d25156c75b984a2952992937 100644 GIT binary patch literal 608 zcmZ`$F-yZh6n<)Ji!O=?f(|Z10-CtEIJt;bIv0lyrpYxuOmZc676ldD6m%8Q-{9n= zldk>(M}L7!7Y9MVm!x(OANlfq_q}&{cQ0EFFO^S!_BG5AKMzSqMfO>>g z&6&9O7*GZ(1vr;sT7R&|eWs{K=in>g`Q&tx&&awA{|5XDyxjLHT+g}+{|(#+cAjpJ z*=JpX{|TN!YhlA^u1yYm#;XU)erw0_x%Ca Cqj`J) literal 557 zcmZ`#KTE?v9Q|oiD>@4W{QwErWcLgBht8!#m$bR22gzN?ouPsXj)I%upo@!RL2%MZ zzlk`xy9)Y#mzECVk38Pv-Mie~+waAtjFqMNw88ya`>P8R+}tAi!PIMAml?pn_!``C zjCF?&=nC9lA;L$xOv6;^T!dyKvMdx+E0mF1nNSI93Lz3B^CFXDDH7x{eye7;zX8qg zfF{6edxtyUtoe)$s%Qevfwx)JVxRRo{3-Yvc-noxVV^bU@4*ki>)H7xzlU`b{v-GU zIC{A~50JI!ok8E6(%y!(gnH&2=Jb zgUUJc`^cC6i7#ak1XibMCWcyPZXNr=BDRw{9HG?6l^VHHqh+bl-%=wYvpn#h^IX?! W_&whPS9c>#B}ywtaeWDRxW_N}Np3Iz diff --git a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml index f561197..84bb894 100644 --- a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml +++ b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml @@ -18,5 +18,8 @@ false + + false + From 322e3593b5974c64ed700c99bd54467fcd76f9c6 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 31 Oct 2020 17:30:48 +0530 Subject: [PATCH 156/344] Update README.md --- README.md | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index ed4dfab..c2c2833 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,8 @@ ***Tested on GNOME 3.36 and 3.38*** #### Whats new in this repo version: -- [x] Added Preference Dialog with all the customizations needed +- [x] Add Preference Dialog with lots of default customizations. +- [x] Add Lock Mouse Actions button in Prefrences to disable any mouse click behaviour. #### Feature Highlights : - [x] Reduce Refresh time @@ -26,22 +27,16 @@ - [x] Added space b/w speed and their units - [x] Human readable stylesheet // used minimum width and removed repetitive codes - [x] Used ES6 classes for less code and more efficent javascript -- [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. -If you want to always show total data used by default then paste below command in terminal (Disclaimer: The code below may break your extension, if it happens then reinstall it) -`sed -i 's togglebool=false togglebool=true ' ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension/extension.js` +- [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. #### Changelog Till October 29 : - [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode -- [x] Easy Vertical Aligment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuosly for four times to enable/disable vertical align, to make vertical Alignment default then type -`sed -i 's isVertical=false isVertical=true ' ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension/extension.js` -*(If you have vertical align enabled then in mode 5 you will see " -v" written after total net speed)*, +- [x] Easy Vertical Aligment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuosly for four times to enable/disable vertical align. +*(If you have vertical align enabled then in mode 5 you will see " -v" written after total net speed)*, ***Tip : You can also change font size in vertical alignment to your liking by middle mouse click on the speed*** -- [x] Easy Switch to Old Icons from simplenetspeed extension, to enable this Left Click continuosly for six or seven times to enable/disable old icons, to make old icons default then type -`sed -i 's useOldIcon=false useOldIcon=true ' ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension/extension.js` +- [x] Easy Switch to Old Icons from simplenetspeed extension, to enable this Left Click continuosly for six or seven times to enable/disable old icons. *(If you have old icons enabled then in mode 5 you will see " -o" written after total net speed)* -**To Revert Back any changes made using sed -i command then replace false with true and true with false in orignal command, like the above command will become** `sed -i 's useOldIcon=true useOldIcon=false ...` , ***if this doesn't work then reinstall the extension.*** - #### Todo : ***Nothing TODO*** From 86e657a751ba942b284cc1e3acc32da1c8e21974 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 31 Oct 2020 19:12:49 +0530 Subject: [PATCH 157/344] Update Metadata --- metadata.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/metadata.json b/metadata.json index ca90387..1bbad73 100644 --- a/metadata.json +++ b/metadata.json @@ -1,5 +1,5 @@ { - "description": "Fork of Simple Net speed by bijignome \n\nTested on gnome 3.36 and 3.38\n\nWhats New:\n Clean UI, Reduce refresh time, Fix repetitive code in stylesheet.css, \nRight Click to view total downloaded data in bits and bytes, Lesser Code Better Code,\n new Sigma and Up and down Arrow icons, dynamic width,\n used kb/s instead of Kbps, added spaces where needed,\n If you don't have active net connection for 12 seconds then this extension will show '--' instead of 0 B/s,\n Added vertical align support for dash to panel or big screen users(to use it just right click 4 time continuously on any mode to toggle vertical align), \nAdded old icons from simplenetspeed extension(to use it left click 6/7 times continuously to toggle old icons) and more coming\n\nLeft Click To change modes.\n\nLeft Click six times continuously to toggle Old Icons\n\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up and down speed in bits per second\n4. Up and down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter\n\nRight Click To toggle visibility of Total Up and Down or Reset counter for 5th mode.\n\nRight Click four times continuously to toggle Vertical alignment\n\nMiddle Click to change font size.", + "description": "Fork of Simple Net speed by bijignome \n\nTested on gnome 3.36 and 3.38\n\n\Added Preference Menu and slight code improvementsn\nWhats New:\n Clean UI, Reduce refresh time, Fix repetitive code in stylesheet.css, \nRight Click to view total downloaded data in bits and bytes, Lesser Code Better Code,\n new Sigma and Up and down Arrow icons, dynamic width,\n used kb/s instead of Kbps, added spaces where needed,\n If you don't have active net connection for 12 seconds then this extension will show '--' instead of 0 B/s,\n Added vertical align support for dash to panel or big screen users(to use it just right click 4 time continuously on any mode to toggle vertical align), \nAdded old icons from simplenetspeed extension(to use it left click 6/7 times continuously to toggle old icons) and more coming\n\nLeft Click To change modes.\n\nLeft Click six times continuously to toggle Old Icons\n\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up and down speed in bits per second\n4. Up and down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter\n\nRight Click To toggle visibility of Total Up and Down or Reset counter for 5th mode.\n\nRight Click four times continuously to toggle Vertical alignment\n\nMiddle Click to change font size.", "name": "Net speed Simplified", "shell-version": [ "3.14", @@ -26,5 +26,5 @@ ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 20 + "version": 11 } From 720cffab6a202f5eb3bac1e6651263813c411d7c Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 31 Oct 2020 19:17:29 +0530 Subject: [PATCH 158/344] Fix typo --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index 1bbad73..f824cba 100644 --- a/metadata.json +++ b/metadata.json @@ -1,5 +1,5 @@ { - "description": "Fork of Simple Net speed by bijignome \n\nTested on gnome 3.36 and 3.38\n\n\Added Preference Menu and slight code improvementsn\nWhats New:\n Clean UI, Reduce refresh time, Fix repetitive code in stylesheet.css, \nRight Click to view total downloaded data in bits and bytes, Lesser Code Better Code,\n new Sigma and Up and down Arrow icons, dynamic width,\n used kb/s instead of Kbps, added spaces where needed,\n If you don't have active net connection for 12 seconds then this extension will show '--' instead of 0 B/s,\n Added vertical align support for dash to panel or big screen users(to use it just right click 4 time continuously on any mode to toggle vertical align), \nAdded old icons from simplenetspeed extension(to use it left click 6/7 times continuously to toggle old icons) and more coming\n\nLeft Click To change modes.\n\nLeft Click six times continuously to toggle Old Icons\n\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up and down speed in bits per second\n4. Up and down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter\n\nRight Click To toggle visibility of Total Up and Down or Reset counter for 5th mode.\n\nRight Click four times continuously to toggle Vertical alignment\n\nMiddle Click to change font size.", + "description": "Fork of Simple Net speed by bijignome \n\nTested on gnome 3.36 and 3.38\n\nAdded Preference Menu and slight code improvements\n\nWhats New:\n Clean UI, Reduce refresh time, Fix repetitive code in stylesheet.css, \nRight Click to view total downloaded data in bits and bytes, Lesser Code Better Code,\n new Sigma and Up and down Arrow icons, dynamic width,\n used kb/s instead of Kbps, added spaces where needed,\n If you don't have active net connection for 12 seconds then this extension will show '--' instead of 0 B/s,\n Added vertical align support for dash to panel or big screen users(to use it just right click 4 time continuously on any mode to toggle vertical align), \nAdded old icons from simplenetspeed extension(to use it left click 6/7 times continuously to toggle old icons) and more coming\n\nLeft Click To change modes.\n\nLeft Click six times continuously to toggle Old Icons\n\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up and down speed in bits per second\n4. Up and down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter\n\nRight Click To toggle visibility of Total Up and Down or Reset counter for 5th mode.\n\nRight Click four times continuously to toggle Vertical alignment\n\nMiddle Click to change font size.", "name": "Net speed Simplified", "shell-version": [ "3.14", From 6045e9b833830e4198d2c418372846bad4a7d061 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 31 Oct 2020 19:33:01 +0530 Subject: [PATCH 159/344] Upload Screenshot --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c2c2833..c688889 100644 --- a/README.md +++ b/README.md @@ -8,8 +8,14 @@ > Forked from : [biji.gnome/simplenetspeed](https://github.com/biji/simplenetspeed) -

Screenshot *Screenshots*

+

ScreenshotScreenshot +*Screenshots* + + *Above Screenshot is with Matcha dark sea theme*

+ + + ***Tested on GNOME 3.36 and 3.38*** #### Whats new in this repo version: From 4d167ac95dbbe9a97f7ec7107cbd8359dc3e5524 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 31 Oct 2020 19:47:03 +0530 Subject: [PATCH 160/344] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c688889..86f1fac 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@

Net speed Simplified

Gnome extension to show network speed
-> GNOME Extensions Link : [prateeksu.gnome/netspeedsimplified](https://extensions.gnome.org/extension/3724/net-speed-simplified/) +[](https://extensions.gnome.org/extension/3724/net-speed-simplified/) or [Install Using Terminal](#installing-the-extension-using-terminal) > Web Link : [prateekmedia.github/netspeedsimplified](https://prateekmedia.github.io/netspeedsimplified) @@ -18,7 +18,7 @@ ***Tested on GNOME 3.36 and 3.38*** -#### Whats new in this repo version: +#### Whats new in v11: - [x] Add Preference Dialog with lots of default customizations. - [x] Add Lock Mouse Actions button in Prefrences to disable any mouse click behaviour. @@ -35,7 +35,7 @@ - [x] Used ES6 classes for less code and more efficent javascript - [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. -#### Changelog Till October 29 : +#### Changelog Till v10 : - [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode - [x] Easy Vertical Aligment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuosly for four times to enable/disable vertical align. *(If you have vertical align enabled then in mode 5 you will see " -v" written after total net speed)*, From e6e1adce913f45158e81822c2604fff0c25c6123 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 31 Oct 2020 23:24:45 +0530 Subject: [PATCH 161/344] Add Refresh time adjuster and improve support for gnome 3.38 --- extension.js | 143 ++++++++++-------- prefs.js | 36 +++++ schemas/gschemas.compiled | Bin 608 -> 664 bytes ....extensions.netspeedsimplified.gschema.xml | 3 + 4 files changed, 118 insertions(+), 64 deletions(-) diff --git a/extension.js b/extension.js index 95c0916..2f849bc 100644 --- a/extension.js +++ b/extension.js @@ -1,15 +1,17 @@ -const Clutter = imports.gi.Clutter; -const St = imports.gi.St; -const Main = imports.ui.main; -const Gio = imports.gi.Gio; -const Mainloop = imports.mainloop; +const Clutter = imports.gi.Clutter, + St = imports.gi.St, + Main = imports.ui.main, + Gio = imports.gi.Gio, + GLib = imports.gi.GLib, + Mainloop = imports.mainloop; + +var refreshTime; const ExtensionUtils = imports.misc.extensionUtils; const Me = ExtensionUtils.getCurrentExtension(); const Convenience = Me.imports.convenience; const schema = 'org.gnome.shell.extensions.netspeedsimplified'; -const refreshTime=1.5; const rCConst=3; //Right Click 4 timees to change Vertical Alignment const lCConst=5; //Left Click 6 timees to change icon set @@ -101,41 +103,41 @@ function parseStat() { lClickCount = 0; } } - while (line = dstream.read_line(null)) { - line = String(line); - line = line.trim(); - let fields = line.split(/\W+/); - if (fields.length<=2) break; - - if (fields[0] != "lo" && - !fields[0].match(/^virbr[0-9]+/) && - !fields[0].match(/^br[0-9]+/) && - !fields[0].match(/^vnet[0-9]+/) && - !fields[0].match(/^tun[0-9]+/) && - !fields[0].match(/^tap[0-9]+/) && - !isNaN(parseInt(fields[1]))) { - count = count + parseInt(fields[1]) + parseInt(fields[9]); - countUp = countUp + parseInt(fields[9]); - } + while (line = dstream.read_line(null)) { + line = String(line); + line = line.trim(); + let fields = line.split(/\W+/); + if (fields.length<=2) break; + + if (fields[0] != "lo" && + !fields[0].match(/^virbr[0-9]+/) && + !fields[0].match(/^br[0-9]+/) && + !fields[0].match(/^vnet[0-9]+/) && + !fields[0].match(/^tun[0-9]+/) && + !fields[0].match(/^tap[0-9]+/) && + !isNaN(parseInt(fields[1]))) { + count = count + parseInt(fields[1]) + parseInt(fields[9]); + countUp = countUp + parseInt(fields[9]); } - fstream.close(null); - - if (lastCount === 0) lastCount = count; - if (lastCountUp === 0) lastCountUp = countUp; - - let speed = (count - lastCount) / refreshTime, - speedUp = (countUp - lastCountUp) / refreshTime, - dot; - dot = (speed > lastSpeed) ? "⇅" : "" - if (resetNextCount == true) { - resetNextCount = false; - resetCount = count; - } + } + fstream.close(null); + + if (lastCount === 0) lastCount = count; + if (lastCountUp === 0) lastCountUp = countUp; + + let speed = (count - lastCount) / refreshTime, + speedUp = (countUp - lastCountUp) / refreshTime, + dot; + dot = (speed > lastSpeed) ? "⇅" : "" + if (resetNextCount == true) { + resetNextCount = false; + resetCount = count; + } - newLine = (isVertical && (mode ==2 || mode ==3)) ? "\n" : ""; - var speedy = speedToString(count - resetCount, 1); - function sped(exta = extRaw, spda = speedy){ return exta + spda; } - function commonSigma(thr = true /*If true will return a result else will return empty string*/){ + newLine = (isVertical && (mode ==2 || mode ==3)) ? "\n" : ""; + var speedy = speedToString(count - resetCount, 1); + function sped(exta = extRaw, spda = speedy){ return exta + spda; } + function commonSigma(thr = true /*If true will return a result else will return empty string*/){ let sigma = `${DIcons[2]} `; extRaw = " | " + sigma; if (thr && mode !=4){ @@ -155,21 +157,21 @@ function parseStat() { return toReturn; } else return ""; - } - if (useOldIcon) spaCe = "" ; - else spaCe = " "; - (speed || speedUp) ? h = 0 : h++ - if(h<=8){ - reuseable_text = (mode >= 0 && mode <= 1) ? `${dot} ${speedToString(speed)} ${commonSigma(togglebool)}` : - (mode >= 2 && mode <= 3) ? `${DIcons[0]} ${spaCe}${speedToString(speed - speedUp)} ${newLine}${DIcons[1]} ${spaCe}${speedToString(speedUp)} ${commonSigma(togglebool)}` : - (mode == 4) ? commonSigma(): "Mode Unavailable" - } - else reuseable_text = (mode !=4) ? "--".repeat(mode+1) + newLine + commonSigma(togglebool) : commonSigma(togglebool) - ioSpeed.set_text(reuseable_text); - lastCount = count; - lastCountUp = countUp; - lastSpeed = speed; - button.set_child(chooseLabel()); + } + if (useOldIcon) spaCe = "" ; + else spaCe = " "; + (speed || speedUp) ? h = 0 : h++ + if(h<=8){ + reuseable_text = (mode >= 0 && mode <= 1) ? `${dot} ${speedToString(speed)} ${commonSigma(togglebool)}` : + (mode >= 2 && mode <= 3) ? `${DIcons[0]} ${spaCe}${speedToString(speed - speedUp)} ${newLine}${DIcons[1]} ${spaCe}${speedToString(speedUp)} ${commonSigma(togglebool)}` : + (mode == 4) ? commonSigma(): "Mode Unavailable" + } + else reuseable_text = (mode !=4) ? "--".repeat(mode+1) + newLine + commonSigma(togglebool) : commonSigma(togglebool) + ioSpeed.set_text(reuseable_text); + lastCount = count; + lastCountUp = countUp; + lastSpeed = speed; + button.set_child(chooseLabel()); } catch (e) { ioSpeed.set_text(e.message); } @@ -206,6 +208,7 @@ function chooseIconSet(){ } function enable() { + refreshTime = settings.get_double('refreshtime');; mode = settings.get_int('mode'); // default mode using bit (b/s, kb/s) fontmode = settings.get_int('fontmode'); togglebool = settings.get_boolean('togglebool'); @@ -214,17 +217,29 @@ function enable() { lckMuseAct = settings.get_boolean('lockmouseactions'); fontmode = settings.get_int('fontmode'); - button = new St.Bin({ - style_class: 'panel-button', - reactive: true, - can_focus: true, - x_fill: true, - y_fill: false, - x_expand: true, - y_expand: false, - track_hover: true - }); + var [ok, out, err, exit] = GLib.spawn_command_line_sync("gnome-shell --version"); + output = out.toString().split(" ")[2]; + if (parseFloat(output) <=3.36) { + button = new St.Bin({ + style_class: 'panel-button', + reactive: true, + can_focus: true, + x_fill: true, + y_fill: false, + track_hover: true + }); + } + else{ + button = new St.Bin({ + style_class: 'panel-button', + reactive: true, + can_focus: true, + x_expand: true, + y_expand: false, + track_hover: true + }); + } ioSpeed = new St.Label({ text: '---', y_align: Clutter.ActorAlign.CENTER, diff --git a/prefs.js b/prefs.js index 87ce1a1..970aa9b 100644 --- a/prefs.js +++ b/prefs.js @@ -30,6 +30,29 @@ Prefs.prototype = buildPrefsWidget: function() { let thset = this.settings; + function vBoxSpinBtn(staRt, getDouble, whichHbox, getLbl = ""){ + if (staRt){; + boolComp = (thset.get_double(getDouble) === thset.get_default_value(getDouble).unpack()); + getLbl = boolComp ? getLbl : + `${getLbl}` + tootext = boolComp ? "" : "The Value is Changed" + whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: tootext }); + } + else{ + whichSpinBtn.set_value(thset.get_double(getDouble)); + whichSpinBtn.connect('value-changed', () => { + this.rTValue = parseFloat(whichSpinBtn.get_value().toFixed(1)); + if(thset.get_double(getDouble) !== this.rTValue){ + thset.set_double(getDouble , this.rTValue); + } + }); + whichHbox.pack_start(whichLbl, true, true, 0); + whichHbox.add(whichSpinBtn); + + vbox.add(whichHbox); + vbox.add(new Gtk.Separator({visible : true})); + } + } function vBoxAddSeleCt(stArt, getInt, whichHbox, getLbl = "", getTooTip = ""){ if (stArt) { boolComp = (thset.get_int(getInt) == thset.get_default_value(getInt).unpack()); @@ -78,6 +101,19 @@ Prefs.prototype = let vbox = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, margin_left: 20}); let footer = new Gtk.Label({ label: "To See the changes Disable and then re-enable the extension",use_markup: true, margin_top: 20}); +//Refresh time + let hboxRTime = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); + vBoxSpinBtn(true, "refreshtime", hboxRTime, "Refresh Time"); + whichSpinBtn = new Gtk.SpinButton({ + adjustment: new Gtk.Adjustment({ + lower: 1.0, upper: 10.0, step_increment: .1, page_increment: 1, page_size: 0, + }), + climb_rate: 1, + digits: 1, + numeric: true, + }); + vBoxSpinBtn(false, "refreshtime", hboxRTime); + //For Modes let hboxMode = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); vBoxAddSeleCt(true, "mode", hboxMode, "Mode (1-5)", "Choose which mode to load"); diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index 87a834ec45e4bca0d25156c75b984a2952992937..ff07c0dca7692f3a4b5a9ff665785c038636b83c 100644 GIT binary patch literal 664 zcmZ`$!AiqG6ntuHtG(2NAm|4qsL53X@o1GErHJ%knrz#}BwMm;QLKVT!Gk9$`VF2u z=}E7CffvCq5J7|<1f7?*D2PjDXPEc)C7E5Tc!~64LxVK~-s)>>bZCOJ(?nlb{aQKg zslq>buU>H*>qRQj8TfpJ2oI^G;WT0u2}d_Y7&>C#h*(P%YbO>)w}c3^j9Q_rOA(+S z%bMtOy7LT12FMOD4$cAhN5=*J9)4Gr+SCO<0yhgU7kSiKPr`o!KLhzG{mMS;BK$Y- z2QYhEIc1+U_Y;0P3vAq7cGzc~fnNmA1Iz1kpX{^d{w44V;M?0h_E{I;m%y9A!*x5y zKI=UE9q=JA%#$@ynL6Mu;Iur`gySMSHx18C!*hSabN`0t5^19vjZoB-3V9-;tl6RR zcO$i@h36ZNedtTw7KxF*$F1m#R3Oq?e@h0Mb0auG>WR=z jBcs9b-YQvvU01RBJ@TJ<={=5N7DvGE;=9E)q<8%dNQQ)@ delta 344 zcmbQi`haCZ2xG~_Q0saQ1_)pRQp`Zi3dHPC43Yz5!Qyuyu@XiG1_6dLh7KUz3&aO% z>$v{|0f@~C6rTa4PXY14wPoxe^&mC}Q2Yjv{tU!kyJppZ#6fHpp!g3)hI$5Jpv_jE zGJil4AT}3JLIFst0`X>@2h%{}AT~(c07#nxvGmTcPLMc=4H9<%(yl 0 + + 1.5 + false From 96227f60efd26ca9711af9b3d28b66291c3c814a Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 1 Nov 2020 08:31:52 +0530 Subject: [PATCH 162/344] Add Alt text and remove Left click to change icon --- README.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 86f1fac..a0765a5 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ -

+

NSS Logo

Net speed Simplified

Gnome extension to show network speed
-[](https://extensions.gnome.org/extension/3724/net-speed-simplified/) or [Install Using Terminal](#installing-the-extension-using-terminal) +[Get it on GNOME Extensions](https://extensions.gnome.org/extension/3724/net-speed-simplified/) or [Install Using Terminal](#installing-the-extension-using-terminal) > Web Link : [prateekmedia.github/netspeedsimplified](https://prateekmedia.github.io/netspeedsimplified) > Forked from : [biji.gnome/simplenetspeed](https://github.com/biji/simplenetspeed) -

ScreenshotScreenshot +

Screenshot 1Screenshot 2 *Screenshots* @@ -37,10 +37,10 @@ #### Changelog Till v10 : - [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode -- [x] Easy Vertical Aligment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuosly for four times to enable/disable vertical align. +- [x] Easy Vertical Aligment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuosly for four times to enable/disable vertical align or simply go to prefrences tab for this extension. *(If you have vertical align enabled then in mode 5 you will see " -v" written after total net speed)*, ***Tip : You can also change font size in vertical alignment to your liking by middle mouse click on the speed*** -- [x] Easy Switch to Old Icons from simplenetspeed extension, to enable this Left Click continuosly for six or seven times to enable/disable old icons. +- [x] Easy Switch to Old Icons from simplenetspeed extension, go to prefrences tab for this extension to enable/disable old icons. *(If you have old icons enabled then in mode 5 you will see " -o" written after total net speed)* #### Todo : @@ -49,8 +49,7 @@ if you face any **issues** you can **[open pull request](https://github.com/prateekmedia/netspeedsimplified/pulls)** and can type your issue with images or error codes > **Left click to change modes**, - -> **Left click continuosly for 6/7 times to toggle old icons like simplenetspeed extension, You will se "-o" written in 5th mode after total download data if this is enabled** + *Modes available:* 1. Total net speed in bits per second From de402bf84978aa4271e226dfece2430965e4e08f Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 1 Nov 2020 08:33:30 +0530 Subject: [PATCH 163/344] Remove Left click changes icon & other improvement --- extension.js | 19 ++----------------- prefs.js | 4 +++- 2 files changed, 5 insertions(+), 18 deletions(-) diff --git a/extension.js b/extension.js index 2f849bc..6874b11 100644 --- a/extension.js +++ b/extension.js @@ -14,7 +14,6 @@ const Convenience = Me.imports.convenience; const schema = 'org.gnome.shell.extensions.netspeedsimplified'; const rCConst=3; //Right Click 4 timees to change Vertical Alignment -const lCConst=5; //Left Click 6 timees to change icon set let settings, button, timeout, @@ -23,9 +22,9 @@ let settings, mode, // 0: kb/s 1: KB/s 2: U:kb/s D:kb/s 3: U:KB/s D:KB/s 4: Total KB fontmode, resetNextCount=false, resetCount=0, - reuseable_text, newLine, h=8, tTime=0, ltTime=0, useOldIcon; + reuseable_text, newLine, h=8, tTime=0, useOldIcon; -var extRaw, rClickCount=0, lClickCount=0, isVertical, togglebool, DIcons=[], lckMuseAct; +var extRaw, rClickCount=0, isVertical, togglebool, DIcons=[], lckMuseAct; function init() { settings = Convenience.getSettings(schema); @@ -50,7 +49,6 @@ function changeMode(widget, event) { mode++; if (mode > 4) mode = 0; settings.set_int('mode', mode); - lClickCount++; } parseStat(); log('mode:' + mode + ' font:' + fontmode); @@ -90,19 +88,6 @@ function parseStat() { rClickCount = 0; } } - if (lClickCount != 0) { - ltTime++; - if (lClickCount>=lCConst){ - useOldIcon = !useOldIcon; - settings.set_boolean('useoldicon', useOldIcon); - chooseIconSet(); - lClickCount =0; - } - if(ltTime>lCConst){ - ltTime = 0; - lClickCount = 0; - } - } while (line = dstream.read_line(null)) { line = String(line); line = line.trim(); diff --git a/prefs.js b/prefs.js index 970aa9b..3c568e9 100644 --- a/prefs.js +++ b/prefs.js @@ -30,6 +30,7 @@ Prefs.prototype = buildPrefsWidget: function() { let thset = this.settings; + function vBoxSpinBtn(staRt, getDouble, whichHbox, getLbl = ""){ if (staRt){; boolComp = (thset.get_double(getDouble) === thset.get_default_value(getDouble).unpack()); @@ -53,6 +54,7 @@ Prefs.prototype = vbox.add(new Gtk.Separator({visible : true})); } } + function vBoxAddSeleCt(stArt, getInt, whichHbox, getLbl = "", getTooTip = ""){ if (stArt) { boolComp = (thset.get_int(getInt) == thset.get_default_value(getInt).unpack()); @@ -157,4 +159,4 @@ Prefs.prototype = return frame; } -} \ No newline at end of file +} From acbfd2153682d6017ae8dac04ec0a229b9e3a367 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 1 Nov 2020 09:07:42 +0530 Subject: [PATCH 164/344] Update metadata.json --- metadata.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/metadata.json b/metadata.json index f824cba..af14a1e 100644 --- a/metadata.json +++ b/metadata.json @@ -1,5 +1,5 @@ { - "description": "Fork of Simple Net speed by bijignome \n\nTested on gnome 3.36 and 3.38\n\nAdded Preference Menu and slight code improvements\n\nWhats New:\n Clean UI, Reduce refresh time, Fix repetitive code in stylesheet.css, \nRight Click to view total downloaded data in bits and bytes, Lesser Code Better Code,\n new Sigma and Up and down Arrow icons, dynamic width,\n used kb/s instead of Kbps, added spaces where needed,\n If you don't have active net connection for 12 seconds then this extension will show '--' instead of 0 B/s,\n Added vertical align support for dash to panel or big screen users(to use it just right click 4 time continuously on any mode to toggle vertical align), \nAdded old icons from simplenetspeed extension(to use it left click 6/7 times continuously to toggle old icons) and more coming\n\nLeft Click To change modes.\n\nLeft Click six times continuously to toggle Old Icons\n\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up and down speed in bits per second\n4. Up and down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter\n\nRight Click To toggle visibility of Total Up and Down or Reset counter for 5th mode.\n\nRight Click four times continuously to toggle Vertical alignment\n\nMiddle Click to change font size.", + "description": "Fork of Simple Net speed by bijignome \n\nTested on gnome 3.36 and 3.38\n\nAdded Preference Menu with changable refresh rate and slight code improvements\n\nWhats New:\n Clean UI, Reduce refresh time, Fix repetitive code in stylesheet.css, \nRight Click to view total downloaded data in bits and bytes, Lesser Code Better Code,\n new Sigma and Up and down Arrow icons, dynamic width,\n used kb/s instead of Kbps, added spaces where needed,\n If you don't have active net connection for 12 seconds then this extension will show '--' instead of 0 B/s,\n Added vertical align support for dash to panel or big screen users(to use it just right click 4 time continuously on any mode to toggle vertical align), \nAdded old icons from simplenetspeed extension(to use it go to preferences and toggle Use old icons) and more coming\n\nLeft Click To change modes.\n\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up and down speed in bits per second\n4. Up and down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter\n\nRight Click To toggle visibility of Total Up and Down or Reset counter for 5th mode.\n\nRight Click four times continuously to toggle Vertical alignment\n\nMiddle Click to change font size.", "name": "Net speed Simplified", "shell-version": [ "3.14", @@ -26,5 +26,5 @@ ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 11 + "version": 13 } From af54689a73a097cd2eac174cdf7b8dcba78d2393 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 1 Nov 2020 09:19:54 +0530 Subject: [PATCH 165/344] Update Install method --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a0765a5..ee1aae8 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ if you face any **issues** you can **[open pull request](https://github.com/prat * Please Mark this extension page as Watch if you want to know about the updates - ***to install( reload required )( Requirements : git )*** - ```git clone --single-branch --branch main https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` + ```mkdir ~/.local/share/gnome-shell/extensions/; git clone --single-branch --branch main https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` *Or* @@ -84,7 +84,7 @@ if you face any **issues** you can **[open pull request](https://github.com/prat You can do that manually using extensions app or [website](https://extensions.gnome.org/local) or Using Gnome tweaks tool's extension tab - ***to reinstall or update( reload required )( Requirements : git )*** - ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension && git clone --single-branch --branch main https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` + ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension; git clone --single-branch --branch main https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` *Or* From 89d7f82c3ec78709ee047a3523386bad02137909 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 1 Nov 2020 09:26:10 +0530 Subject: [PATCH 166/344] Update Screenshot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ee1aae8..e5a0cb8 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ > Forked from : [biji.gnome/simplenetspeed](https://github.com/biji/simplenetspeed) -

Screenshot 1Screenshot 2 +

Screenshot 1Screenshot 2 *Screenshots* From 23dc3cfce217be27b6961042b0c9797c625bb5be Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 1 Nov 2020 11:30:56 +0530 Subject: [PATCH 167/344] Update support for Gnome shells --- extension.js | 94 +++++++++--------- prefs.js | 17 +++- schemas/gschemas.compiled | Bin 664 -> 789 bytes ....extensions.netspeedsimplified.gschema.xml | 10 +- 4 files changed, 69 insertions(+), 52 deletions(-) diff --git a/extension.js b/extension.js index 6874b11..dd6f30b 100644 --- a/extension.js +++ b/extension.js @@ -2,7 +2,8 @@ const Clutter = imports.gi.Clutter, St = imports.gi.St, Main = imports.ui.main, Gio = imports.gi.Gio, - GLib = imports.gi.GLib, + Lang = imports.lang, + PanelMenu = imports.ui.panelMenu, Mainloop = imports.mainloop; var refreshTime; @@ -13,18 +14,42 @@ const Convenience = Me.imports.convenience; const schema = 'org.gnome.shell.extensions.netspeedsimplified'; -const rCConst=3; //Right Click 4 timees to change Vertical Alignment +const ButtonName = "ShowNetSpeedButton"; + +const rCConst=4; //Right Click 4 times to change Vertical Alignment let settings, button, timeout, - ioSpeed, spaCe, + spaCe, lastCount = 0, lastSpeed = 0, lastCountUp = 0, mode, // 0: kb/s 1: KB/s 2: U:kb/s D:kb/s 3: U:KB/s D:KB/s 4: Total KB fontmode, resetNextCount=false, resetCount=0, - reuseable_text, newLine, h=8, tTime=0, useOldIcon; + reuseable_text, newLine, h=8, tTime=0, chooseIconSet; + +var extRaw, rClickCount=0, isVertical, togglebool, DIcons=[], DWPos=[], lckMuseAct; + +const ShowNetBtn = new Lang.Class({ + Name: ButtonName, + Extends: PanelMenu.Button, + + _init: function () { + this.parent(0.0, ButtonName); + + ioSpeed = new St.Label({ + text: '---', + y_align: Clutter.ActorAlign.CENTER, + style_class: 'forall' + }); + + + (!lckMuseAct) ? this.connect('button-press-event', changeMode) : null + + this.add_child(chooseLabel()); + }, + +}); -var extRaw, rClickCount=0, isVertical, togglebool, DIcons=[], lckMuseAct; function init() { settings = Convenience.getSettings(schema); @@ -138,12 +163,12 @@ function parseStat() { } else if (mode == 4){ let toReturn = (isVertical) ? sped(sigma) + "\n -v" : sped(sigma); - toReturn = (useOldIcon) ? toReturn + " -o" : toReturn + toReturn = (chooseIconSet !=0) ? toReturn + " -o" : toReturn return toReturn; } else return ""; } - if (useOldIcon) spaCe = "" ; + if (chooseIconSet !=0) spaCe = "" ; else spaCe = " "; (speed || speedUp) ? h = 0 : h++ if(h<=8){ @@ -156,7 +181,7 @@ function parseStat() { lastCount = count; lastCountUp = countUp; lastSpeed = speed; - button.set_child(chooseLabel()); + button.add_child(chooseLabel()); } catch (e) { ioSpeed.set_text(e.message); } @@ -188,59 +213,34 @@ function speedToString(amount, rMode = 0) { return String(amount.toFixed(digits)) + " " + speed_map[unit]; } -function chooseIconSet(){ - DIcons = (useOldIcon) ? ["↓","↑","∑"] : ["🡳","🡱","Σ"]; +function chooseArrayVal(){ + DIcons = (chooseIconSet ==0) ? ["🡳","🡱","Σ"] : + (chooseIconSet ==1) ? ["↓","↑","∑"] : + ["","",""] + DWPos = ["right", "left", "center"] } function enable() { - refreshTime = settings.get_double('refreshtime');; - mode = settings.get_int('mode'); // default mode using bit (b/s, kb/s) + refreshTime = settings.get_double('refreshtime'); + mode = settings.get_int('mode'); // default mode using bit (b/s, kb/s); fontmode = settings.get_int('fontmode'); + whePosition = settings.get_int('wpos'); togglebool = settings.get_boolean('togglebool'); isVertical = settings.get_boolean('isvertical'); - useOldIcon = settings.get_boolean('useoldicon'); + chooseIconSet = settings.get_int('chooseiconset'); lckMuseAct = settings.get_boolean('lockmouseactions'); fontmode = settings.get_int('fontmode'); - var [ok, out, err, exit] = GLib.spawn_command_line_sync("gnome-shell --version"); - output = out.toString().split(" ")[2]; - - if (parseFloat(output) <=3.36) { - button = new St.Bin({ - style_class: 'panel-button', - reactive: true, - can_focus: true, - x_fill: true, - y_fill: false, - track_hover: true - }); - } - else{ - button = new St.Bin({ - style_class: 'panel-button', - reactive: true, - can_focus: true, - x_expand: true, - y_expand: false, - track_hover: true - }); - } - ioSpeed = new St.Label({ - text: '---', - y_align: Clutter.ActorAlign.CENTER, - style_class: 'forall' - }); - - (!lckMuseAct) ? button.connect('button-press-event', changeMode) : null - button.set_child(chooseLabel()); + button = new ShowNetBtn(); - chooseIconSet(); + chooseArrayVal(); + whePos = DWPos[whePosition] - Main.panel._rightBox.insert_child_at_index(button, 0); + Main.panel.addToStatusArea(ButtonName, button, 3, whePos); timeout = Mainloop.timeout_add_seconds(refreshTime, parseStat); } function disable() { Mainloop.source_remove(timeout); - Main.panel._rightBox.remove_child(button); + button.destroy(); } diff --git a/prefs.js b/prefs.js index 3c568e9..31871a7 100644 --- a/prefs.js +++ b/prefs.js @@ -103,6 +103,14 @@ Prefs.prototype = let vbox = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, margin_left: 20}); let footer = new Gtk.Label({ label: "To See the changes Disable and then re-enable the extension",use_markup: true, margin_top: 20}); + //For Position + let hboxWPos = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); + vBoxAddSeleCt(true, "wpos", hboxWPos, "Position", "Choose where to Place the extension"); + whichVlue.append_text("Right"); + whichVlue.append_text("Left"); + whichVlue.append_text("Center"); + vBoxAddSeleCt(false, "wpos", hboxWPos); + //Refresh time let hboxRTime = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); vBoxSpinBtn(true, "refreshtime", hboxRTime, "Refresh Time"); @@ -142,11 +150,14 @@ Prefs.prototype = //For Default sigma View let hboxToggleBool = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); - vBoxAddTgglBtn(hboxToggleBool, "Toggle Right Click Behaviour", "togglebool", "Enabling it will show sigma by default"); + vBoxAddTgglBtn(hboxToggleBool, "Show Total Download speed", "togglebool", "Enabling it will show sigma by default"); //For Toggling Old Icons - let hboxOldIcons = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); - vBoxAddTgglBtn(hboxOldIcons, "Display Old Icons", "useoldicon", "Enabling it will show Old Icons of simplenetspeed"); + let hboxIconset = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); + vBoxAddSeleCt(true, "chooseiconset", hboxIconset, "Choose Icons Set", "Choose which icon set to display"); + whichVlue.append_text(' 🡳, 🡱, Σ '); + whichVlue.append_text(' ↓, ↑, ∑ '); + vBoxAddSeleCt(false, "chooseiconset", hboxIconset); //For Lock Mouse Actions let hboxLckMuseAct = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index ff07c0dca7692f3a4b5a9ff665785c038636b83c..76e96fabdb984621ca438701792bf4fe6754685e 100644 GIT binary patch literal 789 zcmZWnF;CS{82wP5JRv4HkeD#y&?eZrJK&}v%)}srrM>UH8{6KO-s@8nG;t(hVlYM* zet=Fc=pqcPghZWOSX~GS3?vSE&h0C{=uJ=0>A7FO@Am6=Z#k)SQaTx~8{h}E4lXq& zxHTj48>`-1@-eIMU!AVLV;J=ewx{wuQqP)GHTsfytJq7-nYso45qJwYxU;>^c>bZCOJ(?nlb{aQKg zslq>buU>H*>qRQj8TfpJ2oI^G;WT0u2}d_Y7&>C#h*(P%YbO>)w}c3^j9Q_rOA(+S z%bMtOy7LT12FMOD4$cAhN5=*J9)4Gr+SCO<0yhgU7kSiKPr`o!KLhzG{mMS;BK$Y- z2QYhEIc1+U_Y;0P3vAq7cGzc~fnNmA1Iz1kpX{^d{w44V;M?0h_E{I;m%y9A!*x5y zKI=UE9q=JA%#$@ynL6Mu;Iur`gySMSHx18C!*hSabN`0t5^19vjZoB-3V9-;tl6RR zcO$i@h36ZNedtTw7KxF*$F1m#R3Oq?e@h0Mb0auG>WR=z jBcs9b-YQvvU01RBJ@TJ<={=5N7DvGE;=9E)q<8%dNQQ)@ diff --git a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml index dc79305..e89957a 100644 --- a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml +++ b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml @@ -8,8 +8,13 @@ 0 + + + + 0 + 1.5 @@ -18,8 +23,9 @@ false - - false + + + 0 false From eb1a3ad6f751fbf4eaf835656d051b677561fba5 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 1 Nov 2020 11:45:50 +0530 Subject: [PATCH 168/344] Update Screenshot of prefs --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e5a0cb8..df09839 100644 --- a/README.md +++ b/README.md @@ -8,11 +8,11 @@ > Forked from : [biji.gnome/simplenetspeed](https://github.com/biji/simplenetspeed) -

Screenshot 1Screenshot 2 +

Screenshot 1Screenshot 2 *Screenshots* - *Above Screenshot is with Matcha dark sea theme*

+ *Above Screenshot is with Matcha sea theme*

From 2c9d73d6f69f5ae8937238d12fdec826fa4a80f1 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 1 Nov 2020 11:46:56 +0530 Subject: [PATCH 169/344] Update metadata.json --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index af14a1e..62292bd 100644 --- a/metadata.json +++ b/metadata.json @@ -26,5 +26,5 @@ ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 13 + "version": 14 } From f7fd1acaad6844920269e8e5083d6047b4b6e949 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 1 Nov 2020 12:02:00 +0530 Subject: [PATCH 170/344] Update Screenshot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index df09839..5478ba6 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ > Forked from : [biji.gnome/simplenetspeed](https://github.com/biji/simplenetspeed) -

Screenshot 1Screenshot 2 +

Screenshot *Screenshots* From 3d2ad7b1688f792ba15701f76a1c0527c74f8f5a Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 3 Nov 2020 20:31:07 +0530 Subject: [PATCH 171/344] Update chngelog --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5478ba6..691ad89 100644 --- a/README.md +++ b/README.md @@ -18,9 +18,11 @@ ***Tested on GNOME 3.36 and 3.38*** -#### Whats new in v11: +#### Whats new in v11 and above: - [x] Add Preference Dialog with lots of default customizations. - [x] Add Lock Mouse Actions button in Prefrences to disable any mouse click behaviour. +- [x] Add Position menu to decide where to place the indicator on the Panel. +- [x] Add Refresh time field by which you can change refresh time value between 1.0 sec to 10.0 sec. #### Feature Highlights : - [x] Reduce Refresh time From 66c4d3f1af6c8665f421e85cbcc5af076d2ae407 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 4 Nov 2020 13:23:02 +0530 Subject: [PATCH 172/344] Add Advanced features and code improvements --- extension.js | 16 +- prefs.js | 162 ++++++++---------- schemas/gschemas.compiled | Bin 789 -> 867 bytes ....extensions.netspeedsimplified.gschema.xml | 4 + 4 files changed, 84 insertions(+), 98 deletions(-) diff --git a/extension.js b/extension.js index dd6f30b..a764a66 100644 --- a/extension.js +++ b/extension.js @@ -214,17 +214,16 @@ function speedToString(amount, rMode = 0) { } function chooseArrayVal(){ - DIcons = (chooseIconSet ==0) ? ["🡳","🡱","Σ"] : - (chooseIconSet ==1) ? ["↓","↑","∑"] : - ["","",""] - DWPos = ["right", "left", "center"] + DIcons = (chooseIconSet ==1) ? ["↓","↑","∑"] : + ["🡳","🡱","Σ"] } function enable() { - refreshTime = settings.get_double('refreshtime'); - mode = settings.get_int('mode'); // default mode using bit (b/s, kb/s); + refreshTime = settings.get_double('refreshtime'); + mode = settings.get_int('mode'); // default mode using bit (b/s, kb/s); fontmode = settings.get_int('fontmode'); - whePosition = settings.get_int('wpos'); + whePos = ["right", "left", "center"][settings.get_int('wpos')] + whePosExt = [3,0][settings.get_int('wposext')]; togglebool = settings.get_boolean('togglebool'); isVertical = settings.get_boolean('isvertical'); chooseIconSet = settings.get_int('chooseiconset'); @@ -234,9 +233,8 @@ function enable() { button = new ShowNetBtn(); chooseArrayVal(); - whePos = DWPos[whePosition] - Main.panel.addToStatusArea(ButtonName, button, 3, whePos); + Main.panel.addToStatusArea(ButtonName, button, whePosExt, whePos); timeout = Mainloop.timeout_add_seconds(refreshTime, parseStat); } diff --git a/prefs.js b/prefs.js index 31871a7..30460ce 100644 --- a/prefs.js +++ b/prefs.js @@ -31,15 +31,24 @@ Prefs.prototype = { let thset = this.settings; - function vBoxSpinBtn(staRt, getDouble, whichHbox, getLbl = ""){ - if (staRt){; + function newGtkBox(){ + return new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); + } + + function vBoxSpinBtn(getDouble, whichHbox, getLbl = "", lwer , uper, stpInc = 1, digs = 0, nume = true, pgeInc = 1, pgeSiz = 0, clmrate = 1){ boolComp = (thset.get_double(getDouble) === thset.get_default_value(getDouble).unpack()); getLbl = boolComp ? getLbl : - `${getLbl}` + `${getLbl}` tootext = boolComp ? "" : "The Value is Changed" whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: tootext }); - } - else{ + whichSpinBtn = new Gtk.SpinButton({ + adjustment: new Gtk.Adjustment({ + lower: lwer, upper: uper, step_increment: stpInc, page_increment: pgeInc, page_size: pgeSiz, + }), + climb_rate: clmrate, + digits: digs, + numeric: nume, + }); whichSpinBtn.set_value(thset.get_double(getDouble)); whichSpinBtn.connect('value-changed', () => { this.rTValue = parseFloat(whichSpinBtn.get_value().toFixed(1)); @@ -52,32 +61,31 @@ Prefs.prototype = vbox.add(whichHbox); vbox.add(new Gtk.Separator({visible : true})); - } } - function vBoxAddSeleCt(stArt, getInt, whichHbox, getLbl = "", getTooTip = ""){ - if (stArt) { - boolComp = (thset.get_int(getInt) == thset.get_default_value(getInt).unpack()); - getLbl = boolComp ? getLbl : - `${getLbl}` - tootext = boolComp ? "" : "The Value is Changed" - whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: tootext }); - whichVlue = new Gtk.ComboBoxText({ - halign: Gtk.Align.END, - tooltip_text: getTooTip - }); - } - else { - whichVlue.set_active(Math.round(thset.get_int(getInt))); - whichVlue.connect('changed', (widget) => { - let valueMode = widget.get_active(); - thset.set_int(getInt, valueMode); - }) - whichHbox.add(whichLbl); - whichHbox.pack_end(whichVlue, true, true, 0); - vbox.add(whichHbox); - vbox.add(new Gtk.Separator({visible : true})); - } + function vBoxAddSeleCt(getInt, whichHbox, getLbl, aRray = [], getTooTip = ""){ + boolComp = (thset.get_int(getInt) == thset.get_default_value(getInt).unpack()); + getLbl = boolComp ? getLbl : + `${getLbl}` + tootext = boolComp ? "" : "The Value is Changed" + + whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: tootext }); + whichVlue = new Gtk.ComboBoxText({halign: Gtk.Align.END, tooltip_text: getTooTip}); + + for (i in aRray){ + whichVlue.append_text(aRray[i]); + } + + whichVlue.set_active(Math.round(thset.get_int(getInt))); + whichVlue.connect('changed', (widget) => { + let valueMode = widget.get_active(); + thset.set_int(getInt, valueMode); + }) + whichHbox.add(whichLbl); + whichHbox.pack_end(whichVlue, true, true, 0); + + vbox.add(whichHbox); + vbox.add(new Gtk.Separator({visible : true})); } function vBoxAddTgglBtn(whichHbox, getLbl, getBool,getTooTip = ""){ @@ -103,71 +111,47 @@ Prefs.prototype = let vbox = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, margin_left: 20}); let footer = new Gtk.Label({ label: "To See the changes Disable and then re-enable the extension",use_markup: true, margin_top: 20}); - //For Position - let hboxWPos = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); - vBoxAddSeleCt(true, "wpos", hboxWPos, "Position", "Choose where to Place the extension"); - whichVlue.append_text("Right"); - whichVlue.append_text("Left"); - whichVlue.append_text("Center"); - vBoxAddSeleCt(false, "wpos", hboxWPos); - -//Refresh time - let hboxRTime = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); - vBoxSpinBtn(true, "refreshtime", hboxRTime, "Refresh Time"); - whichSpinBtn = new Gtk.SpinButton({ - adjustment: new Gtk.Adjustment({ - lower: 1.0, upper: 10.0, step_increment: .1, page_increment: 1, page_size: 0, - }), - climb_rate: 1, - digits: 1, - numeric: true, - }); - vBoxSpinBtn(false, "refreshtime", hboxRTime); - - //For Modes - let hboxMode = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); - vBoxAddSeleCt(true, "mode", hboxMode, "Mode (1-5)", "Choose which mode to load"); - whichVlue.append_text("Mode 1"); - whichVlue.append_text("Mode 2"); - whichVlue.append_text("Mode 3"); - whichVlue.append_text("Mode 4"); - whichVlue.append_text("Mode 5"); - vBoxAddSeleCt(false, "mode", hboxMode); - - //For FontModes - let hboxFontMode = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); - vBoxAddSeleCt(true, "fontmode", hboxFontMode, "Font Mode", "Choose which font to display"); - whichVlue.append_text("Default"); - whichVlue.append_text("Smallest"); - whichVlue.append_text("Smaller"); - whichVlue.append_text("Small"); - whichVlue.append_text("Large"); - vBoxAddSeleCt(false, "fontmode", hboxFontMode); - -//For Vertical Alignment - let hboxVertical = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); - vBoxAddTgglBtn(hboxVertical, "Vertical Align", "isvertical", "Changing it will toggle Vertical Alignment"); - -//For Default sigma View - let hboxToggleBool = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); - vBoxAddTgglBtn(hboxToggleBool, "Show Total Download speed", "togglebool", "Enabling it will show sigma by default"); - -//For Toggling Old Icons - let hboxIconset = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); - vBoxAddSeleCt(true, "chooseiconset", hboxIconset, "Choose Icons Set", "Choose which icon set to display"); - whichVlue.append_text(' 🡳, 🡱, Σ '); - whichVlue.append_text(' ↓, ↑, ∑ '); - vBoxAddSeleCt(false, "chooseiconset", hboxIconset); - -//For Lock Mouse Actions - let hboxLckMuseAct = new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); - vBoxAddTgglBtn(hboxLckMuseAct, "Lock Mouse Actions", "lockmouseactions", "Enabling it will Lock Mouse Actions"); + //For Position + let hboxWPos = newGtkBox(); + vBoxAddSeleCt("wpos", hboxWPos, "Position on the Panel", ["Right","Left","Center"], "Choose where to Place the extension on the Panel"); + + //For Position Extras + let hboxWPosExt = newGtkBox(); + vBoxAddSeleCt("wposext", hboxWPosExt, "Position(Advanced)", ["Prefer Right Side", "Prefer Left Side"], "Choose further where to Place the extension"); + + //Refresh time + let hboxRTime = newGtkBox(); + vBoxSpinBtn("refreshtime", hboxRTime, "Refresh Time", 1.0, 10.0, .1, 1); + + //For Modes + let hboxMode = newGtkBox(); + vBoxAddSeleCt("mode", hboxMode, "Mode", ["Mode 1", "Mode 2", "Mode 3", "Mode 4", "Mode 5"], "Choose which mode to load"); + + //For FontModes + let hboxFontMode = newGtkBox(); + vBoxAddSeleCt("fontmode", hboxFontMode, "Font Mode", ["Default", "Smallest","Smaller","Small","Large"], "Choose which font to display"); + + //For Vertical Alignment + let hboxVertical = newGtkBox(); + vBoxAddTgglBtn(hboxVertical, "Vertical Align", "isvertical", "Changing it will toggle Vertical Alignment"); + + //For Default sigma View + let hboxToggleBool = newGtkBox(); + vBoxAddTgglBtn(hboxToggleBool, "Show Total Download speed", "togglebool", "Enabling it will show sigma by default"); + + //For Toggling Old Icons + let hboxIconset = newGtkBox(); + vBoxAddSeleCt("chooseiconset", hboxIconset, "Choose Icons Set", [" 🡳, 🡱, Σ ", " ↓, ↑, ∑ "], "Choose which icon set to display"); + + //For Lock Mouse Actions + let hboxLckMuseAct = newGtkBox(); + vBoxAddTgglBtn(hboxLckMuseAct, "Lock Mouse Actions", "lockmouseactions", "Enabling it will Lock Mouse Actions"); frame.add(label); frame.add(vbox); frame.add(footer); frame.show_all(); - + return frame; } } diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index 76e96fabdb984621ca438701792bf4fe6754685e..d68e952dbd0f7f81b649bad4176e367644d02d60 100644 GIT binary patch literal 867 zcmZ`%F^JSa6#aU)?s`7mZ!*VcF3MEigTDb!4i_KkQ}^M|z{g;8 zbx@0J$O?E3`1I=QE-mUq$Pd9O@aEaHPoH`Teg(b8&t({`$Ar_&^-FTr+Lt5L1&#Ob2lJX`Pf`iT5oZ}{YS2{P1~ zWvDYZ>6OAH*W(dr3ztQ8x`lRunI`(dVNbL~FVHXW_VCfU z2krfXBoAV5BHw_Xf=;fv#~;{7kzYV>z}VgDA?NH9$lK5-u4Q`XoU`Zr8Ttwq?=QnS z?0HU4OcQ*1_f0K%4%Ecl9!j#HC`n)KbkD@!7MC1%WQbu(~vU(7{!s>;`$$b>!;!-+r@ QizT_GR7uYp8Qm45zv{ADApigX diff --git a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml index e89957a..ebf78f6 100644 --- a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml +++ b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml @@ -12,6 +12,10 @@ 0 + + + + 0 From a0f04f84c30a5b37ea34128f6a87c2c4f828128d Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 4 Nov 2020 13:34:48 +0530 Subject: [PATCH 173/344] Update README.md --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 691ad89..760a67c 100644 --- a/README.md +++ b/README.md @@ -21,21 +21,22 @@ #### Whats new in v11 and above: - [x] Add Preference Dialog with lots of default customizations. - [x] Add Lock Mouse Actions button in Prefrences to disable any mouse click behaviour. -- [x] Add Position menu to decide where to place the indicator on the Panel. +- [x] Add Position menu(with Advanced option) to pinpoint where to place the indicator on the Panel. - [x] Add Refresh time field by which you can change refresh time value between 1.0 sec to 10.0 sec. #### Feature Highlights : -- [x] Reduce Refresh time -- [x] Supports GNOME SHELL 3.38 +- [x] Adjustabl Refresh time +- [x] Supports GNOME SHELL 3.38 and previous versions compatible - [x] Changes width accordingly / dynamic width - [x] Centred and more cleaner ui - [x] Changed Kbps to kbp/s - [x] New sigma icon that respects vertical alignment(old: ∑ , new: Σ) - [x] New Speed up and down icons for mode 3 & 4. (old: ↓ and ↑ , new: 🡳 and 🡱) - [x] Added space b/w speed and their units -- [x] Human readable stylesheet // used minimum width and removed repetitive codes +- [x] Human readable stylesheet // used min-width and removed repetitive codes - [x] Used ES6 classes for less code and more efficent javascript - [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. +- [x] Add Preference Menu to customize the whole extension as you need #### Changelog Till v10 : - [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode From 422381ac23dc39e1a96678bc48406afe910ef8c9 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 4 Nov 2020 13:37:28 +0530 Subject: [PATCH 174/344] Remove TODO from Readme --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index 760a67c..29d412c 100644 --- a/README.md +++ b/README.md @@ -46,9 +46,6 @@ - [x] Easy Switch to Old Icons from simplenetspeed extension, go to prefrences tab for this extension to enable/disable old icons. *(If you have old icons enabled then in mode 5 you will see " -o" written after total net speed)* -#### Todo : -***Nothing TODO*** - if you face any **issues** you can **[open pull request](https://github.com/prateekmedia/netspeedsimplified/pulls)** and can type your issue with images or error codes > **Left click to change modes**, From 75665bba5a3aaeaa2a96716701fdd88c488c7a9b Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 4 Nov 2020 14:12:48 +0530 Subject: [PATCH 175/344] Improve Code and Syntax --- extension.js | 11 +++-------- prefs.js | 28 ++++++++++++++-------------- 2 files changed, 17 insertions(+), 22 deletions(-) diff --git a/extension.js b/extension.js index a764a66..09a24fa 100644 --- a/extension.js +++ b/extension.js @@ -27,7 +27,7 @@ let settings, resetNextCount=false, resetCount=0, reuseable_text, newLine, h=8, tTime=0, chooseIconSet; -var extRaw, rClickCount=0, isVertical, togglebool, DIcons=[], DWPos=[], lckMuseAct; +var extRaw, rClickCount=0, isVertical, togglebool, DIcons=[], lckMuseAct; const ShowNetBtn = new Lang.Class({ Name: ButtonName, @@ -208,16 +208,11 @@ function speedToString(amount, rMode = 0) { return Number.isInteger(parseFloat(amnt.toFixed(digitsToFix))); } digits = ChkifInt(amount) ? 0 : //For Integer like 21.0 - ((mode==4 || rMode !=0) && !ChkifInt(amount*10)) ? 2 /* For floats like 21.1 */ : 1 //For floats like 21.22 + ((mode==4 || rMode !=0) && !ChkifInt(amount*10)) ? 2 /* For floats like 21.11 */ : 1 //For floats like 21.2 return String(amount.toFixed(digits)) + " " + speed_map[unit]; } -function chooseArrayVal(){ - DIcons = (chooseIconSet ==1) ? ["↓","↑","∑"] : - ["🡳","🡱","Σ"] -} - function enable() { refreshTime = settings.get_double('refreshtime'); mode = settings.get_int('mode'); // default mode using bit (b/s, kb/s); @@ -229,10 +224,10 @@ function enable() { chooseIconSet = settings.get_int('chooseiconset'); lckMuseAct = settings.get_boolean('lockmouseactions'); fontmode = settings.get_int('fontmode'); + DIcons = [ ["🡳","🡱","Σ"] , ["↓","↑","∑"] ][chooseIconSet] button = new ShowNetBtn(); - chooseArrayVal(); Main.panel.addToStatusArea(ButtonName, button, whePosExt, whePos); timeout = Mainloop.timeout_add_seconds(refreshTime, parseStat); diff --git a/prefs.js b/prefs.js index 30460ce..d88fb88 100644 --- a/prefs.js +++ b/prefs.js @@ -1,5 +1,4 @@ const Gtk = imports.gi.Gtk; -const Lang = imports.lang; const Extension = imports.misc.extensionUtils.getCurrentExtension(); const Lib = Extension.imports.lib; @@ -35,15 +34,14 @@ Prefs.prototype = return new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); } - function vBoxSpinBtn(getDouble, whichHbox, getLbl = "", lwer , uper, stpInc = 1, digs = 0, nume = true, pgeInc = 1, pgeSiz = 0, clmrate = 1){ + function vBoxSpinBtn(getDouble, whichHbox, getLbl = "", getTooTip = "", lwer , uper, stpInc = 1, digs = 0, nume = true, pgeInc = 1, pgeSiz = 0, clmrate = 1){ boolComp = (thset.get_double(getDouble) === thset.get_default_value(getDouble).unpack()); getLbl = boolComp ? getLbl : `${getLbl}` - tootext = boolComp ? "" : "The Value is Changed" - whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: tootext }); + whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }); whichSpinBtn = new Gtk.SpinButton({ adjustment: new Gtk.Adjustment({ - lower: lwer, upper: uper, step_increment: stpInc, page_increment: pgeInc, page_size: pgeSiz, + lower: lwer, upper: uper, step_increment: stpInc, page_increment: pgeInc, page_size: pgeSiz }), climb_rate: clmrate, digits: digs, @@ -69,8 +67,8 @@ Prefs.prototype = `${getLbl}` tootext = boolComp ? "" : "The Value is Changed" - whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: tootext }); - whichVlue = new Gtk.ComboBoxText({halign: Gtk.Align.END, tooltip_text: getTooTip}); + whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0,tooltip_text: getTooTip}); + whichVlue = new Gtk.ComboBoxText({halign: Gtk.Align.END, tooltip_text: tootext }); for (i in aRray){ whichVlue.append_text(aRray[i]); @@ -88,14 +86,14 @@ Prefs.prototype = vbox.add(new Gtk.Separator({visible : true})); } - function vBoxAddTgglBtn(whichHbox, getLbl, getBool,getTooTip = ""){ + function vBoxAddTgglBtn(whichHbox, getLbl, getBool, getTooTip = ""){ boolComp = (thset.get_boolean(getBool) == thset.get_default_value(getBool).unpack()); getLbl = boolComp ? getLbl : `${getLbl}` tootext = boolComp ? "" : "The Value is Changed" - whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: tootext }); - whichVlue = new Gtk.Switch({active: thset.get_boolean(getBool), tooltip_text: getTooTip }); - whichVlue.connect('notify::active', (widget, whichVlue) => { + whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }); + whichVlue = new Gtk.Switch({active: thset.get_boolean(getBool), tooltip_text: tootext }); + whichVlue.connect('notify::active', (widget) => { thset.set_boolean(getBool, widget.active); }) @@ -109,7 +107,8 @@ Prefs.prototype = let frame = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, border_width: 10}); let label = new Gtk.Label({ label: "Default Settings", use_markup: true, xalign:0}); let vbox = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, margin_left: 20}); - let footer = new Gtk.Label({ label: "To See the changes Disable and then re-enable the extension",use_markup: true, margin_top: 20}); + let footer1 = new Gtk.Label({ label: "To See the changes Disable and then re-enable the extension",use_markup: true, margin_top: 20}); + let footer2 = new Gtk.Label({ label: "Pro Tip : Hover over any Label To know more about it",use_markup: true, margin_top: 20}); //For Position let hboxWPos = newGtkBox(); @@ -121,7 +120,7 @@ Prefs.prototype = //Refresh time let hboxRTime = newGtkBox(); - vBoxSpinBtn("refreshtime", hboxRTime, "Refresh Time", 1.0, 10.0, .1, 1); + vBoxSpinBtn("refreshtime", hboxRTime, "Refresh Time", "Change Refresh time value from anywhere b/w 1 to 10", 1.0, 10.0, .1, 1); //For Modes let hboxMode = newGtkBox(); @@ -149,7 +148,8 @@ Prefs.prototype = frame.add(label); frame.add(vbox); - frame.add(footer); + frame.add(footer1); + frame.add(footer2); frame.show_all(); return frame; From 5650e7bd0697742fd96732d48ef9ec69614d0c29 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 4 Nov 2020 14:32:01 +0530 Subject: [PATCH 176/344] Bump version to 15 --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index 62292bd..1978716 100644 --- a/metadata.json +++ b/metadata.json @@ -26,5 +26,5 @@ ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 14 + "version": 15 } From b0f2c7866bdc905dac7fcb76f7e9d14982b39c24 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 11 Nov 2020 02:57:52 -0500 Subject: [PATCH 177/344] Add Real time changes in settings After installing this update, whenever you will change something in settings it will show effect on extension in RealTime.. --- extension.js | 8 +++++++- prefs.js | 9 +++++---- schemas/gschemas.compiled | Bin 867 -> 915 bytes ...ll.extensions.netspeedsimplified.gschema.xml | 3 +++ 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/extension.js b/extension.js index 09a24fa..55a5a45 100644 --- a/extension.js +++ b/extension.js @@ -6,7 +6,7 @@ const Clutter = imports.gi.Clutter, PanelMenu = imports.ui.panelMenu, Mainloop = imports.mainloop; -var refreshTime; +var refreshTime, toRestart; const ExtensionUtils = imports.misc.extensionUtils; const Me = ExtensionUtils.getCurrentExtension(); @@ -93,6 +93,7 @@ function chooseLabel() { } function parseStat() { + toRestart = settings.get_boolean('restartextension'); try { let input_file = Gio.file_new_for_path('/proc/net/dev'); let fstream = input_file.read(null); @@ -182,6 +183,11 @@ function parseStat() { lastCountUp = countUp; lastSpeed = speed; button.add_child(chooseLabel()); + if (toRestart != false){ + settings.set_boolean('restartextension', false); + disable(); + enable(); + } } catch (e) { ioSpeed.set_text(e.message); } diff --git a/prefs.js b/prefs.js index d88fb88..002bf98 100644 --- a/prefs.js +++ b/prefs.js @@ -52,6 +52,7 @@ Prefs.prototype = this.rTValue = parseFloat(whichSpinBtn.get_value().toFixed(1)); if(thset.get_double(getDouble) !== this.rTValue){ thset.set_double(getDouble , this.rTValue); + thset.set_boolean('restartextension' , true); } }); whichHbox.pack_start(whichLbl, true, true, 0); @@ -78,6 +79,7 @@ Prefs.prototype = whichVlue.connect('changed', (widget) => { let valueMode = widget.get_active(); thset.set_int(getInt, valueMode); + thset.set_boolean('restartextension' , true); }) whichHbox.add(whichLbl); whichHbox.pack_end(whichVlue, true, true, 0); @@ -95,6 +97,7 @@ Prefs.prototype = whichVlue = new Gtk.Switch({active: thset.get_boolean(getBool), tooltip_text: tootext }); whichVlue.connect('notify::active', (widget) => { thset.set_boolean(getBool, widget.active); + thset.set_boolean('restartextension' , true); }) whichHbox.pack_start(whichLbl, true, true, 0); @@ -107,8 +110,7 @@ Prefs.prototype = let frame = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, border_width: 10}); let label = new Gtk.Label({ label: "Default Settings", use_markup: true, xalign:0}); let vbox = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, margin_left: 20}); - let footer1 = new Gtk.Label({ label: "To See the changes Disable and then re-enable the extension",use_markup: true, margin_top: 20}); - let footer2 = new Gtk.Label({ label: "Pro Tip : Hover over any Label To know more about it",use_markup: true, margin_top: 20}); + let mfooter = new Gtk.Label({ label: "Pro Tip : Hover over any Label To know more about it",use_markup: true, margin_top: 20}); //For Position let hboxWPos = newGtkBox(); @@ -148,8 +150,7 @@ Prefs.prototype = frame.add(label); frame.add(vbox); - frame.add(footer1); - frame.add(footer2); + frame.add(mfooter); frame.show_all(); return frame; diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index d68e952dbd0f7f81b649bad4176e367644d02d60..2369bf9f71f227a1165876efc18a258d30bb9c80 100644 GIT binary patch literal 915 zcmah`F^kkd6n=WQ?z-p6SqKMWXOW;L_7-QS=+%cDSC~s?H-kxL$&BkMDu_0MonWDb z_X89JD{a(T5KG0z!p24fn{7nDZ?f4twD7TCzHh(0nV0w8*|ntBN#$f3%ixQR4)(St zxN}(KH==pB>T@>W-~PGrm}%4}<(%9Hf88U3pO|_W4J%Ws$mXgjBDLjIWwohnR4Hdi zN@Z4;qe2g~%8-u;4m9k~^A2JTm8SJWj=Keeh$6^v@@X=S(Ursr@;Hu z+c%g`J&*k7;CDb8u21MwFTno@o_yJIu^m1vgSe2xX(?<#-*bJQ+4hywuOws(;cC2cr(`5QT z8YM3G$r59kv0rBFml^LYGyZp(v4|a*%9SQl&3QiSspKvt(80Ap>o5#4i)OzVhY#+T zd**JjI=}ZG`0B{`Z*TAM`8)U2YEUbiJ6+CdPFC7n97p_EY53R~2{P2rGSug_=%#tY mXM2XVcYWuqnfCo(eW18YYBw7UPa`nrG&d-rQ_Nodzs?_`xT;_P literal 867 zcmZ`%F^JSa6#aU)?s`7mZ!*VcF3MEigTDb!4i_KkQ}^M|z{g;8 zbx@0J$O?E3`1I=QE-mUq$Pd9O@aEaHPoH`Teg(b8&t({`$Ar_&^-FTr+Lt5L1&#Ob2lJX`Pf`iT5oZ}{YS2{P1~ zWvDYZ>6OA false + + false + 0 From 68b8e58d05ec0c32cd4fb1eb126e415447716923 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 11 Nov 2020 02:59:50 -0500 Subject: [PATCH 178/344] Update code --- extension.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extension.js b/extension.js index 55a5a45..afc2482 100644 --- a/extension.js +++ b/extension.js @@ -183,7 +183,7 @@ function parseStat() { lastCountUp = countUp; lastSpeed = speed; button.add_child(chooseLabel()); - if (toRestart != false){ + if (toRestart == true){ settings.set_boolean('restartextension', false); disable(); enable(); From 0345b08705314d2e89165205c41b860accfd45b2 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 11 Nov 2020 03:26:20 -0500 Subject: [PATCH 179/344] Add screenshot file --- screenshoot.png | Bin 0 -> 77319 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 screenshoot.png diff --git a/screenshoot.png b/screenshoot.png new file mode 100644 index 0000000000000000000000000000000000000000..6ad54a65b162a39acbaa11ea09f3e7173c51e200 GIT binary patch literal 77319 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 literal 0 HcmV?d00001 From 7447ecc454d3844d0603369607792d2cccfcb305 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 11 Nov 2020 13:58:14 +0530 Subject: [PATCH 180/344] Update Screenshot link --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 29d412c..88849ad 100644 --- a/README.md +++ b/README.md @@ -8,11 +8,11 @@ > Forked from : [biji.gnome/simplenetspeed](https://github.com/biji/simplenetspeed) -

Screenshot +

Screenshot *Screenshots* - *Above Screenshot is with Matcha sea theme*

+ *Above Screenshot is with Adwaita Dark theme*

From c8b81ed3da8523e7722c071e2ff9d483afe0ba94 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 11 Nov 2020 14:04:53 +0530 Subject: [PATCH 181/344] Update metadata.json --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index 1978716..6d184e8 100644 --- a/metadata.json +++ b/metadata.json @@ -1,5 +1,5 @@ { - "description": "Fork of Simple Net speed by bijignome \n\nTested on gnome 3.36 and 3.38\n\nAdded Preference Menu with changable refresh rate and slight code improvements\n\nWhats New:\n Clean UI, Reduce refresh time, Fix repetitive code in stylesheet.css, \nRight Click to view total downloaded data in bits and bytes, Lesser Code Better Code,\n new Sigma and Up and down Arrow icons, dynamic width,\n used kb/s instead of Kbps, added spaces where needed,\n If you don't have active net connection for 12 seconds then this extension will show '--' instead of 0 B/s,\n Added vertical align support for dash to panel or big screen users(to use it just right click 4 time continuously on any mode to toggle vertical align), \nAdded old icons from simplenetspeed extension(to use it go to preferences and toggle Use old icons) and more coming\n\nLeft Click To change modes.\n\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up and down speed in bits per second\n4. Up and down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter\n\nRight Click To toggle visibility of Total Up and Down or Reset counter for 5th mode.\n\nRight Click four times continuously to toggle Vertical alignment\n\nMiddle Click to change font size.", + "description": "Fork of Simple Net speed by bijignome \n\nTested on gnome 3.36 and 3.38\n\n+ Added Preference Menu with option to change refresh rate and more\n+ Now if you change something from preferences it will apply in real time.\n\nWhats New:\n Clean UI, Changeable refresh time, Fix repetitive code in stylesheet.css, \nRight Click to view total downloaded data in bits and bytes, Lesser Code Better Code,\n new Sigma and Up and down Arrow icons, dynamic width,\n used kb/s instead of Kbps, added spaces where needed,\n If you don't have active net connection for 12 seconds then this extension will show '--' instead of 0 B/s,\n Added vertical align support for dash to panel or big screen users(to use it just right click 4 time continuously on any mode to toggle vertical align), \nAdded old icons from simplenetspeed extension(to use it go to preferences and toggle Use old icons) and more coming\n\nLeft Click To change modes.\n\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up and down speed in bits per second\n4. Up and down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter\n\nRight Click To toggle visibility of Total Up and Down or Reset counter for 5th mode.\n\nRight Click four times continuously to toggle Vertical alignment\n\nMiddle Click to change font size.", "name": "Net speed Simplified", "shell-version": [ "3.14", From a98bbf857974643ea55cea339f5743ef2bdd61a4 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 11 Nov 2020 14:05:52 +0530 Subject: [PATCH 182/344] Fix some typo --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 88849ad..fbad7a6 100644 --- a/README.md +++ b/README.md @@ -20,12 +20,12 @@ #### Whats new in v11 and above: - [x] Add Preference Dialog with lots of default customizations. -- [x] Add Lock Mouse Actions button in Prefrences to disable any mouse click behaviour. +- [x] Add Lock Mouse Actions button in Preferences to disable any mouse click behaviour. - [x] Add Position menu(with Advanced option) to pinpoint where to place the indicator on the Panel. - [x] Add Refresh time field by which you can change refresh time value between 1.0 sec to 10.0 sec. #### Feature Highlights : -- [x] Adjustabl Refresh time +- [x] Adjustable Refresh time - [x] Supports GNOME SHELL 3.38 and previous versions compatible - [x] Changes width accordingly / dynamic width - [x] Centred and more cleaner ui From 187446a928185b1e0a7abd7948cebe6eee02ff5f Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 11 Nov 2020 14:08:34 +0530 Subject: [PATCH 183/344] Bump version to 16 --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index 6d184e8..56ae9ff 100644 --- a/metadata.json +++ b/metadata.json @@ -26,5 +26,5 @@ ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 15 + "version": 16 } From caf6025c24eaad494fe9225923ca9633ce20f065 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 11 Nov 2020 14:09:46 +0530 Subject: [PATCH 184/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fbad7a6..b8a0853 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,7 @@ if you face any **issues** you can **[open pull request](https://github.com/prat

Installing the extension using terminal:

-* Please Mark this extension page as Watch if you want to know about the updates +* Please Star this repository and mark it as Watch if you want to know about latest updates. - ***to install( reload required )( Requirements : git )*** ```mkdir ~/.local/share/gnome-shell/extensions/; git clone --single-branch --branch main https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` From 80f07b0b8165ca81c8d410e7fd473a75aab10367 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 11 Nov 2020 14:14:16 +0530 Subject: [PATCH 185/344] Add current version in Readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b8a0853..d4d921f 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ *Above Screenshot is with Adwaita Dark theme*

- +**Current Version** : ***16*** ***Tested on GNOME 3.36 and 3.38*** From 7ff86d00971e865bf42b57487fd66de2992762b0 Mon Sep 17 00:00:00 2001 From: Mohith Reddy Date: Sat, 14 Nov 2020 20:47:08 +0530 Subject: [PATCH 186/344] Declaring styleName variable before initializing in if_else block in chooseLabel() --- extension.js | 1 + 1 file changed, 1 insertion(+) diff --git a/extension.js b/extension.js index afc2482..8c15bf8 100644 --- a/extension.js +++ b/extension.js @@ -81,6 +81,7 @@ function changeMode(widget, event) { function chooseLabel() { addArg = (mode==4) ? true : false + var styleName; if (mode == 0 || mode == 1 || mode == 4) styleName = 'sumall'; else if(!isVertical) styleName = 'upanddown'; let extraw = ''; From 50490366293fffc6b25e56fa58838b8a538d619d Mon Sep 17 00:00:00 2001 From: Prateek SU Date: Sun, 15 Nov 2020 14:17:37 +0530 Subject: [PATCH 187/344] Removed Unnecessary files --- lib.js | 35 ----------------------------------- prefs.js | 6 +++--- 2 files changed, 3 insertions(+), 38 deletions(-) delete mode 100644 lib.js diff --git a/lib.js b/lib.js deleted file mode 100644 index 3c75883..0000000 --- a/lib.js +++ /dev/null @@ -1,35 +0,0 @@ -const Gio = imports.gi.Gio; -const Extension = imports.misc.extensionUtils.getCurrentExtension(); - -function Settings(schema) -{ - this.init(schema); -} - -Settings.prototype = -{ - schema: null, - - init: function(schema) - { - this.schema = schema; - }, - - getSettings: function() - { - const GioSSS = Gio.SettingsSchemaSource; - - let schemaDir = Extension.dir.get_child('schemas'); - let schemaSource; - if (schemaDir.query_exists(null)) - schemaSource = GioSSS.new_from_directory(schemaDir.get_path(), GioSSS.get_default(), false); - else - schemaSource = GioSSS.get_default(); - - let schemaObj = schemaSource.lookup(this.schema, true); - if (! schemaObj) - throw new Error('Schema ' + this.schema + ' could not be found for extension ' + Extension.metadata.uuid + '. Please check your installation.'); - - return new Gio.Settings({settings_schema: schemaObj}) - } -} diff --git a/prefs.js b/prefs.js index 002bf98..da62b46 100644 --- a/prefs.js +++ b/prefs.js @@ -1,7 +1,7 @@ const Gtk = imports.gi.Gtk; const Extension = imports.misc.extensionUtils.getCurrentExtension(); -const Lib = Extension.imports.lib; +const Convenience = Extension.imports.convenience; const schema = "org.gnome.shell.extensions.netspeedsimplified"; @@ -22,8 +22,8 @@ Prefs.prototype = settings: null, init: function(schema) { - let settings = new Lib.Settings(schema); - this.settings = settings.getSettings(); + let settings = new Convenience.getSettings(schema); + this.settings = settings; }, buildPrefsWidget: function() From 0055af561f4b82f2467e676e4b90166adfd0a4e0 Mon Sep 17 00:00:00 2001 From: Prateek SU Date: Sun, 15 Nov 2020 14:30:11 +0530 Subject: [PATCH 188/344] Bump version to 18 --- README.md | 2 +- metadata.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d4d921f..a3dac63 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ *Above Screenshot is with Adwaita Dark theme*

-**Current Version** : ***16*** +**Current Version** : ***18*** ***Tested on GNOME 3.36 and 3.38*** diff --git a/metadata.json b/metadata.json index 56ae9ff..1e80e99 100644 --- a/metadata.json +++ b/metadata.json @@ -26,5 +26,5 @@ ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 16 + "version": 18 } From 10cc4f63766b0d101bdbd82fb124e968a1d310fc Mon Sep 17 00:00:00 2001 From: Mohith Reddy Date: Sun, 15 Nov 2020 15:02:19 +0530 Subject: [PATCH 189/344] Added option to toggle the direction of speed indicators --- extension.js | 28 ++++++++++++++---- prefs.js | 4 +++ schemas/gschemas.compiled | Bin 915 -> 984 bytes ....extensions.netspeedsimplified.gschema.xml | 3 ++ 4 files changed, 29 insertions(+), 6 deletions(-) diff --git a/extension.js b/extension.js index 8c15bf8..fc7690e 100644 --- a/extension.js +++ b/extension.js @@ -27,7 +27,7 @@ let settings, resetNextCount=false, resetCount=0, reuseable_text, newLine, h=8, tTime=0, chooseIconSet; -var extRaw, rClickCount=0, isVertical, togglebool, DIcons=[], lckMuseAct; +var extRaw, rClickCount=0, isVertical, togglebool, DIcons=[], lckMuseAct, revIndicator; const ShowNetBtn = new Lang.Class({ Name: ButtonName, @@ -173,11 +173,26 @@ function parseStat() { if (chooseIconSet !=0) spaCe = "" ; else spaCe = " "; (speed || speedUp) ? h = 0 : h++ - if(h<=8){ - reuseable_text = (mode >= 0 && mode <= 1) ? `${dot} ${speedToString(speed)} ${commonSigma(togglebool)}` : - (mode >= 2 && mode <= 3) ? `${DIcons[0]} ${spaCe}${speedToString(speed - speedUp)} ${newLine}${DIcons[1]} ${spaCe}${speedToString(speedUp)} ${commonSigma(togglebool)}` : - (mode == 4) ? commonSigma(): "Mode Unavailable" - } + + if(h<=8) { + + if (mode >= 0 && mode <= 1) { + reuseable_text = `${dot} ${speedToString(speed)} ${commonSigma(togglebool)}`; + } + else if (mode >= 2 && mode <= 3) { + if (revIndicator == false) + reuseable_text = `${DIcons[0]} ${spaCe}${speedToString(speed - speedUp)} ${newLine}${DIcons[1]} ${spaCe}${speedToString(speedUp)} ${commonSigma(togglebool)}`; + else + reuseable_text = `${DIcons[1]} ${spaCe}${speedToString(speedUp)} ${newLine}${DIcons[0]} ${spaCe}${speedToString(speed - speedUp)} ${commonSigma(togglebool)}`; + } + else if (mode == 4) { + reuseable_text = commonSigma(); + } + else { + reuseable_text = "Mode Unavailable"; + } + + } else reuseable_text = (mode !=4) ? "--".repeat(mode+1) + newLine + commonSigma(togglebool) : commonSigma(togglebool) ioSpeed.set_text(reuseable_text); lastCount = count; @@ -229,6 +244,7 @@ function enable() { togglebool = settings.get_boolean('togglebool'); isVertical = settings.get_boolean('isvertical'); chooseIconSet = settings.get_int('chooseiconset'); + revIndicator = settings.get_boolean('reverseindicators'); lckMuseAct = settings.get_boolean('lockmouseactions'); fontmode = settings.get_int('fontmode'); DIcons = [ ["🡳","🡱","Σ"] , ["↓","↑","∑"] ][chooseIconSet] diff --git a/prefs.js b/prefs.js index da62b46..56b925f 100644 --- a/prefs.js +++ b/prefs.js @@ -144,6 +144,10 @@ Prefs.prototype = let hboxIconset = newGtkBox(); vBoxAddSeleCt("chooseiconset", hboxIconset, "Choose Icons Set", [" 🡳, 🡱, Σ ", " ↓, ↑, ∑ "], "Choose which icon set to display"); + //For Reversing the download and upload indicators + let hboxRevInd = newGtkBox(); + vBoxAddTgglBtn(hboxRevInd, "Show Upload First", "reverseindicators", "Enabling it will reverse the upload and download speed indicators"); + //For Lock Mouse Actions let hboxLckMuseAct = newGtkBox(); vBoxAddTgglBtn(hboxLckMuseAct, "Lock Mouse Actions", "lockmouseactions", "Enabling it will Lock Mouse Actions"); diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index 2369bf9f71f227a1165876efc18a258d30bb9c80..95ceb9e8ce68a55dda14801d609491f916ae43b6 100644 GIT binary patch literal 984 zcmZ`&J!lj`7#&T{JMWAng%A)cEp|b7(^y#~ouVnMLeMmu-MPCVyF2U7FZ5q5-YUglm zf*U7<_=Q&X%@;9C@bCXvdde{BbK;VC#2+Lc0_nWx^-`Tk&-7&+dveXn)F_=AFO}A0 zQbtB4S**HBM$8k!nJBr)=NMx^qrwqz6F7PRZRlgbjjg@+WY(S%12GLg1$=(Jw@IIR z0{#s63h?2=<{kRfzYx&?n1 z{1td{_RC}X)NS}f@K50Kt0zTWYSwLGfv16!FBcv%o|^G9;Pb$<;1JKximJ&?Pvj2IO^uIi_X4PNj2-?Y&}L9^nJGEGjqa;u)k4+{Vm=E W-$D!EG4d^R0KNe>z7Os>-^Xw4ez+?D delta 483 zcmXw#zb^w}7{{O9weGYkHAqlhOl^vo`42D{=unIHyxNO9uk_Ao1eLJZG;d4NFjg#vE*5hasqfRqlYH*`eZTMX{<@~2jI(8}6{_cEM+c}^A;>>Ee7Js0=)*WbB%poz&?xxx6l`0W%6y#*~gGKp*o&%Ip}_H&fY+t zfM&t`!$o%=_PoywbO9LA_dV`spP-e1)?ftqeEe?k1p7D^RG|tu(%N+8jwcG1Z_6zY zEvR%c false + + false + From df619fc31ee41c36a436b58f2ee967820eb0352b Mon Sep 17 00:00:00 2001 From: Prateek SU Date: Sun, 15 Nov 2020 21:14:21 +0530 Subject: [PATCH 190/344] Bump version to 19 --- README.md | 2 +- metadata.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a3dac63..6aceeb0 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ *Above Screenshot is with Adwaita Dark theme*

-**Current Version** : ***18*** +**Current Version** : ***19*** ***Tested on GNOME 3.36 and 3.38*** diff --git a/metadata.json b/metadata.json index 1e80e99..e056ece 100644 --- a/metadata.json +++ b/metadata.json @@ -26,5 +26,5 @@ ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 18 + "version": 19 } From d13edfba3ee0878f62716660c449f09bbcf68646 Mon Sep 17 00:00:00 2001 From: Prateek SU Date: Sun, 15 Nov 2020 21:36:49 +0530 Subject: [PATCH 191/344] Update Screenshot --- screenshoot.png | Bin 77319 -> 81751 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/screenshoot.png b/screenshoot.png index 6ad54a65b162a39acbaa11ea09f3e7173c51e200..c4ff46180e56a4e82df2dd0817797e8a1639db57 100644 GIT binary patch literal 81751 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%0DX4C-?*yr!#^+oxzYVMX( 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
3D#3jr;KHvG@O245F8NJ_;6 z>7eL(+QN$d5^(;F5p*EDa~jS!Ha}bcHcqZgBr@`1MdZ5|Fi^u{f6i{ItMgaxWmghfg}&pa$z<$R>pcRmLHEAmnXVc#>Yao z?oOjz0V+@;#~tYF#hOC2*0SKDM4mqjL(s{0Q`7)hTV-XQ8kGg07W z@TKD?nf%p97)Y}^5N}9eG-x#bE1`wXo-qUgghY(}yV@ASY;ocb0b$oWxAMn8+Sc+{ z-G#gyn)R@;5bbwxa)i6(d8T?4xBqozYQi4{QLDi7x(Cz63)N#L(S|u316bY$Zdtnhjsmq1J_QI}y-ZR?DOAg2E99=tIC8K}1VZ)hbUBDuwYAoejfQ=`m} z8>1~N3ZX0N4&G+gvPDPF37_S%deG%#17pGrdo!yGGJDp1WOrU*iL$ukGF!v){qq%M zIXmU4l9%}KuMuLw0+vG$uJp0=ax+rbY^SOT6YPCUJR;%O_I!*Q_~0I!<7vV7=mGN( z=4gpC?V+)e;r=8qQzxbC(ZhL6AWl#Qsid1Ivpch7SPH+#4LRG`5>dr4k^fv7_sfJg zo&4xm1;6kMNSMfg7^XjdKhBmcX87a>5xt8;F{L14e8mT}PEi#bR1F!cvO>$}Dm1y_ z>Bd6SoJe%OTA{!x)uTt8+n2GtQAaz7g7P9tQNV>RdVybD5?6n`-%JRMZMLVi4G+y^ znKE}RiK0qsMWMaNZmzm@7#NhcUJgpJ_!Zg}^NQ{wdSScDiYk$g0;RD@T7ah!lgXnf0anp>Ojes31n2uVEr(;;x0W+jX(V>@oGo28ql|ued3GKocoQq!dQv&bJ^r~ z6{cE@fgYhC;p#iFYTVkwKM|u&DMqde1GY@5GYY_zo zVW0x7)Pw}B+QE02OAt>Ie$wu7Ef!t`hBcE1G2Do~-Fq4B7Slkj8BTf3uAd2yzs52^ z!E}Jb~p>4HjoyidERb=naiIYjE~~WK<&z&N(`JnFf4-ozQlx(COE_jCzZ^ zgqGd;FwY+=o=mXwC-)<}(gCQrIYCfUcHZjSP2t$FDZpvzY%3Wd;c;bFMF`-dD>?E zf$^kPoTT^S59+aI?DvL3{n@~}k!5bmTNPa0WU$OqJCy0+g#NfP$PcT9IItH4k`bwr zhw-qO$FRo@aYhqp?LYq`dcKJY_$`EF#^?iwjH`bwsBt0JeRVWosGJ=U+MQP#&;L|I zAmAJHciA2DA7D3ZaSejK>_NIm?RR! z3l1YrZ7^4#v?i0B>0F>zr>x8t4E$4Nt0vDXHdgrWtg^sk490o3IJaVajJ4jB?_9YC z$X`EG(BNzXShp;{(xrQcu?Cx>3+qPq-tuX-v}RBd?4>P=rGGn+g9bfax_FZv=$UlR z-9#jHB~;)!&%iNW-SCbeSiC{asQtQt38%M>-rP^ zAEB`J8^U(NW3DZesLE~6N;$wiq4bgJFefcg*a)ielm=A1n9WhIRe%yu3r=2F19x~7 zbo5lnLpb8deqTTV`EBUL4C~0}gFK{CoZ$-2WIU0irX4oq)1m?b+~z=+*lF{TAQfb0 z6ZX||Q1R6f&;(MPIcr`gLzyjDD;##sWRgdY3-efj=)0^*y-6glpt@Gmr|sDCU~A-9 zY!17m@abV6ji7+H+5bTrvNC8d{9@N=`>XAkql-o6?9LWNDJ13Kn@aqtVE0 zc1T@nXlk_KxHl>fuAH48i$Mf!Za=A}nD{u-+hM7N5xA;h&gNSVUZ!eIkgCv?CBM`!eCPl=CpZ!-Sq2vfN&WO%s1=eviokX$PxMx_pMlZM5+U zr|{A2EAXy0gJ?hh{^b))d-0taOVPq$D=VPCsfDcjPZDCQa^N!#zr6Lw(@YwiSmSeZ zbt>W=+fs?EHvKkv9_s!O>0bzo=fbc_1gF97e>AvYjeX2;O&6})Kv9DE(5u2N>R^@@ z?}ATsAAsP{B5$^9Lx293IH4=Y&rg%lv9k@F z>ZdR!lFvVS!T%0VJYn6eQlR>h1bnC<>xU{B>NDepp}#CoTtxb&4g?6!iIqmzm^B4r zqU5V)q=q4x%c@SspO9{fQP0bX@tyG0inewzFiLtJF~IURM@a$K&!FI0)X>e;gUETv zUPDjL=E0-jKm(+5SsLceXf}DdwUx@BGc4PT#>CwQQ)U`1m;5p zW*eef2n6u;)ZH$QF-xjEe^psoq|~Lp5YoWvE|xuuu)(Sm6Bz#6;AhC(=bAO9B}vY@ zNnIDPxBIB;ZAQ@nhO>Klu4m30$>)igm|4XGR+Ln0i(vkiqhU(W0y`Z4bLHINNL5u_ zbl6dwlaqJ(LTbwqbwv$ujUzo`0C`Txzx^~3ig(|ULsQ=hPz1(HK4pblZOFPi*9x|f z9q~r9{Dg!L!ut1K6LL?(rTG5FT4al#xpzGMep3VT5Rp^Z)gAh zHRQB!e-V=aonlN(6Uy^c^*qTF{$qJbkMC!v>R&2qL$>`^+&3iFia0+h z%x7z(j`T5l`DivmKZS3RLL~1xqYNsj!{z#xbaVZ#KUvEjhQFhS7X-m%|Ik2wu49*7 zx#u+}CH40msE4)m0vI7Uv*h=CGO~+6L_Zp((CX1q+~pGNSHmjtq#~m~pPb>zmzW&9 zoFN0Ts>C7?L)IXH---)U)xJJc3O>dCjkzY9mJYfL1ChjWWow-9ptjezP1VBkgK!W) z53G`J-{3{g$m2wZGxWwRgcRe^Yl}irT$~1dgZ?PztxfX&PQ|@DUr4a5X~-1*iPq&n z8&^vh6OU=Ak2+9@@~1f&`Pv(v=W*_=3yscM;2L)Y#^|K9 zP=Fm&9esjpGzEw-;+=)e`)x!8je6cyAN8k;=)ivyy!CDEuA@i%U z0_%(Ql#h!3$tX%zikQzL#efb{K`BhkPity;&ykjBRg*u#O8&Ov-G3lB^JEHg$JMI} zZ#yxKy+Qrgu6gB^`7Y8R~Lu4o_GY zkQD$*7h_#Sw0a&XY_fmqZcB84XW+1pixlm^oC)`FcUs02xN0`N2rvGs>tCLMDU~oN z>oRU$v4lmCZSR4(rQY12RzPv7uBv3BYgE7lx1b3z@?1p`%a$?TE| zydY-20d*SS6xE_97?RF3s&)0jP`O&vb zW1fLr4ee=yo;2S(?N-aR)};u}a4e_~-YEFgWDY3Ds>I8&BU?(thELO>1JH*LFWoLA z9p8J@W7BkjW-J;1Cx=*YKQYNf)4#;d#wI3sH}9WFRxngP=jmc&*nTQopN{Kmklhg` ze<{dB*Fl+qo2FZjy0FF{`UMo0s{qa3R8P{&9J+A^nGp1HU2y{}DaGdGxUB)r_#M)A zq>;X%uHppSspg?{6wBUbHDF#7m5jszippkFFC|n4=g-(~JxUH1dwK+XduID28d_;x)#srLkg^S0bh6yz_}{D3ro2Pabgjdka1xoRu(ck(_AC7Fu&M*o3pB{ zW(T4HY7`w*QNL~fL|+5Ct?a|OYI2+J=Ve`lbg3ZeFp=&Dga*C;+z*glw5vJQ6=)== zL-KdHQaukcT!1FbG+5BurT>L<&p#d~n;y={em&A1V;0occ4gfXlCcZe-HuEHD zCg)TZ5jvZlh*ZcPa_djnSPkJvbxhxQWQ!laWTt)vh7@+D5P8&13OIM=x8y>gdMhM^ z?;t6>oSgWuIY+zQU8jau-LyWfJv)%X!{X|K#xQ+~DO<&&zK9|oLpv?7h8qc?I?Gkl zizrG>tTt15raV$|)!u!L&q?5@r9Fv#|`jW&u#P9bif)+fkM~K zRF8?aE}&9Rx_TT;{71?1+n-LZ`$XdWDt5wle3>C?Wf~Q}jPr!@GBh%cBBe7u$pqDN zOPttljC}*G)vt61Cn0mGV_sqPe*1cMYvmp93ahrh6PIEc!UX4In&-T6_b~45cY-zA zC$sawHf~esHb1yDIDNsx%;)4jFt|pa zPuy$_b%C*>;61UJ?7;ckB$lN0#{c$cQD*vZ`w`_KTg6l1g&9z5v`bng2`DBP`G~ z`u~&h{wH~Fq-_zH^RZ(I`$^|R4o-ePJN&q7%fC8o>N5W%>5)wVyIyBWe4~YLt72a! zN#4iAB9g>&3uB6^LB{)mR-b&oPk!Hj8~blhK52nvg+k_lxA#pgKuwP|I50u@?OxdL zre>(>z30D_LjCt$gZJx{Poklp@BOK8Er?H6`y`gK_{QekfaG>l`1Psk8w|MX{c4gV z_Vv2zdqGTm@^i1f-(8u(8?s;OhtOQtiVW8+p+eT^o5 zf*PXuA00of|H*PJ|FlN~Cc~#O82jP>%Z%*#U%`KrF859Zp~Ie0;MHvM6!06{cO6T- zi60>L77y1|Wj(EEk>n>o$9{~$Geo@(GLcfn;$h0wlmE*%VSv*9CiyIWwIY)oaJe8_ z1NdnZJ{WKrfP8?cOu`PgDiPzOgKYZ_sGqa=ur)F= zGBY!?GB$^=spB%+pG9Xkk^7`oLq>kQpN)gigJ{&5i!!O>lXe7&y%ye6a}AqS-D!>K zKM@Yy@}m7qdBqpkJO|99>}5CDwL=WlDH#*!Lwes+^`l@jti!$)?LlLCL>k#Xfh)qD zBk8oXw9tO3sRYbQe~y6{dlULc)97dg`Js<;Z!xh>PZe{xGk73tEJA()4!=&{iAtuoCi!Ihou83! z$1O|ZLjvtAY|YJW4^5dbxH)Smjg1xND3CMwe*Ox2o~=)DVi_17C_;8yfpYt0=dL{x zldwhW zSIPRo^t0OphyCWHEirv6oXJetEQwd7SHa-s_AVR0I3x!f=qT9)%!g!?%kjw%#iTJ2 zGIJFh51f&$-efQM%1ZQJ&7s53pRvQO?)U3}V`KCBSGlC8dE2=PMC~pIRa~AhY7k zf^!O(yQ4#B_#`GK-e;{QSJ5E~S?gKJ zNAj1SXm(m_SQ38rs;g4_=2IJ~w)}C*2 zB=rn7*Z+fxuZ(J=`@U`|6!+ln1TF3sEI0%!?oOe&LveR^3lyigLve@V4#gdcd;8}3 zt@Z!#t~DQ$%*?%a?o95Sv-jCMyCOf;CaP4wYlwsp@29vtp+^9tK=*Ga6Q8(*;?NXl z#+LU4OyiG&eE!o3QAEnoT9xuycq`0bw&<)eKLS!}8eJ^(yPd5&O^pYonNllULbCLf zT=>y|J>8z7eJsd7$_%|6tWU>%NBvJ-r?OnDTIzGx$@74dcASDJK; z`OF&KvBh$cq0 zY!BZH0I+N!#V3MP2~mM!H18nEgW#);F^Ct!HzID^`omzsJ+#vXei>1yG~IGFpLh5a zt!D_kw(X2_fAW>_sjclf-}`&R!Wi+^0vq~Ojr-VtfyW^HXt@C>YR^)(uF-+$2s^1G z*M{Aua!%K7JF}$NqLaT{Fw&)%R&23ClG?_(iY?~AE=z7RDo{i2^SJlu-cGygq(^B? zpau@Rnds^89b1T4(gXRG&|-kC@n4&Z@hF`SU=Bx2Z_Sltv=o%S4vLXkm&;~R2RV61 zyRtk@J1T@95;M-pUy0k0QGghlnOS2@-~T9>-PrAFH(cFbFH_q}!OD1HZ}SyYD0sxN zIb&^E%K|HjrrEf|9vsiP=ZGr1_Vfycw#F3hiOyfZ1haG)^EWA9+(;6##tauGYNy0< z^}V%9?@BbJzwFL=6@_*`zycu_8_Zr*A2G6T6K`c^{9s9Y)Q6h3?u>@kQ4c)A?iH4RW(D9A5|;S_lcNPA@eQS(hi4XlCk`0&VrY zOHozI!kn`OE37Wd^LU5zHVB{>d}8?@p$Fh9h}|^Atb1nE-DD`P?2bmV)wUd?FBwU5JMq@G)Y@A` zspj_Uo0tA~mwBMZ_thzf12**EeSJGKf@n_!MI^rk!ZWD${%HJ^ns00HOQ881XOGwX z<2K#kY|@WVYaSf6Ix9ZP67b7klDN_@`iSMJ&{o$XLRFDEqyFiAnWK0K1B0xms{Q!} zT{2DGeCRQeW4-g&224VK)tvVezdipMAFh8^sJpgw1_gwV)S0cidFgAYeJ0gbw?YC+ zZC$qTxLGc#EYO*|dwT(gbjMQvwURa^r#TzL;&KP7P~#`@+oqqosq=$_X4P$Ra*~Di zg@k&1GasxMMhuO{s~aYA^gcVL7j+{ZRgBc6k3u0eRZh_D7&dkUa4e=U6ODv>R~iV* z0GQf*qZ#{xqN2)*SNF^99FC#5G<`H1A%{J8249tDaBVO})UL-+E+3gO!%!Cp6V++m zF|c{Dg#(nqcBS}M^CY@V41ObS%mvf7c zc=#^i4m_@68DI)xg6TvEz3t=vFI473*=zNUv-tDz^ekQK3>8O(MP7$odFCF~N@rwr zC7o{5yw9J9y1X*8z7gQcy&yZiGh@|OH$Y4I>e_bO*0`* zsxfp`VXZ=}J|+RMgThO=8TjbZyj6JlU`7IZ?@$nNhqV~K>ZGeua=1rltU6HQJvX*- zvFoC{m7#-&d{c7);QM!R6^BA=!z;G8`BF1{26ew`bnF}=T3!OhncBD<5jf=cb-5-Z zkf$`4l39r0{F9%Q@KpRelSxC*;iN-+7ku>$UgNOE#K$sHRSeuw%fAH;9AmM|7|YrC zl?P!21bj&pIGN3ru0wV&lldcilyg5xV>u&Gt@_A!YqNGFR~=*oll0q#!w(+22j~7p z*F=U{4*2iQQc?X?YR7%}SUz%tC;A1QT`1i*+wD#f4siKKC{Gt{T@IOsnMxe{v}f=i z2rNY3oAeIG)&0KGs2r#pj7TXr{9@samO^L<0C4bZTEWzPW)``)YP|}mI?0phSIWcg zi;%M*)4}EWXCsgF^rT{gL~K7SvJD?tzS|zro=YYWCn}C8^v3aC`Rg)2#q_K!)B+1O zEREmT3>-^?sOJyTht!uXCoWjGdPH}}A{@r+i!*9xM@LBHF(ZGpvXcefW8S&YpsMRS z6B^qj{ti2gvHub~QRMo$vG4Q`6RLVg#)*!RZg9xy+UjbCtibvD!poJ!7(l6PM3 z`^~3iajOTo7!ll5p2ltbLa;3GTYJt0EL2qvys_l%k+5qhMk()#cWZF-ITSuV)HlQeIBfj*}HVe2oK)5y+pY|#2LL4Mma zYJ`DuYRBo3Q*?M~DEpLpfM*4@%8m0_s?D^P9#tvc3x%?W2SL= zPMe6G&;fUug+b%7Ax7}>c#9Z<;LJ=la0!xR>@Dg_3_16lNQcvi=Ny$f8FT{A*D#?Y z-R?(E+W_-GSa*tm(o4$)A_`DJj6J|?*f?%}TxXBsY`^vRq;wdQ3Q8JeVPa~>g?I?a zO#kp-cHIRB%u5)*axznJ>+Zi8Z7d}73J7MixQ2%sxGLc! zpB^0V(*Upxdd(W^jVH`K24?SDv0|iMJ^EsVrd&C($Nd@{-hvD100#O7-~wgo_fgvl z3pp`{`EV@fX2jPPi$Y+iScKX`WZ0^H_WL>NQ3mUdC6b+I9Rx8 zU(Vw7U4wAxEIjUS2yC(o{-BZb%!J^L9VaF>qh5X;Qh0l%^Fvma)l|5myYTh@K|pD7 zN_G47L2xoLQd;LHos)Xe%!J80lhQVG?O=SrKM(8^^6f3sF#`MbYPa{Km zBOWc+n6qIF%0KCGP(s-*v~d z;nzN-to}z~F{|!RBU)!JNd34&2mYMf1fcSUg_-zAWE_f`5u{>5LZ=%!J`D+vadhmPctbC7o`d+{#S*n$`E} z6m4lZ(ZT!>ip*cKJD`)60!gVNfHD^D71!N1s=zBi4A+W$c&?W_r2ncp7FKZ-jyr;i zyv@aqgyV%G`9^k&EoO$Q7QxP)s(=)j!a-?aUikaQFJ=%sM^#UJY-4JbFM+~Y5fO+h z&NQ-^BF;n`il2yZ4WJTlUnz`v%p`hIcn>5c$7=8|m)@BS1Nc(o% zxe^5J^DCNq5Yq_tfr-a6;TpZWGmdb(+;-R|qK!rDmaX$^b8{|D{IWct`S{=AQC7C8 zA883x)&}s7eCI=&87$CvRIiWKSGM$#>|c2oMTNP}FA3mkw;bT0KUum269L*9M0Noh zO(~hF3>s<$(@yc?n_JF)kEVE;|{cb#T*5X$Qj|q#Jdyv^PZ;=7EK33rs zl1?2P|703}>JMS~b#r*Me2BFowjB7Rc7Hja-kzaDm|I+7Lr*(5Aelr^AiA_7_9g6v zJN-xA=yWH;pLkpp(i?WWIDG0I6g~F~Fe}!TuZok*g>?XlvYo zzIZ@#<0@cqgbN1xEA_8o;u3%f71ad_m#k47nhxC#52J7wATPq?@dnOfvzKk)r^_L# z~1f z)&3a@!C17u0Sn$(ryo`ezkNde4Sk(x2Nq_LgBTL@8CM})_36uoTG!s39^RcY6&+G7 zqg1?^LvotgD!E(NVs)k$*KGDE)R5dSa`3fKZw@-RRO_nAwLnSi3FZ6-U?^r3pla{| z+#aJrQ_Me4+v_~%GPM-zh`a|A=^@^{2O{>ckZ;j&&#w)PC=4ZfMI{n*g5H7=(+{aY z1MxJw&W|+*i(tJgXknpAT$&-daE+{WLPu@@Ry;%Uby*rG&-D&LL4hsoJj)}7|D5gSHyKx5(?~U)a>5(XOmiVsN zXe*dy8w15OOfkS-q0~1iJ62&4`4b2N%zB=CrWBYpEc0uN6YK1XL+LUhpY;S~N6byS zXN~6{Gc%)uMx#L+WaqwKkVq#+_S@FB28|Pkv!lt$`YY@{m)*R3ArpJ1>;18H5zp_V zxY)d<%{A*V99ln@9TmNqqxs5d+q<>h{E4hRh&Fo{3O74Dav(xL%dtU;;a;tcypOt^ zqaDS=x5WdE8|9L4S{!)?W>ytkPulx01pUmRSCwOQxf8V8hfMU{1utZwZ7lYxWUTE* z-^NAruGm^BJ?p9@!mJr((1ZCe<1=I^4o8>5?)d1;-ptb8AsV^X6rNu3PjEyP0WL}6 zfDUyt?8e}RW&V(%pV#iQq1NmC)rTz>5x<+7A$WQOjwj+uPmG9VQ6kHg)*3Rk;z%n5 zn+F@wU<)Nswj-rOd$g$Qu(xd#^pIVPN@At#L-UUpuA)b>e_%(d_}f#QbOZs)!od)$ z&fc)3IG!HDN^L#|>HvR+1RTJ(ThfZbZ+4%qB)C;wv|fyj=@FGWLYk)YW>sWe>>Q4% z{cTrtZ>3Z&mnQ~vU5P#biD#=P3Cq_uQD4hmN*aql9T(_4PY+?P&Wd=CWJ$fADc;d7 zuO3eFc8Na_n{Djr9$eqDb8VOjQDAHtc+fd74hgI#^BQbS%%_~E&wB9`kfPopRomEs z&kWVTmyOA z-%^~NOS-LX>ox{Ex)lkoT&^-ygONoSj~Q*tH=Z#85Ddhf_2h{B;48H>kCGBow$vKu zCz$<@)5H#I8itpZ3Zq?;S?*>RyJqKTItt9SYvR0Zf-vWOI#wQIrY`YdPFzJp$ZR}n zk=Xg8Bpl3YEcN!+!Y$5{)qZ<~QSHsTwa(Ba6WS&2ItzohwtZ`{l8;dpcD?sK))JuM;?QUtOzQ+0bt!3+#*rKoon0uY2tY%Dg6$|Ep zJiV6Ikfp5dCLR?2+J85Bn8RdE+3?+}D4t4nn-{aYSj{|n1;Z42tuIYXHs;OUot&l2 zrKy9T4vicWGMl?)ZFA@z-c8DlSkPkgp)`WYUQYhNk=>Z@fH;%D<%^w@Rzt@a!WB|`_>Hzv3#BCQWPEfW%JrM2GG~nH2fRNqXeitk6C+k8Uj;grJqI&Gg)rQ^^*4wtc0tK*o#LJB$(@(**6 z#WVa#6p}oCFsp^d01C5K)waji|2$p)KLYcA%q5K1q#A@ZE&3k(cCQ_-?EeoD)`M?j z!t-~r0QbkebQnnb^=h8-ZJhDOk%79-&}q(ppS^A@ z{PEA=EUE5}#hJj21C4wb(}Tm}FQhH#iPx=#wUT4Ax&6q^_t9U~mVbS>_tp0#C6C8F z>2!+oQB4>aIx+{Rh4;iJwz0=o!azFENpcWiT8Mulm?7o)y*k5$QVgpKu})-{0H+cA zzg>FEp)`1`v?0&L(7HC{z?9r{jUxvKWka_6-+zLIX@q^HWrkT?a) z({r$%T9HcfM5jv<-2ZCS^MDd6{_SS@x?5C>p_`&YtroAu&4QSq4C#7w(?e5Kpk{-uDg< zm50AZQw>bW@Da@@%>}2&f58?D6`Bb1>091;cU4W?zCSCr{k|2`A8^0G5t}U^k2?{& zeFMzz@C@Sjgv1`Z3X=+UN~sp3%9<&E?AcI9DeoD)XTJZ=Cn--1Tnyni#JvyeBSt(# zB{cI-a|`uli=Hthk4>4ikwHstBm>yXg>>WEfz?cL+ zJ}-<=wk!7YHd{W8A|f*!vT6MI=FdgmoTd9;wZ^}XYo}-V|ISq$!!#N{U*73NyXjWf zWLPOVndPXd(R+Mb!n1oTP8@5wAts?y(7(J3X&RJ?{>{RBQte$lBO~eAr-Drz!T?HP z(UTg3*zeOCR!>c?@H`vy63p{=CKV_bw|GuG?&rZe8y9=K@aTE@KJzdBZ_@U}ax#(a z-?_C#&uH)3>c8%o|Lj`cHZK1@P6xcugRvDSMqd0@O}h{#`ZM1Hij zCjtMqHChg^DU>ln43(aZ02L52(&HhAJE_grQPrk#R+N>4}qOuY;P(BM21KhM*mUdh-Eu-}BnuC{t`L&&qx?YKJ;q+gE;c(FpqySQag zXznK8NPkD%cM;H2G6Q=LH2hv+Fh%+QKUkUoDrV*xdUVlr`yezeGM3d?E1Y9*-d0TTw z43~U@P~br{7>}-65z=Aefl>aEbS(XEp?pUr<}oT?*CgFZWL5pCtRGO_<2aFfu_h&w zLJ3Mlep#mf##nvjmJsKZ`ec2>8G=S8?o-7~cq@mqg6klJ-idb;3f3Uc5*9Y_*o3Z#4) zg-Sch=3Ch%eK?3`OerXsMF8cadDMNXpO~yNsno{U@B(zquJovy7k!0QG1wWbeckV~(0g_m{{4CZlSN36H?RBM z_H82}*0^d>;LR}WZ@6gxpWn9mljEk6u*kF{t^yEr z=r-w|-_)E)gG;q)ZEOrpSlFB3!kf|uw9+R#eC*WOwSe~dNRSu9@cEOmti_6Fy`GdW zY<`=qUya6N515Lt_6YjHtpDsUCC;md3IM$5Sl=2ULK&8uK#9d)#} zxx$w}rGBXSD>8O7{ZZjmFr5+_l_2lt+orzSwY?Tqiwz0Yb1>|zzZ<^S?7%oloNIE~ zR)kGQ6PvOe zID_4+eB%XXtp${YkV(7K?sYk>Mg1j;fAwE1w@>a#I%=v&%2ph!(R-F_HyZEodZl5V z9LJ^ttYIDW_<}+N1 z>box8S9;skPY3=;VV^vvI<)U}H&hnwt!E;5NsovBeO{^*YZj|w+VH=-=pQEp+EXw? zDyh~d9mN`6RN>0=<}jZQ&32u`{K6f0CB=QKYs^lk+9K-4X25~$?njn7sim%Sivz}* z)H^Mb-{)+`PTSqt@;Cwv=c*5L#mL*sm_?S3&T+}bxyfll&&|#rs|{D?eXI8Lt#Cmn z8dh_Ii`R#_W(h%*&*&j3GD|Z}F4!R382QOhP^#2$CfdZHHkYjS{sq*VG_j2z#~Nl2 zbDA$rP4T(f6lbD>e3-B{H)0Y-H5uE?ua!z5qZR}3e&wl37Dhy;d~cksZI63HMr;ne z7lhFOlp;R6Q_2W7_g9o5DvM7OE7~jm54?g~9X}}Xu9(lo$$GTjZfcq{nJ+hdeQop> zL&dlt+p!U+ude-m*Ox zpDu2{a@{V0NIu@V5l|NKeFP$@V5RKYdkBRvoU{)_Y}s=}_}h?eG?@I@Idxf3V9q!2 z?Ysm3ea%bjN>>|ke95F+PVc*SkOJbZKw~_O;L0=@Q*c2jNwLb9x*e- zycCKZCJPPh6xcK#NLTgLyd4gAGHt*_$_db07U=r(16JyH_LEcgGb!OxYX7m+@A-{+ z>!07|(nvaT)@pJ;Z|%CRTy8qlRFKG7^?^-%gkm9O`#8wbT@=Biix30>Z0Jul@Aks8 z=aZ~A`aCBVKX7-AdFn{s@@PAUP8#O`@kkNsPy z`E_#WFU2Z_PR)gW=U?Ca8{66*n?K9UGN~MpW&cTYYn{Lcl7x{dYWg66y!XbZ3{#Yd z3i5205J7*<_V(c!gX;aeeljs9{R-=qU;Uq#f=i?E=vr#l*($&Nl40@zDT1%p+1B*` z-feH(=)z4GDzqN_GPFBS{hiBM1zFx)*hAU($x8#OGn>OE4ks$iO@6+t&MCNWAyp~i z=G&~LT}$yFNn*%&w!1<1FQLYh`bFE&&Xv`EWXfa-*Q=}~m)Ns8^mwWt94=3DS>sxH zhtDm&a&KNhN|JYYWr| z_sIx`>@+x|9gmbdshpdP&K8MKrZE;;NlYS8e9JpP{}QE7TW&WZhvrHtyU*HQ7_l%A zO|@(8*>!Z=w&i?J{Sr$0QuVSN_y%h4n_06==X^LIb4b9Qw^egWx|4af^XeF4x;!zb zG!vaT0YMK-XH#FkVEQofSRgpZIpD~mP+?Uq>RCQ=2WT;Ko zvADQa&=r|MKS5}CiNKNS8zPvTcJsBXKYkO=2HnscqJ=e_`)$%ie1z>2&LF z^4{mR`NdHB8=><~iA+VJ<}P~c22bq^ZC)AZB*hl!+ipUUl4$<)G=x^7jx^OhXqPtf zLuOQpig?L22c(A%0)IGf$1S*-Y_q1)^c#zx2)#!a84t5{)7eZl>_bLISQ&fpo}P0#j9lj zubgR6<{i_B1O~7IW6SV^J6Me^UR*BY>x9r>(qq)mIT9Y?rLJ$z; zZ}*P=ILb+ZV9OOGNMeSzl>F4nhUoQ&M+jlLhlKo;42iz&D#?%bRBI2Crq(U=LWosi zoG|JecALlr6db8@_BaZ5b0#58&EjOj`|_jGyitKdecZa1;i7R42iYusAjduJ_TyWO zSZULcebt6#&{8jHj0{4Ws#h?Zhp??ms~jgi{E|dZ0=_-3l_Y4&+VQhp?AprL;FV!IM9av}QvtlNaJF7Vle#D(3+ZU`JGe-}ASuD;Y8^ zQOd8bpML7GlDoM7GTjB?$4;Ga4E9k)ar*QLzq(JZICN9lH-#bSx(@3*q3T*hoOmsi;rp_ z=u)YXm4D}=7zOuR;;?8@*zHTwH)M{2z-rB5ND6ax;t@MJ81X>B+{Xn6JAQKAW$alVsE173rh`~eIaFcnO?#on; zInGwje4@3>L5yHFqc@@y*E(ah_1@L5^Eq;hiOCtda?GQuR=f>xb?0d8<1tmpxGX4U zpc-|Q&bDLlOWd*7_jICYz|S2G`8|5s`NJ^W5Y7VW4SuGg8(hZU=G6@UhrD}fo-en_R0{LB9Al> zTEKHgvyTK!RkG3^Z$JnENWGc^9JdVvQ%H;C%PzwslHvu6^HM^fE2mV#sa`A8{jaGa z{)9@B|1wRYf#6SqPR(lrrOwt=<;`m`Opi)F5Q_xfak))i#PYBA&*UyUqN2&3G+;N1 zwiaNjJ!*%xTlU0}rFCZX-Ol8oEUt$W_k`$p*5sKQM;l5m&!ypyvOiKSz`F<{b@wfU zlE<$DM7JEytHn1-I3>*QHrQ1rdS(5hIKZKEL&nh~!lU>AFarp}NAra5#ZjiDQ=lxlDX8E*nG+oVD#d&#=^A1db3ND-E)Q|P&q?} zed;d4(2KHWJqX{krt{^9(=o7Vs`mZ@TkqQ-*NeY9>*r^85RcDf;WmlLg>XGTd);L! zo#s3cJh zQR;l(fz0Gn1q&;SawO2sOe<~3ye0NB%h;j&QE-$K6J7~Y>gYCiB-mmQhY4@N3kX7S zO9tDJ43z;uQ8!0tQoQ!8Dzr5I{-FTY-k%6nY;keJvk9hf-W0%8rul0X1fVXQfsqz$ zVSi7LkjaGsbo&T3caCJQLVuyX=GadzfP}3uuW9p~%45{(B?OkQsN|z-*%b8Ha^t5v zZn+!tPQrVY`U1 zV?pUVO^K^ru4N{0>}6REywZ=}Xio?nvPAdXr=0|c(fIEe=!7pSW|AH=N&8f(HONnW z;+!9*6+?iUCq)dhZo?@ztd_)PxX3+NL;LOpbTTuNunn`dMQdDfG;Ht3BrA2b0heWB z3{$IQm5@|Qa{TB}G0%z5-F}CGclirHJ7FdxxxiH2zbk`g)?7gDx`*{lIs~M+0aM(z zCjo({Hpli#-YOE8E5a&9b+{s2LNy@bx=+AhooS9`m?^qDg00Q_~C5#w0`Z}es)3PL;ax_3V&m3z~&mzv15?RkZ&jHA~XLNrdJ zbcDJeEk`GcELgV!Ql(C|>#p0+FV;GE`z_-aTo_otq`AoGkGdifV%MEet;Ji4bQ%sL zuCVl)93sj8zI$)PeNe*4W<8^~Ybb*rz)M8UY%Bc@tC8JwL2sQt3RQd}&bV5QqdyJf zdNo5VjWG%q*L;~d?Pm+a0=hoqQjUW-7}5E=LXhch6Gf}D3tyEDYePw9vF=^eDMTO= z;_^66tBUU*%T<4-Y*K%mq4H;f>948=086?XDQB@?ikK|G)*7Y)>CcLalVRl@X#HsG zq$~p6ZoMmMBrgiQ2Im_h!h-}lsmFCSZE2{f9$u_GEw1 z8=CHYv+W7nZPsVD89|l~FMNl|UXT#7s7JWqw}W8&^+^-D7+zfh-L{%OCJq}LycIIgYfQU6aXD~Fz}~tX`e@JM>{>e z*xZy}u=hz{^kZ1LD&OQGO6IY7RQtr41&-H#X~HMEDK!1_snxRHg8h-Fu zpDjPbSNW4AZgML#DX5&{dcmd#89@j{AB9En6VsSe^m4cc!nrsR^lL=P5dRIHk{4sE zbGq6IsAL(IfGsK(@-|VZU9KUMT_7K8Jztfg%sL5J6Xghi0Y|IqYyLrRUzkpseS+ZZ z#q+OA*tAmh+k3FMO&TIJ3R{<@#Hu#xDYU>9B4{S@d}yi@Lg=UIxpw-Te0(AihK=3( zFK=W;ew7UA_i83>ve|}JZd8no%sf7C+Gnq96Opi&{X;#dj^r6Eq8FaLsSY3b^!>#n)J+V1l9q?x^xmS){V_xq5c z&j(y0&z8F~x552c4Ut`R;6*D{+6OU<&Cc!v`|tdkm*}leF&H@9Wz|BRF1JV@tYq{+Ds@Au}XK-Q=saVS#QEaI7QwI$XM=Hp#qE_pytU*8g z%g2+)MYBPMd_K$N2eS2I2CZfD-wY9B)f;L(K*L3pIus5?HfjXb6W6Sepnu!*DG>1&{W;qpn8* zWn{`oii@2kPKn(pwI4|(-4tF;L4YSF6*!t&#olvf`5V*a$yUkSc&yi}>2 z?;sXzyd@R@DczNXa`a z!=#fH!syx2KaU(x%FpvO*#*hBoKp0W{d)u=QywE)aN{$=|GU9S&{fX+^_Ns>?vO_9gHR(ijt_)hWN^Zjww zyaQ(Jk&49HJB?6%XfAyFMGy+gH78f&YUqwP*XzIYh_7Utj8PT@1>L;xohpN{-l|r5 zteoD@PPsyP4LAOjg#@U*yn>8SfE>b9qB}Q3R}p5=(&#rP2yROxYiyhM%D3uCw3) ziE(}qOE@16@aR5OQ^Igwt(;nnCruN{Fo(C!F}3iBMTs@b$JAmv!JyTk)X(4Mp+2wU z0BrN|n$zPKs~)dOutgdz~hOS-Er0 zk4@6zymrw-nN=`t<2@v@Dl)bUE?bQ&S2W!?C)1fWmXFDToaU3KeFDUVh*FeVtK7!kIaK$~KN4c0gani{ z>4qy+L!;p_n?jcUyA18@OV@K~O!IZJe81XcW-<4Gs9^UYeVa_#^_LWs+bx^ArPmGi z&J5Tue7x!ZqF|D9=R9hr0xH?G4rm6YtlO@uUGwkU!uzDt&P}EF9@%dI0dP{;A1|YL z$wvbx(T&ZF{aEdX-s;~>Dw}!3sQpRQZ5nv0+hez0J)hTVxykfATF_n~SZsCdm5?RDVI>7v}h) zRH|Xlyj856C?6U`OCL8MA>XxQuvM~=qR1T7hW9h7dv7t+)(NT&NJruRK*P}{>3np+ z{#&?EM^nkigz$c{B|e;^yqBqw8SnFG8vv3Yylk)%)|n52Lav5r#Hww)2DaK~*TS0P zvyE2jE6_IR1g!esz3&?@Q+T|+jXn(bkaU;kf^xFH*e~?%(I}tnVc7Thji}I1PNy@; zUB6{;3Wy8!_Px#i4`nj3Lv+dE*i}a zia3`HnJIbtu_y7@=b4?4!ERpg_A+Yz_4{7$4 zv9yreN-j^mR`cQNypehuljNDIv`#xCSu3+pL)$@7@PcLA(+M8aJ3$k7{yazNx|KHb znqEZsPQ(HeTrozQqn~QJsTTfZ*CgC--EctEQ_CN^(09x!L(}ZN7UUTmJI2&5B42~b zyE0+aDc4=8RM$(9Stx@uK)}VyzuxZ21o}y9*C`7N0yY%gZ{mPK^qeGyKZ$5U(P=^x z`@&%KxJm#2ZO|XEqan-xx2eMcLHft<)?_W6W9Gxvfke&mGoK)>yW!{_um3v+Mkc|~ zU|7E-FxEEo3lr5H#ed(M<)q}_{{62h`soyNOXy!dnUlMFA=sV?rjm)6`JPvdHM?_) zf3Q)Ue@S?L+cNg4etYRLfpLUN!o^DIRn=nr`q7tO6U;Hm+H`){8pn2z9n>{YPmV4!wEi6>i&$wxaC zR(GHZHB5ATy1z7h4)?H!d8U^@_Ja4#D>=I+PjX&KOIUW1%URS7yih2KfX$VvqX2=E z`D*8R7|St-0qi5#_7Xk2xAM%js1iC#$1Sr`eir8CoqI%+ctPNoXd_h%IEjOb9TaVm zW0tTwSO!x$%hS*u!Xr)#Rs>rd=DITVqhw;rs*1AmQpHS9SfNNO^Dc+C;@`(6gaA} zM0y?hnqcW6Y+nbz&O#RJjSB`E5Vt7a8)}~92ZUP<#Mi+bU!)SLY4Aygy}T-8KZb$n zBB2qgk%*jA2mAG)_wjP&*K4ohk!WN4@D<-G;7s998y|m5C3qZ#RPB|d6f`Id`dXK< zsFx6@R%+0eQ{$u#e1L1B{`-uanq+ROn=D6R{GA_y{XLx%p&DH@DTS#7g~vB~%wD<~ z=h*>PSn*~;U4o*aSOy(qkxrABV#<c!DKdR0$tc|E^*A?7pad&r$y9bBh?(XjH?og~02ol^~ik0H-6nA%* zFMZ$doO7LDB$Lf#&tzurwbyg6XNE?lDH?|Guh^4K`>MW&Y%_dhW}QpAN`k_lZO25C zt@Te&9KvPyEu=&H0aG#|SN?N$LVAbovO_vKe)fA?1)9qfPjn)yLT*B;G>r_IkyauP zrrA~YX<%yf#*2SC-hS)U1vvrd*ElunI@>LP6Bd2PO6Ux_sbzP{!nJ)$tP_XjX5gl6 zhrl41cK(2$s$_toP%c=^A?{%(M}Q!LoSJ^~6aNhkt;M4Gf+tDGuTZ=O?X@qCT74hr zY@)JkjcOU;Pwn9P8=e9+!sxUbH|(dnBGnvfT|z?}d2Y1V(2c%ZhWO!;P!{U(TEsJ& zCs-9$L?dc9px_U*HcG~gZ))^S{5txUGO5)h)yUdE%K`+q#cD2WP2t69qaxl&xRL_F zpE?W36}rVGTYI%_ejTJInJ1{>te;Rn&C;omCvS%L|^d`Ol}wUVG(b;e1kg+ z)c+YO%ufT=`6Xp=bNDLEji~25E?g@(jyJfcv@3{}rx9IeGT&pWN|RvnGNP|S_Uoo; zY;FRaeZ=_Tg0?2S2_lp{lZfMWJlX(UM<12At3r5_7Qg7^o`vXU=@{XLn9O)zd&tER z+_$e$OT{07bkcz1aqJ595(uKs(#8PD6^s_o2<37&x0@@|5yuwGTfua34zoRo>j9Anqf z5zVGVa`iUDqe&o+_X8aL#Xn?<&e_GX$cScQdG<6(Qpq*(I*`)L>Je^`>e+39OS!?? zW89zK_^0>a_7+7daS@QYqX0b`hmLx{3i_acdcbVO65(DYYle1IBH37aI9g9DhdnsO zL)xXYmYc)88$Vf04zut*h=%PHNqnCbNQ_3iY|vNdjNaxoF1NLe4jk9M03E!<{=nxy_Af{);(fLqdWRLO0V!$*MLsrHc0rDHYm< zvwIA(ZcySz6SpqLapd!kb2n2jPbCcvRpBX~AW@|!k6H>i^(LULDByVb;Eq0 zYCV6AONZ6OknVy8aU#XZusXHOT@b!RNmqv@Ah!Xk{u*rqTH!v3BE(N0eUh8(u9pgq zV%5hajMn*iJVFZE(a()YwGiZDvVz&MLOT&P49GO&Z4`DZIG{)EY<3{y} zU&)gxfix{_rf&7Y14ofS!GB!_DoHG9hvB+M}FZkV0A%L_(M}NZqpR5Hc32t zsbHbI4;NJMs0Q_Q>Y3JJ^~}aG8=SauYCCyp9;Jo952r+1!ZThU%6(8&ul=i6(13f> z^Rgjyx99%*G99Lr5Njf_8kVRGQ%Q~_Q5W)>5g8gV)u38z9gBEW3II0k0}Pou53}of zAORhLW(Zf_*su`AGnY@Q7z%_Fp=?_blx${Rrb*9IHbq?{1DOE1%LgW$Aret$ZhT^L z;$lxm!KkPv_Jy=?xT*Dl7Ym8JHWmzUl|mf4k`*R5u~wm6sGp1GFj2j5=J1>38VXT{ zG!wfN1C>l9jGb@f#Q>vw%Fr--sv@>pP<0V!k}>`U;I!CFwp1*-8-}}sbH6_b+yom@)(6YZ6k_8%{dr@ zgf~@GrV0jBTC+y+7Rz?x24LZ=oU%6goowJ zv=Go{2FD)yHS`lVvE;05K{28e*w2G+lbjtW44bsbtVw7r@1Dh21rO|M9w-xG(99^S z0Hg4oVv5{&JHTHGpfXpK_Gh*GnYDMWD-W z5bIF@7l{lLyNzDWT;W!0{rU)~c>(2K3nv5^aaIXL9o9n6=~FJcoDDY9f+l zT*&WWb@7nu_z9TGkHrT_hn4hF7XAn&xlYooQ{lVX6JZIzKk36AT%&d4JBnVDv=>f; z)DimAqz}rA{u~X>O$oms_Df{G4kNk^5@4Terkkl89DIf&T0(Nhz%0bK$d!ip*jYb=OMXkBx$ z*`iOvt@Eo#C#P$aFRdIf_aIvFZ+OF*#q=FA)eMH`F+t}e&p#a({&g6J(}rdY*Sb#V zlBLHfbc4Fd!c-GFOznv)YUYuRi|t6V$UO^nny{Q&K^Pn%5>!Odz-KH8{vgV*hjn7k zLoZzXbNJ+v%{gTfEiy1fQp|@{F_Ox3kL24)6Z^(QYjHXt4l-XYofP-`RNS=rZIFo6 zjPD0IK>3Rb>HvbD!kauld@)S(Z_bd8j2u38CAppiw}}^2@$cBeeey^h!h(m|7*tdW z9)rppz8G;_<`;w?Y9R~KoD}bP^uN+9614ObEy9y#&Y+)@N%ev?n3MUlo{~=?_@E&# z>it8GUp1Q6E9$E=5T@#Tm@@cFw{Rvf40!v?1a0OHU`D2+gbeM-VG2#g`1SgebkU-q zwRUa?Yzq;^5FAQSn!FuIiG*}+LG%y>-Z)iD>p+w8NkU12G0XueI)X#ID4k3tzFfAf zei8}QRbCyd4N#1+5|LmHtdxP^pzAp_kWsxY6@-z#N1ax-UMP0^i{s0fOiAd8kGW|gm%)78oLT|)Y?t#?6xzyqHUA6L!6ZEJF5RI#>ri4`Ow3T5m#?^&8ceHw4Ub- z@VnuBO-$~Nk*O3~_h_uQJM3bVzdN$A0%0(%0PAhKn@oN7lQFDtquI#J804j_Z?C$# zd7n{DLzQl?C+?tSBUZ9rAM5qh+CtNGx$8Vz)?U0yJhYkvT%fG+%&To3+S=S!$W#No zp3B&7`0e`o&1vu~Agfm5Xs}hp>`FOCM-T_|gO1*u?g;XJCb`SZw=%!EDuf$rhvj8X zF0e&Z!PWF;fd&bOOp*S0d*8Y@G;nqz;MHr022@oY=xbOgSx75=o>|H7x=p`*`Q9c} zSkwM`mMfLvkjq=|7@qHFHd3}ncN3Y*hfR4V*hLf4*$?oeNug7nQ7EEth?spU;TRi? z{zIRuhD|+)6f~f&O9ET!&zQYd{@RV6UPcr-Xc5i07`(=(i=}M7>vP&p zlE4A4PiBzSm!!#oK?rWVz{lKkJdGUVq5g!$ zqs5cMBpn2|blqL`G`1z{bnC)YHFKc|D|zJ(|1TGb7zWx;% za_c=t)*VW-nx3Kj})QvOW#&Q+Obj3JiF{Q(I8|Yw8~XQ z&dZ@O&(cmQ`ZX6phBi4_qbol!aOJ54Kg*3!Cjq0QfQA)r&JCh;rIe*atoU0#xnEzZ zcrc4j`JElgd$yhvYrZ|^?&Ci%5CmVY_r(e3dE5s}uOH?pzEi<2QERc48c zaU}CNQaR{OL0Ez$0alGFnfL%cD*8(cLOToSYQd5$!Zrc<>l7EyjTf9ptDY+|h+5+p z;z*;ijS2;{Rg|4gH-%L*$iyAHCrHU;3LhCAo&0^LL zez`Mu8=Gz;o8=yz-Fiji-uOm3>VX)Ob`!abU{-wMJIJ#1h0 z{?LFB_VZ40;pULeg#5vb=lxpo`rIC>%4?o!M+)~v3K>QQ2rE7!WlYXK@3ok}ub$-p zAuyeFR*v<>XO7kDNJ-azI%jK#cE<|Lbe?fCBK;Fok}u12&kW5(1e$GolXin?YsA@A z#38@>Mh!-O92^|oKEC*16&OlSb%>RJ+PpyY6#P@R=x&Gs3@@nv>{mWaCo`U_rPNS& z96*yNlyfs^-YryU6= zGgAdVfL^=qfrBoMAj5lYz|a5w@%LI$E6ruWPAxan?e41vxmt_v=q0@uL7X^$r*Xn4 zOMqGP(g|^?72&>Y&*sRFcGPV8VH;9-W4GP1xe?oHQP&z(D`glU@I$dYd!ZJddw1mGod6=D zKsB$yqN6jR>Sfn5Z>mvQ@p{pl<>Y0=>X9D+vjUq9BFaRIpy54?z5SgNowch|jY$gz zG;)6~ARr1}Z5{$2wPRyf2zEC=&T~mAfG~?x%jiA>e@`#JVzwo_aQl2(F(q$&IV1#N zyjzWwnIn#V|AVgpc)DJrlkdG*X+FjEekdq!Hft$$Z3n;%U(T#qcevk8a4}A_W4+A! zZ(sdJ^lPqcyu^MUAm|>pz-|s`{c1IqUK|5^TSOSK(8)B2nuw>H-8Rq)1$1=M*GD&1 z`sVNja>^P~vK*!gsgi>KytGl$T!QP&u}f#8k_u*bN{dI95${oj4{A{;!0mg_Iwhf0 zveFwFBis;>;91!EEh`B2Rf=?_dP2X`6r{)*Fs3w_!s79soYxki+kUTFjLoRvsr$J% zq-lV9uW^O=L|=PRV0J<0uK>wnCzFV9=7EmAZ@}&-hf^dD+Y~9E-~CkZg8Z3gSJ6an zheVB#9ReA*{N&AeSd><;fZv^)>|S)Mi~tjU8)}16gTv2>75ASsl{7pf<%3K&#F_|S z!#AH97Mr1&-q52(^|MKC&U!Kr7OC)QXPbvZRLT2tcn(t{%y&dYrj>R^1K$YsD7uc7 zQaiMfK2q82M!6wL=vWg80>&x6MPl!Fx+55urCS#MfXV%XpFYWRI7l85-fyHm<#?OK zeDQa0H;NJDhYt}wQle*l*!z|kKc55@RacSV<_WO+VH2hpJ>%F}lcvcv`Zdy?3bkYT zQULPh*J}M-sq(x5o%7DPU)ep%7#<_|{1=OT2T`jzWB#MT{6~HHztYS9uc`b$k>-CJ z6f*$d-vW%oA>zaw9FH`eP)ic%$PSC}`E~t$o4B@UMd)n=BBT_>6B5K6(X1oGc=yeWyHo(e37wo?@e_siv9&a9;|hd z1SnhVlZ`+K^(TzP0>36hNM)n*Avc;Wpr(G7o+-aW(EhBnqLMXLfxjiG;r|$u57bA;SR9V-?2r#+X;lDK5NLVuk$ps&dW_Nke8Y_n z)6+jwqZwsxv7S1tfi$K6iDJX`jJzgMvz7G>>W*-YZpt5_ImT4oe+9D+ta) z2fZW(dMPM0J#~^44FzJTgHg+YP8#v4E;_l^^YdsZe0aJ!V+AwX1#c|GC?A0S9wa9p zid6+~IIJzc*KiQjTo_?z#-~mXv}=J^@FICUWk+%AFOc=&x1)bae8i`JPE7>TVYFHS zXnj9+QldFYLm&m(Wf=w|cIUZjF*?{Xnh#*zhpZ4aYXopA<=!RtXNBtJ-NHAo{sx$hozRLz2P#38C^q?p&N!RpxGYMs`kGkZU_ zBkBQD>>c|P!PxVw)kZJDa<-V14 zEJsnIXp0va>U7Irba&oUR9_=xo*5l)6$9$-Q|a;V3vC}7(|Q=w;PFF~LlCpXquWQS z&p<4EY9mJPuM({UM$6@hEgeh=Yw5S}onlYU^Xd7`$~t;re-k`H3rK;=^uI967xS}$~)8vMiKYH9k>v+*ZJBx zKc0+wsE}06r~#9XVmnCUbQej387hK(4!~qR?)d4AV<)DP+Gckzft=mLGkdzf&)k9< zKQlLkNWg$!=X=NxtcrtBO^GBvm5w;F%Sy~2N;}x2EWey<8cVr<-f7=paUn@Z0njT1f18O8kE4~bkWgOo5yZ+ChS=P;DdN#m z(q^R4@s=U7bw{W264K`Gx&dg(;LlvQlajl>0@Eg#9G06bf47L1&uRPIe(?Srlg`yy zV|%U_tKYhm)=cc6qq+EYp}vjEs1(ud=Ek)w+E%*14-3o2!cqNu%G1tv^C~?eT_+du zi;m*Nx-;bYH}rN}Z-vYe`noMbCa>Yx2_7EnB9%h+x`FNp`hV}Q&sgzOzX(MDpQ*=J z0*U6WJDs8IqC3ymm~IX<(uJ?DCxpBi>;;9MC&g+J)}x5_%+`1No88~2x?e}5hF6{| z)ko6S!o0r5JxI%=R|*4(;s#Onj7wcXn&nt&%f4*C@nf&msWZf7o@GF(MxB|--wCmV z=>nOW0*t$6aX`tGlX~M%YH2`rrgnNO_v#Z4LZL=nx@9lqgs$)ZE;a~hQt*}?W}^R8 zqBxJ|*7nqQ(8*p=VO2GqW^b(vRlRyNp)K33%X0pE?`fRaS{>u_66Jo=Sgw)h(kJFa z&$uj&8ExGKFFOpIu#v3cpR&3ubK!!O_5qstGigLsk{3+tjuqQ)Phtyhgme2NO2B#mQF6XfS~y* z8bM#EuKe9{_0gji1D3*z8;|;~H|KSW%KD9L##2jOmZ?Z$>Gm7tl_AbcUZJwG1DhHRAgThCIElj&|+{5NCgisZK znIw}!xO^uVup##cmWqgae)3DBqpkvy0Zr7bN1BVWZJS`*lh7*GK2>{y8hy8eGo?Xt z6WSxpgj)J875>k;dV>o3+L5WoCfiZ=-3z|1_S$)M&V74Y_0h*oRM50W64ylPZrmPf zet!{*!a2(0=LEW19*>z^%QFIJn-~@6=W|K-({TCto3rBvCxrO|-gaY}9t8x~&%(T{ z0E`M`w{=C0EpIYP2iUmfzQ8H;27v>EZ(kidyU2o6H-|qyeC=+&HC+gz0J^O+uyyF( zs(qrBkMMCQ--|hlDod5IN4ORVi}7grfFF++mP*k(C{NMD`el67)a7ID`xvAQ4n+_^ zf2e5m%UZRcIUxLJE%>@fD`&&FUf%s{{uS>Hsm$vN)YLlfmc{qaRT5votE=BKN@`wL zmMa;g7_(@*YO`gVP*!J!qyp~Ife=67k#0-+4o zdOSO>gl69p^10dlA%;zVlZ~f>Q$!AZ52pLuCPgJ-pOSy2b4>YFO4fqxQJb$^SKRuy zZCEnDPyORVTP8dxTJeWA+`Yas1DV>>?vFG4?1buU79iC2G>j(aA1+UR5$0TRI-Y{# zkjdOZ6LuB?C!FQhfV(*6ImS1SaCVusz(`x;_%B`B!rspNPXzps<8TrwD zz(tirx2~%GM$o}5Y`y(THd+6!%WdK|W4Mq|jxx`Cm!Zqcwj~uM9wk@ws1pA8O;5?S z?eX|`5uhkMQ~)|~Hf#VstqigGN9fv;t?YWk~4ZgI)h0K!Xm>B-Dt0gQx z6?lZ_dw=d(X7MLE|3L0E<_P251wknQx}t*tZc+xW#A%4O-N162!p%IE`r2eVH)n>f z_V$7O;ky29ky+PHWBs%6@(kT1O^#v zx7oFIyLbMl;G_NseoOGJmx)MkM)2xXHNFKIDAsLL>e;R2Y(mrTtvVr~16K4KR8P1Z zK;$OBfznDB1-asRw*}SKd^fj?ML7hVRq9Pj&3&Dpn^u)KwNZ2o3;J!!>VOHhv~-8{E$f zofjvaAw?F;BNcj(x$k``z2*97B1^UlgFHKMcG<YQDMLTC@wJ z>Hh0wwt2lbVl#gbfFoMC`n%dX#~1nR+P1+ipUW#BH8S9cqQ=~hLoapZW*2beYys>>3IMuVmAL~J@Yi7NO8`r->ZZ4Q!d8EN z&lMATaK@<_<-R)=2-z3>@Cv_WkZ}$!O3(kjvBtmMQmfWUV z|1GholDA<$)smr$1SSe+HDA~HEo_hH$7IEmTRiIu{SZ{2-tE*<>$Y=Zi|m4hp33+c zxvuWA-rTltmzL1WmoeV%QxveVRci`s8*Y?oyXsAHHL!5=sqeZQ*n8>|y7hhc)RQf*;`FWYRiTSS5$nWW zAaZ~du3s%L?v|yLw1_p2GyZvf$@fJiPyUfMRtSFLk(Dga^Kd*(@$a38>c|sgIdfd=? zf1nX8`V+6+@5-y;pNkO~xxCH?>CykZbp}{@dSB1t;*{IbmCF#{%81E~{s`ne8fTEK zbkK5Bf=ys;X5qRQ-~D;logN7oYX|dXL`yIksJR`z?Q?B1OSa=&+DIlPPRk!-85=+h zeJ&q?$2u@^MG-4|@k10@LXKPyh7;4heqw7jt;euuZNw*7o%sc~eyGAo>P@iE33scv zp8QJXKd+<-l9SCV)`QF9WcvSvVpy6e67TRb*#G-uwa2-E9hd5R|qKfqxp8v?i{gRyCOr7OPviE?iE_NK%fx2Pyr^`iIIiVb4 zi1*RR1L1D&v*>M*nGVqj6F1_z{M4|ZD?RJ_f7s3kU$9vOUKLU1;z|4&-gDz9BZlB# zn?v5KHXCGGqfuAjD3(L@A#t7nH*e&djk)KwGXz0Bs%*x^;e&Qka93D^qQ=F&(x2s#@}%$`aBZz+x~PauF&U5@g5a+G21vw1iCJ%$8xEu!|<}G$lq_-vAucar7kbMzjfxBOu*8}A4Py_Cp|82kkcRy!$zi&&K zzF&90uK%}9z$-EFjB0GaQ}#RTzpvx)N`XX#5Gq--2*M}V$ZX!jXNQgs(*47i)ey=t znz-0m4GskGM9`q_AgQCg_@Oz3uq^>58N@h?@?Fh;o8+kF%9LX0dy~uVuZ6yAlTy|~ z2wp*C6*G$zs9S$|QJVT9=L*OeqS#|YOfuS_=!r4C7Dm23cLAugjkf?5c;|9Ky% z8h_Q?nsk*ShEP6R5c94REuFXK}gy#p@}UujWU7B$TKU zWOAZWnh`0uQmSHsxR@lSqUdXQO{^5^VA?8R*-!O-vB^J6kyP*+ZGcPu7$;9+KoY0E z4c3w|l>B%666KCGSt*&`Hu6hN5{4Q&NJdGg=ufGng#{dZPfNvb?$BsBHhNjw@K{xA z@N_>PO%xI)`uAvQ2^q8cqg4V+6stNMNHw^df_>Mgk79IJE-q-mx{8-oUod}A>e$F+ z{`Y|*1;-R2i~irgqScQ2o`6P$b5_Z+J6$m4=sbV9~si8UUS{zO&{B#dPD`PwF6KmO?jZSut-PP-->&N=9^T#W%ZR7m~Y3Dg$TB53^%7=kP7}gZo`FFmx&f+vMQ2I z9t=WSDHo?pcWku^k&b(^Wi-&m)bH(Ou*k^Mn~LWeU1#hOj$6&Xb1&&R9@y$x zWCAYTl76a}x6k-Pt@-&l?xB}7>fYkn1YP-VN$*=Bg;OXZbB1)ULdx8iFnc)Ht% z<@%Xc);$7aGFzqDM((4s%RaBfa*kF&FPk33!>fx6amnX=cNepZYy9%0W0Z!L>ra@3xh3W=D2>iLj%6Vr(Sebq%lVP~whmyXuKzL38BrtwE!i|a zp;mqBj02a!zob{1N!y`D)KiqfQGyJ8jmbP8-?c0`7Pbh(z)^_t>ep<$gm9{xxO~Q; zXj#k42kCl4S4H_Z@MjEOQ(8oVY?TtX1J|~wR`c>=Q23E)xST*1tD}ux}@VFfdf#OB=F z|K8np*>KGZRVi@rco-}Hw|CD0{zZ2IuZKKIWNI3dWr&LuOT)BDj+~=Dr4)?RTfvZG zSYYID364X!W4P#Er4H}30zkE_FwEM#%LCVS1GQTgmPSk}esx*C}1?FvQ6cSZ_=$?lK= zv8f%c2i9m#zy?oDg-RDLH9R z+bGcr9N!<`FoaT9=mu+O2FxCEc~R2-isbxZ?#qPQ$A)x}7zFGzibwRZC1n#!vrH$_ zA$G}9E%WRd#=j>H$-|2ksCaLDj&~=xCpAMKM*D1RhZ$KHW^kfmfVn;Z zV}lTcQHY6Ctk}2HbgQ6^MkIkh>W{7AwahRG8!^ zLau-oY#TQwp-ZkB4{RIM>G#9O(+}U28>!S}&AYF&RIPcFf*)5|hEv0YV8$7hLVw)S z3sy%n!Rs3U+{-aUdXgp>4MF;hKp2jSWH^M2^;IJohe`0oSJV(PEnH<~Q|00tDC#F) zQp~t?lJbG$YZ|ua8@llshy@!1j~OK`i{4#_R!J<3D*!LnF{g4SzLKNf9GNTg`sk&L z3s6Lo;6QWolM5G)v5$GgSaKboL2F6f74V&rM~jLe*K+`HSXrFU{rSbSG4cnin_)Qb zM7k{^f#{`XDN#9XQcr5wFne}h{A`2#ZEucBmwCP6Cptf*6y>n6kdjUA!XZ9(U{Q@c zF|c}!!9iRUXhf&BmD}N=-~EdEFKTnkI$CYW*}eqApws|(f_9|}2K z9y$I+97vMUA4(YRIkH(-_zQl1{I@CAJlga15YYeU3+cbFWzPZAE^4YqKspxI>dnag zZ(l|}yZ<`+FIH3gSDaP;FMfmk?|=V5injh4shNWeo3rFb@Xxot``J=0E}G};fmKZI zGUy0q>>tE`!)952Cj8e<34}1hHM^ELKI_a#z|t9;^r3`~ z;~q`~dhBJMwnoyAk7uga@vbg3xtY9}UGq~~932i)PLGfH9;U3TwJp{PWfPzEbk6^< zHI&gx>xofCM0k6rsL43|;=Go7F92XxzucX?2`>D+L~g%xW027ZW7Ms2K28f7^iw!I zK7KyJo{;Ta4%>xov)A=PL+D%MBySJiJDwR^n7bd%&ZW!h^52M>@j5?#+dCDr#i-VA z-S+n(4mh7~72xpF&eN;RYrN;-GSFLSHRNeafBJUc)#Xn>lyh%P$I$_A@+7-v`sukB zfc|isopcAmHy?NGWto??&^bRa(JlKu-PJyo&Dwt$*bV&i7JbzA$p<%4y}QQzjxVfa z+{5j&(r3ls*IQ!dq1n35~}q zLVB#tS37gLh!!@^EpCSzcJ%IfZx_~sbsWnaH%$Wkfo4{!HiH>et?3 za+=L{<>o#;=@YrX)O1ooyuoM36g7U$N2jHsWRK0aJQ`{jC8jdi37Lvn*fmX$!A>w% zdF`v7#ut57e0tJFdGmf9%=B3izUC|c$)nj=SmC4v7Sw3t;VZ-KPtAJX4 zL}FQB#95c0`Cns4c0>*4_1gCc%=2*pKcE;w)!1JrD-xvbdl^Fm=2U zv&Mb923y*E4mEV<)j3yvfKH}%yKCiq*a_kYXuK_iKh#@n{f~DQ*^}s&|GF|iK5ut5 ztrZN9t#s*fKYOWJ_Y9~3n3?r#PCuvFEn;hWLv{U~>)2*J@lo@>=;w#fJPVjVG@ING z$C@xDh*PB`$~`!9_yNvz5@@CpQ4lhp~GN zyF*5s)wy@Wxv{1K$dkcU9iE(yErfivml|5%-`)^@o|H^9mq=QP0Zw7Kt}l}L6Nlq4 zJI~EY)EvFf-I||!-lCfd{>BAv0ZMXUeU8V_y15* zIEDyW#rWunxZ<#$YI@guoF1kO#=9VmxZi>L(9pCOFG-FLh5Y3MMBQ4UJp<$NBT0g9Vrp zeSlp48Qrw*&8?-8&TaDBZ)w4&p3W+p@Tw&wgg^e|a`3s~MNrptj)V0tF0}78xasbR z_?rFn_qwkU$Lo>)s-(1EZD}ciQ#5)meI{lHYPiPVcIPcYYqSRbmkI!{7Qao05oUYa zLq=IX|K_7C1)`G!`@g8pZswqE4JEB59l!IV)`1eNlZTUXax-^|G%-48z}WJK{FJp| zNlUi8YbUw;e|9cn8(Qg-xr31Bbe5ThC>u-RwDal0=@&ac&Uw^O01_ zY`fNl+8QVv8=)%6Kqz`Xr|rp19DINX8kbklHBqdcQ%S9NvG`sahzSdCiPuINul4rixGh7-SU#pFwkU^VQp0B&mdV>~j zOIj3$+$}GGo6Ttnegg7e$RxT#{2AN}-6(b5n=`#;GKQEjN|dYWv)}V;`;PpsPJZR6 z{EA9SW~MYRf&0T(CD0P3kbB|zFy2;oGjSRHX9GtgbI*dS9cbvC!?mKxzazfeOy^}f zdFG?C9Db*lUXvm0#gUL@;($4e7Q>Q?F;>jble62)qg_LVzRZ_R<-lDf+I z>wVmB0<$&_;@7|wvLZ@o!DXOc)4d_=gQs@ZRC-%+=OEFVRzPcI)nT9A%Kq56_|a$| z?5WO!UiW&1<)W*!u3NcBe}^jUOs9znpG^N^lOKvYxOqh>Zi%*mA?3|%uV^^K;jia4 z90iYU`Gg!D4b%GMfTL|f=E0GD=Zl!$OtD{X3Yl8$x1%dk*kOoYh2=Qk0L@q_a{l5} zr^#Gp6I-M>Xa+VSvF&P!5$@KGXWG%+z>@-KG4G~5VK5tfo+!(QT0X0D=8YRi6`Vsh zlUW~|j$Iw4uZcwJ3UCg*5OJ|cpj`Q$r+*hQZ~ez!vsYY2&qMGz|Lo=-c2KPBVm9d7 zRZ(%wCreUKvdp!ntDbuByO2#EtOdQ2wSkKTw#>JPp`9rJVYkbDHu+s}W4sS+!g}D+ zMiSs~Vj+0cihAED&AS|V&FM8&aPsO)_GT(Wsa|(?QFE!)Ol?FN9h|O({4ifg>&ko( z;KKV|?49t>CtV+(8BYLaMozcWz;lgPJG#UKvlx@%cCp_ARJ@VpO!%Wk(t6WjGC^1H zWQ(6U5|C@$e+H4CFfv^bCIL&)y%=DW)N1qmRn;Aadg|M!$ zY_?j5e)aQa1hpxKI0gc*8rV$W|S;CQ(f1M7A^ zKdh@LJ3&PI>_i!mL{D1ZRE5rFL)wrOG#l;8Whrpkvp2xu^)DJ$iJ6T#qcM0`%ToN+ zNk6$}V44Oo=UX~l?XIl6pDNRZ+alCiQ08D3P;S3E@ZhpTUT6%vqC{+45b~}&wr1~y zDZ0Z%y8R4b)OWQmYI5&FL5D`%g~jf`es8I}ogxMKP&H^HMiE@$)1z?swp4zuj9Q&; z$8s}PWKPZF!q)(JA17rQ*Y9=JY&UO`RYc2BCDY3GR|(1S`D^n)R__{TJ_R+sFP?)N zyk#B;sJi@5zZL>~S)qm-wWYK@d+RFh#$S8vw}uvP{RkoJF%g~&dQ|>e&4%~Q$z@49 znU?2aKQn{tyO*mfK2%XhrF!q(IN1B=d?dL?wieExx2ci6CP#dOj7g!8BygvKk5QVa z90B)49prvbC_?5ClNem1=W!F3nqn~ho^8!06V4de!eb^ws;=q0!M~)!fx4`Hm>>T$ zkLW;(UI~WqCsEyX#8BWeGmRag^F4y{XYTKDPx;^D7Q`{J%X>;`$H_K@gTUj#1ndeaeuJd|GfRn{;_6<4fp8$t+2_Y<0 zlPdVr3qCixFq?vIQ!6>`JBq}xStlw*xK2Sg;V`kyZ_*zX1Mx6>$Z!mB>aSw~hle%H zSl6MZbb~q481&Dgy^8`;ZksISGdj+4nniCUbVU|lP&B)Zo27PYE8*3VCqv!Q8V6`y zhkuD9ir&zGZa(^?Qm_b2gr;W3@EDp8;%Y$I{I&ujwdJt!V1YH+gpY87dgyLpm1zaO zB8GE|py6mgzoK@-{~5gYG0x!$OZ~e`J#{YSidmF|XDy2ZlhmszfC!xW{s-(lo3tTZ zjAUNE^ub`(Qfb$+*EY~Lauw&sLY)MKr}iZYPfiK?1YsxQS;qvIRS=U(Oox=z$j7G+I#62m>_=z8 zg+!6S{~TcO@%@HmJ4WGaBZ=RqgB;rPLFgF+sNB59uN@6%y$Hvy4(5_7N-p4W`x8cy z0o75%nm2eD{igwsnZ}Xg#XMBCe*h7rz$}%EVp(7Tv8;}lqk zL{A<=34UVw@Zf`<^s~b^=r7h~gh_`iLW;Qx_m|=u& z3vu~uHVCLil_HG_5dRVtxs#7m!j6v2OPP7uYAeEAA_W*oMkhwJ2Z(^N+q!%k9K2`=U7e_pippinT0{!LOuj7mG5f!3ECF@h+*og;A< zTCoHpLP9gOnO`qS5=J02WeEvxnw^RGFnA>2d3<%vOG9c5)3OxOWVn@1ait;^cvXQG zac$xX(IVo6zok-zvM`Xq7vgd#t*f!r|3lSV0JZUk?cT*H?(VL|-90!2m*Q5u6nFRH zZbgCwDO$9+ySo)A?#2BJ|MxrZoHLV|44bgKc{bU7_P&1iby3Cyrnr?kbS35kx1ub9 zCXZ1CKC_hAumB0I<`aTpfKe^&aOzE~xz4akh4j*gsCt5*C|U~*(I{jxp}>LRIH=}~ z75)u+0_5y)EgSCST>r{HR?IcT6>mGHnd(NP2@>2tL{L#eQCg~zs(Zr%%ju~ElOZ#1 zo;mGCx%vhQL1MPL7Q;^w*wi&7U>3cqsnd_i<6e zO$#$pg(67?mzOgYFD6hWV>)#~qLc(C!*RM9Z(Gp9roRh{0gL}Z{E}7s;v-jIQYMbR zhPR-AwtE43^N}J07L*{A5Qp7BkqIn__0$;UjCTEUAf>k;5DJ^d^P#wG!{P3zPDxJ> z9+i=FP)=8bSPszgyRyF=g=+VE3v2k-j2Vu+$auMw$1;E#kMj}a)q+lO};h(nE($TO28n{-5a058;Z*ZribR(AiQao@FYN=l=Dk6vBb&1plMH< z<@*HOA<_oxM9pmqpL;V#69oqremNyp$o^T(m{KG?`*%p&;!(Pl)fZiEMc@<>`vwPe z4f`lCjgv_P^+gPT$aVm5xez+VDtHOpLXs#vmyf24vZg&^)d9cV?2Emf{xIHpdxc|@ z@a;{^g7&GW^x+Drj@?e+HNAgtBN;t*<^B-jg?dy7G*+`UqDvu8rtUm zKRH%8Y1493vwzr8zWWamj;9FF2P~xMbxeZ-!bx{)O+l|y9mZCcON$QSn9}b%%=N9q zLqYjHzsR)G2thfS;)Wa|iFQ87J#X^Ay&Q_M12e$Gky#(W0S{N3=ERGy&ukF=G+8y~ zd(52J^Q_qWqC;|saB2h#?hHU!ZN9yOybc+p|4YmLUjwL@?nJ7Zap_)wGBGfea216c z=D(t0CD4;43^g7yuY$<0|L?y-N{j#V_}_KB@AQ9f`)?zSV0LI+s|A-ky7lLT_kpMp z!B$IKd!`)C9f}p8g9&>7U_M!y>Zw=u%o0b}bPTYlyYuwy`An;^?=NK=7Ag&_v4q5d zxT)P%(%|%VbXDTuQ^N>i=H6o7-#|=*#5+@)goDaIec+Telj$;Ojf9d9J>~Zg z*w}5FkT_=YWeBCEMF5*KHQNrNrqcs$hGJrs0&<)C4`zF<1~Rnd(9a+oH^K%T~j1Owot4zwY z=P;6ZaCs~BGIMA+;>mxvYn3+?BT&_oEz`scNz76JVSQqIgsTBgi47#{tWy=wJ|uDS z+{&ijA%;8?zr@pZrV+Vp{GbjVh7SWw&cPJiRDP^V#*F)BLx^YY0 zLYFN#C{-%8Lx#=RM{5}@X`eX}Sg*BX`W5oomhrd>xGE+jKuV6*7=o1Cpvs)e8Q5#s zDrId_Q=VQwy0N90C`f*Vw7SKa1*avqh})B0?3^93A~+6|k5HE*iY@W6jzIRgj0qo4 zKsJ%aDNq}RrDhObdV2CGBk&*%E_z5@VZXM;L0+qx($eag1P)YQcW{Tmuu|RQXNnhJ zZA7t_o@_@&FU`apz&XhVX-;tf9AKAuAnc{wE`In?Z!y zqZ^GE!fP<4I`TDp9S_-pq8Q)Imjd%rp9fSYQ<~19wiP;xxkZgaPrLmIA>OYWUt%P~ zERy-g?2nXV9I8xkp*TGir+gc=yt?bR z)*2mG9};*kig59;Bp?XqGihreId2&*I7fx=O!P1{6wqvH-^h64a0cF?w0GKVw z6qbDe<)R&gqB2Cq;l_mdzite%GT$#DIh=kdGDIdUGT9$Padu$Ag#-$NoH)g;RFd#O zd7~1oh(3bw1kQd#qcj{(VhY@JH~TX2Y0QkoeYxnICD&w%)G#eu{Zem8$$yd&b6N5+ zI;Y#DZ&z*DgdGLtpkF$L)-?){0VMq>B609BHz*M|Ug{q@b-(Yb^CjuqKa_syZ7D!v>?olL0X)2l zKYwva54J@1P!cy}Rf%;fCwF>u5+jk2btQ5#d@@Mk>N;`gDM8GkQ2PRk6rb9)X28jV zTq-p&dQgsCo3*Ct9#AD|@Zgn;EOba5%8KGIqluJ;yjg{}+ypJV9eM%nI6%DzJ#1>r zzAK>9C!lwy1-|+K%x=8E=bw>E8ebu^iK=G9OK}$H?hf(TrWQyD&v8Rb@I>ejlXjKi zD*7c|not+mo5H_1YtBfJFaK|>H8ACFH=vyXSh5y{pz-)DUq^2;Ux-G{^Br)gJ3UAd zjHrMrQ$(3cC6hRNt%xW=S9v1)5f{oeYL>%{`^YVV@Zw&QQcPm1kby!Uae&k;GhrK_ zVl$YXy>M`6&w=F_wLUcO@_{jS=o>YhfWP*7pZ_L}fWLq@B$S0pCZle)6FP*J8JYG$ zuL_I}uaPG2G!MKUJ4hmPdHxgg@$*793x#T*iN<}Jc4F)C!r=`L-X{b^yy8w`Y zr|Zg1=IBHaIrWVTr{(xK>A45MVqaC;uZQ1Oi%s?@J|3s9DYeS-<+ zDzgbwKwq$Adq01zY=NM^xh8}eqE6_!jZUCK!DC>{Hm@a8OTg9sOk9w4)ht~cJ#Ljb z0OtLli-;9c39CsmRA9duR1?~~^yGMM8I5;bKfB7>MP?!s3k#c=$xJVz4_c3rBGuORdU6ub5BoB zf(BNWxBUNbuBCQ>ORZG)Ea#}l*|~)+RE$hb<;#8M6#XBdqPO5#-Rxv1`}<3kaFjFm z#t9#|A=l|(3KSwu)%E7y44#gP7ZO0KlkPGt>`%8YW}%9EUk?wy*_ImHiF+q9=<o_tUDSJKfBXEjwV`_FqR^`sKfuuca-<9U z@YrGhmL*3A*x@obGr5wBYJ9io@v6TnIOTDWFm77EYprH&FWco_)V|7nTf1qEzhvMnzh|>SMG~SLHtww!<2u}ibNx6s%rWT5cYonCcBs|i zHPXF1uEytUY^u`bxLa>AX;Ys>h-dp*F0Tk2jvsYed$Zd#ep2=IC4i`FxT{=La7M-s z3d%&h#+x2hJ5550V#I0-r^4!~eBtd$R}`k`XXwI?=WR`gV{$~mKbw@l!2Ft@t(#Vv zM~U1?4Ix#r(!b)TaW@q!zv|=aW_<8(A%}*D=o%-jawCvzrF8u-gWZzvm(MTTTbGk{ z59e$Sho4tH_lk03#)-1T=AcB=vjR>#nrpW;#BCkbB_x8@jkJ-P@+ypTdTO0-{yhkt zz5Ti-qkt&VtFDy43T{{HpP1w3mYEf&#U45hA5Qjf4;pigwa3Y%=8hZ#OJ5RD#Ti5% zAYvdUup+(s%jfwGmm%%FZ7+k*pY?W1%m?w`ZdXUD6vf&y1&_;rN`2;I%i}u8$E|*? zb$_wuGq6XCi1AoHBKe*@VSlX4**EtO1=RY9Y~9mKvAW&$yw;7hbIw070V3)Wx%nOd zeihZZUd>M)R{${+;p{|hNSp6oe)>Va84#Y5mlXmfRfp;{Li>U}_RmE9{`GVillk6i z^)Kp(y}4{1T>1?k!3m}Lf2(llZ#(Z0y5p9#E!Zm>H{RS>uyeBgjUTXvfKck>B-jk$ zA6xaso{;1frJnCPSbwZ!tK=;=`Y}kV*LgoI6dS)xX?wLEZk(&e`K}mvJ^iiSlaVqn zR7yP(d|WqnyqTz4^SQao%_Uy20pN1;oV~1EHMegAoTkrK$&EysJl)CG^qcKp>8*>h zRrB;Bf+@qo&M8MnMf(e{rCk~=>JRUgZJbTms6nG7Gg=_?+On20HC>5ZW< zg@9g74$mwJ~e@?QcES(z(&EUZtst^Bo&d)dheffM?g8Z_D@YLC| zD-Q4z#(5xSdL0S{RD}x^AfTUZ zR@*$yag+h=Iv~>Ok0Sf4?!CB)vxT<{9RZVq=y!+|G3$uh1PVo5X}6HX@+gnDY*=-^c^nvYrR!?gSJoltwNew`o=5wcm3(kwE^2 z9eWd9$sHZH?u&=Bme0vU?c>;#VSDOrq0UPIJ0nE~Qh;^@fP?ReeX~DFNwBTyl18HB z(MwT<{sJDiq2S%_AhGEE-!^vyPsd{w-`^H$#e3xI@d?3~>XQp>uP#?phpTN6wWIYg zy zWo5|IjWP=!ykq(Key2z@==6X(&BtDIgc#MDd~!Z-qm9>sH-e9*&o~s9l}6ioW?+bvl9&?YX9nOpK1&^-3xFYB*e; zZXr5g=S!pMi#0X{4-WNOR@9tHA=cP~<5KHoc6D3|^as+<=85I7AQezTuou|!mtsJN z8|eCP$?@4!x|0JVT=S6xNS5MPkCFb-eM8fS@AW_=?Ig^+K%1e|r})MO0iuA%gEh&a zJ65@ZG*LkAhwsl8Z;6E?;m8Q>I%$pM;5;l4B3C1!P5Azgbm)@s#9+o1IJR&cX+hve zKqI_b-o%O%y&O_ftp2p7lb#;Ggn_a zzL&~2DSkAFFJ123+wU}Kv;nkUMHvndp-y}>;fD0qtX{k>xA9fPL`Nh22}ng9q{w#C zluSzVxca;H z4Vm4qxRc~{@yaY?6VbB8YknM>KpV0v|H-m`^Du#3!lNpIWSI^Fbd$*%hXXav$IBoU zf1v<%r79ISp;N&rjVrGsW!ASX%sW*F72rtYO%8Otz4m;a8dAL_*Ed+MdC+~65+Ffy zb^TPC`JR{yNq}&1S`=Su-Bx3iUhELQ{5p|^o+p@Q+wRlSuda7kBXG1JNR+VCWCPlX zNRa${vf<}_UYqMPbyO(<3IuUxkHXmrn{0n!8`|y>s2|lSoQqN>H*z@B^SXrL4wZ}% z3m!gxd73K6g;Z9)NZQ`SP-q4J)4FTYTqWWqH9!bzgYC4Cu9lX*Nr1bo2Vdzs;wBdo1p7v_>Au!gkeBb916pzJ|*+LAxo};^i66FL7vhAC# zwWL@Rd_iVipLfj@$|q0?J43LNw0|`eKzafmy8R{i;IfuJa|qjHCW5;8FRqeM0aVRWNry*BdG+g*x(#hO zUb;E(yIk3J1#W-&`acvVYebA;xG`#7dNK9Bs;r?Fk#NQlIsh5=E#7m>4e9R_NRF~gppa1=T)za z{g)$-k-&1si2mnwwL2=;0Fyt%1-1lWzw3wNA4mP+i9{iqn>(Aol&)DP#@o(ByedgH zxema}!J3r%4DmA)qZAxv9o8F_dgtvr&;q{1n7~1CvWbAFeh)tNIC9YVM7A3fzU`cS zb0ouTsNGjo*tI*m=-b_>Ug`w>RameuDWAz}bCrq54hLishWSzc!R9_?#H?EEdGvv_ z!r#$r4ZV*49LK_yokR*k?#=!{5oLieEpybkg!dv0q_$5Di|Q*=&Je87TAlIQk2%($ zfo9QRP$10|oOg2d>)bB$AUpn4$lqKWQa9M^*8X$+WDe}vA{bk3axrab=bc#KEi z?~&XUq9oVU1Uj8S3aQy0wVF~Vui~4DtsA(^4H6=rUy*-^rUm2b=+CDGud`b$-%X+G z1w+rl8)WJSFExAUyoEsN21jzf9pS&$nL=?*>iaUiud@>aUOeR?($?U#_aA ziEf>L-t;hZ{G26u^zHoz7k}?}-p2Vsv7mu)VO<#mYRTy4I+DDySwFyQ6w+Hf*YM!o zxrhosj3m-2-h-*Xy*if=+t_Q?JByKae1Dq0>!JO!mM83ac8`ja$50lk)!s3P+q7~L zIG1rDZCmjCpr4XjOZCfw>9bE^-64&>v~Ygak<4eOH@I?c+9~1lZ5c(i$ggjdKFcEa z!syys4fCl51rVDV;_@|n(uQHIr|W7&@Hoa)c)+dCFP8_ixz(HVrr z(X0+Jci$Y^$iNi10m}+~(RnJI5Zt8vI6W{Im579Zf9lHbxe=#$M_5oC51Sz;!gf?b zl##>ExgY5p=>o-S2^}`+DzVdw5zND+n$vscMW4l)0|{#U7o&_?I6hSfk`^o4@_@07j+7bSBi|+lqHWs)8uMRUlEQA zH1{dfk%26R#TU*DwNW7lOJ76&jmt8)t0W0lCDnhWf+-)U*m}+Z^b>b(Hk>b>5ep@h zY9eWX%hGoFWz;Z$6`TpsGR>Dz-K9zyMFB1pJ+u zFI+yRdWCy!v~@ZK|LUw!!$eyD6!8T-dZ^XzQ2 ziS(-?Ek-NoJh_Dr)trY0JV^;!eoNVqV!PRrsUHb2L_7PFd>}fsBotOYUKpK)wn~AQ zId8@GGhl7d?$_iVE}rBTbw+C)kD>A6GqZkm1@0URV18|_7`J@96S0Ckp!0(i-5fGa z>tf*wc0~EFh$8)5Md#C~rrfd)T)55Ad}*0?OJl%!n7_sn!`E9o6mZ{0DDOH?{eDAJ*POtvUa8 zwFq69gIm^IXQP?(;-14>MOf6+Zro|tfY1N->O5Uk)sId$;CG$7-El||M0A&7bq=FZ zN}=UbE24b$ zaz8h%;l<#Ece+OO4-kW|v^sNxk%PpKB!XNQA4;{)36ydHmO1!^-`%I`HCSz}b_D&M zyi9shvSmuV3L`pzp&S8bC9y3FEbm$=d&dD~em#fW7tE}aWicta?%SV6gQ5<&5h7Kmss|mb0{a^E7sTLcRjcdyO){sxc zA&s|!LdYt}r&yhv5wOL||z}Uq`^4B@jbIG_dmrkzhrl+wh)0 z&R8^pxY?KhOo0|U7fDdvKl-cZI!IzwI1cUV4pWSgc+7TE4w``)o%{fC?J^D94l124 zDeH3AxVcxb!TElrCnMCXX!UG<2B8EO#3dLPrML_nr)nTm=y+LM8_ zw@s2}csVJWi%G!#k{wJb^RaBOSt;3(psvNtAG+p--$A&VQih#!crQVc1vkFW6X85a z2pZCh<~ojJI-G zh?C6xJ^FUFLOz9S=E7kq!hu3XVHml7pHOyg|JCZE!82jdLy1vull-p67@D#{?G?lj zzscOv7x)*%*jYgVm@(ZbZKf*RL_q)hfsuLtE7NO2GCGDS2aC^%I+BR=Wg9Ijqu)|u z%8O}g;dWsANiD5wkn|Mkg^WoJ9+K>f3p+zrD8t&8+XMzEwlyj-nE$a4K*#}{jl{vd z4dRt~X^`2%l^v8vlW^{bp&B*rY#F~P}dstCPkue;pfGvzeFjb>6?Sel<8GIx$!n?tBriDvB zxj+VcXoZpy;=U>P45hQGwN&Iht)x>QPcs<-iP+hWSfIKZ z1&HX3;q+~gO8A@?;_kMP9ULd#MfMBJ3MX8{GcoF^Flnq`1j>wnQL=QY7oKW$oS7t) zeu_cy#(VoVG=WF9*jJ+3MyE2A@y~T&WN1rdQe(<5sm$rhOs3G|=owO~BhzVyt>Tr|Dxw-jm*Psg6p}pK^s!S$^nO}x_S4gt9IckhmFqy)J5CK8x+t=5(`tx zCh_b0=PIX}EL9ZhR>?+!g+j>YbJd`I0kIFypJdR{K~X23NQ_LH6xpuY0aNsz1=VG& zWPuummh6!~ty3at`X%x|FaqTsu#AioQ(HPWPfZ${L=0rJ{wJ19Kw<}UW}t2;ju{4!W>Arn z89>HkXVDi=!7q>12i-5Ot2IoING6}MrZmUc`n!cXfhveZq$~voNINA9FKa_{fDJI! zFGhrcrL~R&Z)#j8w*S+qpwRL#Lmkg0L%AcLt+_o(hCK` zsTjrn{ew>gI$(;)hkX{+-ggVk*Of&3(_2o=kyckE0r_=*;UFj~3uKi{hO)*p2IM3o5vV>E=#i-oUYt$#Ea@SyAEEG@si1!EtGU!Kk5tW5i^Sx-I(v zogo=*#+W3(^rAWS(Ns(#8re~f<%8+BDL~ZSjI(%FgGyN@XWGcG|3p&_M&Y!q2?}rV z%kY=F!GZ)S00)`qVS15D(>zU^JrXhuNhCG_XJQ?E@F&_oXbQm-Y?uBjHJ62Ae*tB9 z0$4XijI?xknsb3CUupS8@IylBIkr%;S&gzsNA=gHSkrkzagt#pRKB*-`i_z!<;^2*viCP-c>qUlIuvM}h2ThKcMU85up9c&f5hgMoq>gTIT(*a>mRrANh zGct?)J{bVDAQB_PgC;ZfHZ>==iFq7!TW{tC5-2XXCTBb~K~E$$m85RDa^RH8Qk~|y zt68zwa+t6XhGSzuu9y2zX4X83{sXq^1qP#IvU(r7&DSmqLdE{izeo2pVMU6)bJzpm zbMu8|xLK|8U*wyqZIB_?7NwRJY_yW=hhz)Y*fB_xpz^OBd}rp4gs}sZ@*#CWsio1R z&_CLeruy+iA3s_JqcJdXWbET7{A$o;`lI!mp#_=;Pfu1;vaYfYcGyb>jY!SEf9KMx zw~}|Wq7W_7vvv!^I?xd}j=(oRn^td{caIm zM~!4*>#Xk*W*{LzEGTk}{y^auOu_IrMH=7&%E11C0lBXWG$1kq<=Kh$(>xmr$ohRpbmJX54$a zm0(zvZ?X}H0K0`q1T4A(h0!Ic@8M4hA~e51XcM+Suw|ZS1pE)C!PMA6;eo=4v&*-$;7e~ zNEFf0F?qPUDZTf3etB~xMqD@OpF>=h=+B|2LQ1{liUafgk0RWSgH>#wOvvifm?a)Q zK+p8q-aQ9t;y*SB1%#ME9w>Q0Br9wFTB%n*B?_}MFC{0QIglyxAL8`gBswsfd|<7> zK`53n&qeN)V=rI6>#K;_J9M;4P%QbRn5ksr!`N=5s${XV8TTK@Bv+2;M^v)k0ZGGy zROA#ORMr25RJ}W1{P+03*{c6Pa1SDL!z9j_X9tCkwkVPRFSiBp-l*Au6!-p5w%`AQ zWkLEt|L5_)>ws+S|8}62B{r=o%<`GFyl{ruXn~0E$&sAa#HGu!^D=`FitBaBG41R1 ztBS^W1CRAz`u9)$I%G95%&Bx|J!QQ^y2}CN8aS>0o3Zhscx?E;gOM4esj@&^li9vu zHfR10w!tu(-)3KMD7}xV>`^LJ>ifWt#@=dz{e zvWtLy8VQegoiClW-|YgP&LIq4*qoXw8yKi6b!7Z@W?TbVd{%_ZYM+f1J}&wS2f6d*Gwl z!Cx=@L3n8ss~JwH=`msv?%U23cKVA-rs9m|+?l`KkP6TLXL^oFDroUJ_B$gFPVKS- zX69I6tobH1=z8xfkDL>M-%1t>6O*{rRULdKFhCas;9y`ZBtQxi5M>l52P&}>`pe42 z;eaBy@zyEb4&Z~eh3j5f)fnsDNW{BVdB2;DuqgaCNR#1sMq%QqLlT5A*$9jw8GvSi zEHgrF=RR;Z(T((g#1X?4#S8K5w@;{&W}3-!Y&k=}jbsaAIUS z2L|XU29lrj4{2SV5wqk5UgD#|S3cBP}hNp?rFiDT*;Wb)S3vEif_ znmXV9&7kpuwXw$w##}~piVm96crC+mowcGg^JvC8QIZ?M+FQT2kwwvS+`ufAJ4{K{ zph@HuQM6&la6`+M>u0(dppfyVR_7F9cM;0rD2+*%2ddD}=Ec|1>?p$L{-!yG>B#>Z z>-hzEK|`f7+QKIx_Ju_sDH^!zizOnDE?FFk-e-_pou^3o__|QZj}{oyP8$@C(dd%3LU5jUwoaf3d*}(S$AQF%D}`FtpwD`TcZl$=wHy~#4*r&8b(L%QBgXU za)ptK4*ZDB|C$=4krU!T%^PXtjHNnT$F}Vf^9C$Pq{&bhkYhFL1-okVJkC^>Df`uUDzlH zJD~27p|9z9BU2?p4zG{GMd;K?dx!(zt{icGWwG%b z){U}W-(SH<(7MW~*DWsLi#&^83ReH2`VqnGGH{+o0cjA{LA{^;fq{TrUKB2TI%O4M zfSKj6QARkLuM+N(pPbF0xr}vB!@|9c_3-->11WAyOfd8d{FdWATm-gy{3LdYblUee ztd0Z&_JdwD`AcjrQpWaWavZ(-jS(4PC_8xD4p;;u<3_%1%kdBxMu9_f>)ri*{XDI* zu^sL{CZ2YUc2GG#DcT111-)cWH&u^fH9Eb+C&YkbMBcv*68Y(c>crNO)QAJD0`{1g zl$P3l9PcbfrfL4-5P&hf^MSiI?3`T{T$fpQqB6jhvsXZVH z7a607d@@7Er>-du4WKUk_slw+QUEc0ZeQ~(Dg0Hv;7iOZAa!IApzIb$-tSV*#E#Qn zL&N`#By@yP7K2|u#`jzKhf=pP)Ce>H5$W`y5MdV_k)1>MDknD)sDKP^?rS+~vUjw* z!6Wy_cvCkna&Uut883M@m@zc``}7VHx}blFw1l9;!g!W33D{Z#9B{u1p~LOo?%CMl zaiq7$tWt1t6-Kyh1bpD71ntnh@IoBmCo>{ko*NX0o+vn1ZPTZD#@Pt%D?}_W*xg{` zDL05f*ZvV^q=RlT%i%r8;em_C;cvgGC&c%r-urw}Nn*sT zA!GAH;s|7N1F}K{)~Gu+y6G2i8nDV1rM}NvtN=rkDMF(*9D1eWN_gh}9bx}1Mbcm& z7qrVl#S0hqlk<9?pP={RAoe$8&6krWM!%EkFVlXVhkT^(p7xpEpQYO=fMNZ#HO-z2 zl>+rw?~~7_%!*p_-Tnk7W9L7@GRY!5S9|Ya!b?VEU=3nzcMcK=wFgOkg8ct!aU#>2 zTH8(BL0a{xp5aw&HC1yo!o&}HA3W`GVqtavKf=z8h$OSi8eAh`ED(60qrw0~GwAr_ zB$Lnj)>)1gVuHaRbO!eRVU=D}w^sdQ=({y|lh<-A))UthKz| ze`Uvtf(;qgee2jE%~ga~XEAy)U(9`bJ$K&UlKBQ1i4AcO1bSiPt3X!Z^K(7xMg`RmU_KELyiUUSmizR|Ly!E zzI%IIeCxQqG=->Dd>G)QqRp4xg=i1eAJ5g3cf#}U(5L9syx-15DgsRWHopH#qg+Vc z{fC25h%ZBHa4@9Rd~tD}?I)qjOZ2Et>8IPDticu8Y&?r>IU=5JH(3wX5K|8W@4c&B zWPJNFhnJHI-lwwxWTAl5SCjcPTxJvVu$FJ8Z}W8nE%J&O;1DW?{Gn5 z>r67a<7$TmyX(b{%irGlZkfZoj-!o{5{T^t`h#;OV4m#dESr@XiD=T$!RTI*RkFOS z4t!~}E$^dvvr<@+Eaulik6WP2`<8q&eBLRx#9=!GxktH0&;%#Viv@c$7B?Zfx2>Q8 zPNe~?1|2)~20s>fcpPunojT{W-%+^7fef-T3bcduQ$X&bmios5U87pM5d$=Ra9%_8_R zh%iu{#-|4-VDF&JqjZ^QcF4VyRR%DX2`W|pQO}3mIM;jB!`7TQlB3~f<<_YA`eLNq zN#DNI$+(OhiL~5Wgs8robJTOQ+nF0=)F0SmvpbjJ@;-PE|5_m}2dS~ofv z>v9QwpWAp_Sx}PXwm8%g)7%vGq6^dfdWyg4cO`VNvYl$ssXOlvnlSoEUFC42rMPDT zNrHitdi!a2^+ebMkWOMX!99BHQFar#Hh8!RM@W%d#C+Q8M3T1MzT&nH>b=Emsw74a zr}!RF;Bg2ImQ!Li-eg>vq`-IgvE^2zPsmUj7IfqYr9D& z<@jY0jr=EL1pTj+?>qOY4lB674b|J*zFf_J^HF>D0~CvHa@lqN(^oDQ{T)pe*2Uc? z=}3p3*S4@OsP;7y;dtk>B`Q7z75_U%+?o(P)#&W|`P*QQ`u}(d>_!J{_l5RsKa(6k zq%uz%h{n#zhR$`fL6Wclzi>`Fnj8?p|KNyQA+}%ooK6eDMIN1B7>VhH)f+v|3s@ae z+2QSsemfg&2vH}j)a<=9&=g*T;u$@c)3#J^yuA+G3i=%WJf7A{kH5B!=6z?)Ruc3( z_EZkM#m0VUTT*Ft{Cjgc7w#--ZiMUH@UCAN^Cq|I7^{RhZ?)g#wap`uYSNZT!g0K2+0fN%T+@krEk1NOm&{K>2G zQExk*18Y=0-fUR^@Vm{cJDL-F-P+{8PeSiwOQCYRn7P|w2%QW2!i5AlWz-8Ng%>05 z2A=f{ZaUa4w{Fo_ za&x?^Ha@J+XkuWekYdZfp9w^!6!ZOEGqwiea!6*B6YEC4E;9Hx5P!L{V#izF zXZ?LrLtmG}#@6Ly-t!iAFdGolU(|WFuF~N&uU4kFx}exmThhnd-C!1yA61HPPr_qM z6RP6-B&5H8nj_@@koI-eMqg_;JKo(v6ee5t{W#U8L5tK>?_3up!vmkl9lU&tksBbH z4)Yrbj5t!YIBPEKiCNlpG}%%}N1jfWCe;Q9M__4`Kh+B-oxtUmWcIwsOQ4yBFnN8|I!|9nYFH<~tf{cCix>SHmD z|Dz*xYjHHHqbdUX^IcIaNCqG^)avg#_UY4HsWmaCR4KkvXymG|_{=0dUgD}p zWtRWLplq*(Zc+8snP6>Wi~CpxqaB(r@6TFrl-ZGipt}SGw$V}lO!aSlru1|vq_9r^ zCr=rCez;qX&#i~^8(k3R=$@q}kGBQz4>Y2`FJ4X{6YyeWUPe?Q{S@#V!Zp&35u+2A zbR8Kqx}82o6?dx$fJ~C-sW(}dfN(L|208&8RRjsHX5}vzTck1M0gGi3tD*s-mXAB< zGlM@jvvpTROrOe$OC2}8@2?N_i1sw;(M;(D)BOKlY)wp@y;|O1ti6@D36btCN|iUd zUr)Df8XG+{VMP(VH6DCL3<-C;leSf&q&PGZgOYzRxprDwHfdEp%H*VLnnNA|v!Y<0 ziSc&7N<}u4>ebCX$t!ytuXl9yL+^y|F)ILX;c{jxk>eZIN4SetBId z4rp)Q<01ubqCu*v*LC-T-5lld0xLyQ4nq+=Q~-+m~M&0l96@To+W* zM?&rn?eSP-AG6g&K^srSS*79_PbwXzyq@fIO?&IuH7!yes+EvRlt_TP>o{xi8OaJ2 zdTj{uboq7g`o?acCiVhQ_fcK_!`vXuQ1OBSb9Z96GmUkfj>nz4CfhG#+v|*v6==Qz zEfqN6+ca8-2yIm|p?{VM!w4W_fC{N+|RyZ;&tkjw$*%?{x_+*z#_+jxXTeLs4Iv7VP@z8zr|{ zZ=-CQCFRu!=Mwt87N5meFK0N)-S!5{u)O0)GlIFmj*maPqx=$sKOi?CkXr%-UH1wx zMW#2<_Pg|MYP^aZrXk+Nf^4BGUC_7~ku!bv8q;Rg`X1l#<1Tw=6y?TAGRhRI!sD2_ zk=n(*kK7U@znJK(vo853rqM2T^IXv1X5UF89`(uh?r*%@UY^VO3x!I~{C{nIRa9F|*e>qwT3mv=7PsIKT#9?qVuj%D z1a}V-pumS~Til9E@fMf1SaCh+S?8?vU;MesMb^xkz4v6#Bk%jDEH0Nn72-pR=TpBF zBwrphO-@~dp^ST}-r|8=)43{q7Kz2V=b%(&u_Bx`HNpjNrcPTgB3r>DBi&zjspuk) zrnFMuKJV~?wHMAv=ezb?zuX@cysSh>5x?r2`eahvEc(1YE3jY|c38gkJ@ljZe0e!d zw$!ASBoeSW?erQYwfy2WdPnV_j;hKc^&%MEwRnUnSekYA!nipuhSd9U^6caEnZ=JM zSJvMv=d!=_1&%Lds~tr&L$;*$zb;w6d4rr>#WqDTCyx5*8tp1kYx9a{z6(L@rAFnq z(VrFD1j}#1yW-{?#PhGyg(Y)^ynn4Q5M!=a)hYY}6`KR9?;8*#3hC3mh|KFsF8RlYDdXj0#o7~##%(|MD!q)L&?RS| z7Y`X=Bf#z&8S!d)X&x}N1{4>oOw>8mSNGn1X39=Ub7)y-Asnun)jZvawrF|{B4F`# zZiu7-)^8Ryn!Hd6;K>bSRi9LR3Y|ZpHjlXm4n%EHhyWAeU6XT*7jI6M)_cz0<%-<- z{;17Xt6@-h2Z>k!(060#eo$kyo@lm?$Us42$U0aJ)3&OPh1DVJWyj^$pQe&EBQHyCswNOPZ?shbn`U8=H@d+*($(>e)l?xX0 ziWvOKhBoOC1JrqH&G;j$2vs(DJi+7ig@hRw#zECAt*^{nxmOU@`Q3QpuXuG;%n^_v zflr+uMxcX@_q`e<+sL?1Q!LJJwdXE8h3rMPKu_|~dx@;}hTeppZqbz$)<}ZFxyaAE zT}97p!6*;>Mt(-Ute~;G+V=I@m{b~(J?z8?VeuW@l*{Wh#)13@pNKqfK(VZvAv0)9 zIXFDbD9N!rLNx8Vd~myF$9B^&RnunfZ`H;}WaHPI2uA=2RN1STtg#`(I2 zJF8CR3^XV|Hp6(z*?ZuT5fJxPcfdj!Z9b$xu;AR=JP8w{K~X{@p_vMAKCdZ~q$yn> zj|2U`M;-=fT=C`lAy~u6$%&}-Qy_Q9wD-3xWw`0fbEQQuH(p7LTuG1 zbh+I+zhGJ}lja~#8?VuUq#^*yJ*w(?mdUE7j5zrzDcSdVQ9qn(>E-Kj);MhGm4NvN zK5?x?LIKAVvE3}@&iK|uh*t3UZ>;YbZ}SU;%t)3f9W#yNYQDRj-RG&@+^4L4g7ZrFCqx&>sBW>uH$Zrsee(=sDXPmi4SMI9Ly=R=t zC|I7P3n*r?Ux;ZseFr~u!$QKdsf>SbQo#JpWU;awpmlYvMa{_}30;X;^V-UK|> zlK>!JF1#tZouaHnOsJtU_-1&Yk8sSRtjpe{M2#>VOB)<#@ErBiXv5&5o~%80Koy>L zFDR0csWm)>A~vL#ubnW5h!L~Agws^TynE3p$_Aup80!#$ad`3<#<#osdrkQ##oKOfJNZ>B;P9=@-TzS|*IZ4quj zEfkq&nN*Y5-^BpPaUL`8GW0nsEfXQ8L7EfFq0h36ru)}SB0$kko~0L=iU>{-f=JW) z%h<&ql?=;aVF;%(o@t&x|3i3(*2m29Hb>s;C^F{G1YNO~hUuCoZD&JQUqaC@4aAjp zj-u&6d^n9jtu;-Dou_29hR>B|5lWy$lc(9<#Kx1)iDG1`UWUp!P_!iQ(z;G|<)pTV zpVk&72$^kmCuAT^6!-0!%e#;@(&eTi#uzAALIQo;Z_O3=P@a?*BH2!ehMe)UMj>Oe zY-jLk^Cn#M2sO^XZQ67cge#my-~scR0>^2i8A0mCD=xz>b3+!&Pgri3DqIfUr&mw+ z*&F}uI3J{=1^!LX!2a`1DzG2kGg)VHMmo&9ytii}A}ufnQPnu+)Yavn)TK6*TuaHf zV^>(z{~!BK$DtQ#Uo5s}vh+jT>L$zVpU;5nc?a=LLihqx@)=Ldm5RRojOO=$o`h_f zDSi91F>Z85_?U40fKryjif%_XfIl2Itp*0@i-0Z5Es$Z>B{=_Dg-gFBS91Inrt?lh ztfS@IiEKgX6j=ds^OT>_HS5U|)7<-*Uy@V*0*dgbbGG6Irf>RBh#tgOB)Y45YBx@r zvXQkRB%90CVWXU9IaC%V7Rk5j@If^+g*)1Om478oV}3f1d{KJ+N-fB$anwNhPEW9^ zidq0BEALY<{A4OVmnfT@H`~2QnVpa~fldxY@c!6C57bg!xmw!OWeJEc%^mUUKjtC? zhDvi=77!G%0ofTIjKe%V(5_|;*I3i)GOgQ?iF-^s=S zY)U72cluMT^Wxhg%_7M!kKbGngtd>jPyQ)mOWPhGwEN;f}o8t)3?i8j1 zIm;9-&ySDz52;gN9(WmUFF7!L>DKOIoRd@6;v$6!+rsG)9%C)M(3rA5(kwL9{G011 z!T!?>1F8XnR(bEM&?ga*GR8{W$pq6{6d0ynF^w1|DU5#UzFbq%2YPpNgO=?;ZPFgH z+$~Z=SnDleb8yGj;nDtf&Ab+eA7mWE17gR$-^>V<4+S2`z!T)?NGQUZS2JHTV(NXxVQ@M*icA;dp=tK)Vhum=AJ zHmv>U_XXZYCs(I%q`zQRO5jvuti;XM9ZXVZJTPR^f;}p(ew?sP`!po<{pJi?m7#}a z8`?eULh5vQ!9|^JMGTyCz!8V4)qj>}s3u#ez0h zxu+kf?LK$p;x*pi^ldp&}&@m;G2eKBYmW1MKoxS-BD+JG08}qj+|P z%a)Q`F>32!qC`P)_&QTX(*~A2Ax*9S#fPuCnfW)qTupK5!Kd$4h2qqCIM0~&@isqS z0?Vpty1s$wD{bxT@5>+bI2~wZf}KFy+cOMHUJomOJVu2tuEC-1X1J)5AArZoR;Rsh zK|0>(O~Iac8pB~o!U_Fre9fScpT@C=MFYV*V zc=Gb}K5Qzmm(jiiKE$}KUkTxJa5>1OrK!T79|dffw4r7H%`b{?H<5v53%su@Vvl#n zn@z@#o735#Tg7-D$S->r*x5dFEODde85|(8+zytKWUqiCR}k4WG1mg8lqLq)an8sGQJ1 zI#k7f9%7KRx82!g9?~otzI$rZh#!3T(e>BrSk!eZ{$=4?fd7lr)9%xQ<(JPrWte0Y z9mO(j=l#^Hh*REzFMn*JctPNr-J|6qqrMijs5!P;7837`2 zEA2C}P*-#L>D>z|@grk&*v_He&rdQjF39AqBq+>F&iQ_RX1hUt%P;LpI&>i@M+#Ct zHorG6eqOA1X@1hP-=7mVhSQ{Ga5lhrt2x^xBCA5FAUiY_vet3i(JokrXWrNArUTWH zoli|3lOj|&jnD22PEy>Hd$qUM)5Z^s-zG0xDZ-(1Mx;~lp5D#z*50@+mhi=n*hoH# z*JUaWdcEZ)koeEf?iR&3N206sJs#cmFULVR{@?!hf1m(`OBw(s71^nr0BA#_$2;$z zCkx$j2XGrF-4jmGhn5?*~JOsX3j&vdocWfMGp7&X4# zTt$8V`Eh+Yk{n7Pg~eUX1atD18`2^x+)$UEk)}XwV$Xf3mRRv0O!rZ zQN6$P*qIKMlqP$S&Y6#z~phV`CM&ldqVMF6) zWc%fru{V~@Q?axZ_M@6a%(rfmZ2UK{ZQk(3;m1SKk~}fz%OfJFi=>(V#@(pQ1~t08 z%TvEP8+CtCu#=lNn}+X*9LdmsVDM*l-@9=1=L?Z@{;Ts+a)`^y=a_iUa3AB|^ z46Ftrddy~*`tbgy$A&*HFFW_zO-Stwo@ZOpgquaNy5(5o0k-#7xSTyFDX)HgaL2E` zlQWD`uu>4a$~}U<2Lz2-TK0o;Q%tSSa6kE90#N9CuElHX_|kcV3D$Kk|jO#&22 zByNV+X8~NDtK#!Lo2Q=wdWUbqfYK9jbKJsDiq_~+cJ*Oj``=B?6i@ZESnn_VMR0Zd zm02Nb{_^M;(%0#*J)ZUMI&9GeeyU=KCgEC5FA!;X!CKCAQBR}NUGEDX#k;7}MmIhw zs-_NU>T>=baQ25g#~+E@>{du-J!JRB?e!EqmGOQKbnf4c9_-t=zmv`#=QPpoBmJX! zZ>a2G=OD%QcDGt9*zbO{3eE0LszBgnn(kV3CelPaa4Un?L&ZaSt#=)a><}gaGFG>y zGzIpjyJ=qUZ96qDD5&?t>z~AW9rh3ko<2y&1b_d!duz3k`tFYtPuuZo?eUkS$x^H3 zIhiSAZ&K9HFB{8mYaQwOL?%3p`ER|Xp9?z>{dTCO0^J(Uk~&~a z(0X6Z-%_vKbo&;Zm6#^s%5W(V0a~#KF#;)c*NI{23eO&=VXGQ?!RkfnVm;n0W}$AI zr`R(Huu1g_xZbibC3ap~v8hcA)-{P(Jj&bsveCRljTXTEp^I%+`Cf77SkE}e#VMTS zld4{^dAIKZd`78%dw~CBN@ev2U9p>;qxCIHHbb2L9NO>5MJwukxVHJSs=DX5Q0cx3 zUo~3Zoiud^V>l$=>k2d-`Ppy2DIBtc$QV&<9|xO z*p?CK!!p~kA^GudkAf6b*88Lu9@;2)W7|HiB&nRau3-NBJ4|k99#nNhudWr;P7))u1Fj zosU2?GiK42OpDk2p34g3>*l!kcl=`oDt?=98-S+eUl$**cEyUYv+-5bkEaJtIoKy{ z+f63xMj1QaxE_Y3GiKS2rXaCB<(>)@w0&^>5yZ*l@}6Nekv9MMcu3jbf6cAE`M(Mm zm&EAi(&^N`+HQxvqnYbj%$YSX`6XMbT$>ubWpCeyyMhVve;6Z&KAH$zv@t#{Z&qS) znHGesebe;WBMgRKkn&yQbw9h#(Q1Uchg}(K(lUM#V&0%RM9;WY5)J=qq< ztMC#k`~~s?g3j(asfa;GiGzjg?1tEMfbYMOI>I-4S<)f}kcbm&!-$t_{UW>U;TJEw z1uJ}F)RYLVf^q(P+&|KxsVGd*`@C`|B}VYE{x3xShlk1jRWC3_qy8&Qh)8<~gEX&j za&p%F#`AuS<(%N~wrRtePh7Rw=L^YM-?~}Q)3sOzJGD1oN>{XHX02Wk9(asd%pJa| z_i+4bZ%+yb!elV4aXJi?paz1~Gix(3vaxuxIB<~s>z;{X4sV=A+>7y%8}a_tBeZz1 zIXWn$fBsR~_P?enJF;iQ)DW3BUowv7B7E+9J?y{o5gl4-n7DSW^Mj@M2@~Y?t)N>> z(BJM71Aj>hJQJViK&OrYTR>0|21|g*$``y3QFhYEhs4(Tm;@f=0B};}h7?_QEyC~! z*qNp$r##4>wLq_OmbM=k*6_xX$w6+PIJ<-2N_6;c65a65e2km2q>N=^K`UbqH=P1@ ziwO`ZcRA0U+j{woO?%-gUlE|TOe77c;@D0=gqzRNKwP^4zkvKfbkMtSNHfN`qI}iQ z;x;?TQ9Q}BAB2OB2B5+&cMp7ioI21YMxwN`kN*nn(*|A?d-9E+Bc{=-Udhl$?g0fH z=fnrgm_EO8U?LvWa#5~`1Uo4-web91x;=KG+1@+1((>#<9%#P3U zlHT9`?jV6ZjZ1){ytH1XXh5tWtXNwPI*gbi^9vlGIy8_c;_i;QHKZ%CVw;#Ihq{oT zZ`Z2KYa2C>I#~5}>2U%63rC8Ytv-O1zbbr>o1Y2yURLyeI0@$e>1R#tN zs!G!+;&tlqP8mvk6)13eNcXMQ099n7B5{aMpwde9xNe6Nu9AU_qc@rzIr$a)2M(a| zZo+8E9MU;^np|oXM=_*JeqP`|X!$*Ak6DKIbNT@zsGO5?GCtP|5t>_H#jJ3?Xe$3k zb9yNLEr_+CVuMqUXWm+{K-EJn+@V`*wk>lo&rqsd9doGs!y5M4;1C-F+f&3~o13JgPmZH`tP>BHhN@?>H5ph(gpI4W~y+tUF7#y&Hj zbdrO_F)5%S;o%06j#1WDGT<0MaT8Fg;~EY`dFB)u7xZcg&!j=V;0q%;TrNdc^DB7A zaYp=GI{RY8F5h9*wML@CatK`;hft%1OMOlngx>wF4#e*tVd!k=ZPd*kWaK-ahQmIp2opybxS5%T&=dc?rxTAj+gGcJ!vdu-nRMV;is9~mM>tMy;c1(&B2Mws+-2>4y_$`p3^b19!lEr6E%8VA5bPR#ObNDMNX&Tpb^Y{X-g-oOMrwWD0sq7qo`i~W9$ z=!6+WiVvpB!>V&J==T@dC9>?9=9)4ODy&tgir?hv+5loMjH($44gb>Pb>VmxppfmB zr{?q-@W=S6gtsH8+yCbI*pQh?{hLmmYa5f9ec2I9kWhrmp3$Uwt5H~Uyp&PBRbPbm ze2kDqng%lemWq$r(>VqY#fihk`&O=&ky+1$NJ4`Fy)Y%ytWsdwg^n&w5KC!TabS>d z2lOc90WHxpwf{~M7)lv;Xc6sKW>Kq2-UPk2QWKn@zq)8&{YG=i^Gt# z($r+tVkR#E)q|rT%+vwF5Uo-ej=UQ7y@B)zR+(P?9L66U6@bVA=@fk1jY*~X-B*z8 zeo$o6C}is7;*Hg?j{Xi!c!BKLhhq=urPc>yf2`;%%-+$pp^hRsuB0eYIuDls-0HR( z=~K{Y&^0%NO@Lit82bkpLJVn69Ftz|v+t|K2Jgn0OD>V7UMS4-eRP9lJJgRI=ZIE8tt?rG~QB&v3;`R85Z9?C7F46|MmQ@VVH&PK>CD2DiyDHFhqcu$LT$? zhJMGAteV#OhYiDhWLa0aXf?I+Z)_+$c&U=)5&UQsr6D$6(H{!Fg^>(`e{bV74*&T{ zagANW4eLOK3WYN(ASC@j_xPp90K)1~$ zbRd3(&Fv8QQ1LK;l|HNDOfk_!O$PuQph>O~x2+HbB{&f+#VOx>&{iy>x5!nG=TWsOcgqpsOYh7@iEJ49B*@-6qLwp*o;19H)|iIGZUr|{(D2T9e|*WD_pdqS;IQVhlz``~O^0v5o7m@v4xr5?2^BJ;LMEl$wwt?Je?BQLo!+ zf`n+g0R{2jerTC0(iyOq_8;Bp3xCkg6t{W1OC&VGWQ@Vhs4kTz@HPbgAdmt~;{!L4 ztW`o~6IWqO_6f>%hxEV;%)w(vcA`xwUF-jj-pI_AC?s4Mi0k#TDRClcBn$8mRFg97 z^C65eWeLYitNn%fuqzIJmk`1>KmdgxBQ)Xf=N9nLM~89aI|gW{XAOhcBoJpp7ioV2 zO2RX7Az0CA*%5CdtK=Xy@BEMf*=Ui?1F~uw$e^;fAWW^RFqVm-prmYj0buwcM7}69 zJcoyjw?B1%!SJdwt%r7Rl2}Oj;xP{d-AD%|=#w#Bmr;a_TLB|51MvX4pmFP1=*8R% z?w2?&qVsyF&!9F&w5m5Rn?$a0(hSdt)tVK{bEfhFB9E4?Dsdps1Qt-vj6*Zs>MyE> zU7W7H2&bx#BC&4EB_qf>dIAVtLk4h??-FwqF#iRLb7f;SF&tBXQh@6GUOiDbGIGi6 zNGEd%tqunGgZL8G&-SGbr3%OZ7F5}UEG6hyca1m{Nb#QRVUqwc&VO7}oshP5YFJaD zhdLFIP>W3Gn`A(Q&@N#S8c4q$gaTgRbg{ZK5R-ewWTe%_V8|1F;!=Vl{Zt$U_Bo!$ z3jl{5CK&7mP$@XJ6C*gS5pGd3Zk+kD=8PO{YKcx-ct}A3OS`)LiALLD=m17^%%hGc0Ghw+;IQSZ>uV@vto?jCds4MR5?jGLO{ND4Vdku>n3H0@%OUzt?*AQMA2 z(xGEhVa{a2tt2Jqm6UL$4v;V*n|kqq7dh_AQ#-ehix)jzs3i09G`^EY_uY~b6iA`7 zT&>%hLywY$9?UR7G85wq1T(OZtWyEQZ3}JEJ-_#3(E?_3RMk{CkaFy|n-7?kl!AYP zy}W3GnqbVdb5PIxoZxLFP*jOM$byjRTG|;<;)O*&j08%t%C~mPPR3GVlQ8os=Oo-i zb<8l|ia(ulhPfgF_)7(5m2b*Fw&T!+uZkb0Q=00QUz}(}@k0a%Lr{5!W~Gk`u=zqG zt4B$+!#H$=LMs!iZO}kA>1B4&l|E2`FcRJ#T9I?9u!nIaZAFS~dwV0DDhd-cUisu$ z6=bVcK5Mj8q!WGzT*Q89{#cSm@DnqB^5rULzxfqP5(!sJ6!8Xe7)idm_(s08GQKH2 zvZ)?p9t!=Hj>`GnJ|y86&?~zAr(&uiB4D7vYIgV?p4}bG)tqjgOH+hNe&wFnah%E= zz|}BHI}go9&Oltr3b;f|G8WI1Cr>r(!hpnd-2kZ#5r@AUll>^Y;Q^=1S5^y6D!QbW z#q7k}AR)VemEcyQcJ{XgI$61dGG^QJ^IBr4#hwyj`4Yn7%DG~p@>zmTs7v1h43-=f z1gn$kU5Y(PebNgm`iXN4mTJf;brpdXf=2)>R1#CwfXQv4j_u+a3>E|7j73nCURAK) ze4TQnNFqhWU6OmQ=_XcUP;#?+m;pCSp04>)$SSeH5;KVPfbWEV_tVebg#1N@R@8-B zqmoZ?{F+%A*0u+XEEKV_2DBuv8U>#KY%omY_QuuV^*@1gbZ zrX0!w>WC(q3HM*(R-@cGwetBvXXx0I-`$D9B-y* zkvO$}s)Z<2cYXef>P|EFV+X_gg)#c}gF9ZQ-S!%zbIigeK4E{Eppx#{1`h22z`+x< zwjn{D7YK|XxsG8rN9iUMD~GD|y>nj~2J?t0;0q^_Bu6TetI(lKfCQ9xg#`TTfERls z3c2x53>9uKyL=-SZ)sy#J~)8riY^+wyt`8AEXuUe`$n^#lxE%1R?fj55P`g@V9Wd| zsV~G+(Yq-0!`I$wjXzjuuTEQA-?wz_9a&8!F_5IvM+$7iLuPTk%j{r9Fr~bz@Ze+&*FR_1!`ChvAlozmq*PyxomAhR<3_l zP1J;fhlhDjAU?9B#mA&f00aY~fB^6qAa1t)0GBusK-pN6Iv?%6k&+3bp)*}G(EoqT z_OA%4>7NX0976SZ zb4dOl_{07m_;28n1Blzm^}X^Nhi4>lAT;M`x=-=T#N@0@bk$Lb4fa)Y{f328 zv1FxZao@+9-d@kn`qtNCazIL%XLjF;^Z12;Exl9^#}>%>Y?ydb250UW52Nak}2LJ#7 From 267ac9870e57988f7f9bcaf8310771dfca74b0c4 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 15 Nov 2020 11:13:08 -0500 Subject: [PATCH 192/344] Updating Scrneenshoot From c664d60c126dc9f8e86df66e9310826930411f4b Mon Sep 17 00:00:00 2001 From: Mohith Reddy Date: Sun, 15 Nov 2020 21:53:41 +0530 Subject: [PATCH 193/344] Solved "clutter_actor_add_child: assertion 'child->priv->parent == NULL' failed" error --- extension.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/extension.js b/extension.js index fc7690e..b219a08 100644 --- a/extension.js +++ b/extension.js @@ -75,7 +75,7 @@ function changeMode(widget, event) { if (mode > 4) mode = 0; settings.set_int('mode', mode); } - parseStat(); + chooseLabel(); log('mode:' + mode + ' font:' + fontmode); } @@ -198,7 +198,6 @@ function parseStat() { lastCount = count; lastCountUp = countUp; lastSpeed = speed; - button.add_child(chooseLabel()); if (toRestart == true){ settings.set_boolean('restartextension', false); disable(); From e3b7d4f14cc40294d8dcaf52996f4252ac100c2a Mon Sep 17 00:00:00 2001 From: Mohith Reddy Date: Sun, 15 Nov 2020 22:37:23 +0530 Subject: [PATCH 194/344] Fix JS Warnings about undeclared variable assignment --- extension.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/extension.js b/extension.js index b219a08..44e7705 100644 --- a/extension.js +++ b/extension.js @@ -27,7 +27,7 @@ let settings, resetNextCount=false, resetCount=0, reuseable_text, newLine, h=8, tTime=0, chooseIconSet; -var extRaw, rClickCount=0, isVertical, togglebool, DIcons=[], lckMuseAct, revIndicator; +var extRaw, rClickCount=0, isVertical, togglebool, DIcons=[], lckMuseAct, revIndicator, ioSpeed; const ShowNetBtn = new Lang.Class({ Name: ButtonName, @@ -80,7 +80,7 @@ function changeMode(widget, event) { } function chooseLabel() { - addArg = (mode==4) ? true : false + var addArg = (mode==4) ? true : false var styleName; if (mode == 0 || mode == 1 || mode == 4) styleName = 'sumall'; else if(!isVertical) styleName = 'upanddown'; @@ -238,8 +238,8 @@ function enable() { refreshTime = settings.get_double('refreshtime'); mode = settings.get_int('mode'); // default mode using bit (b/s, kb/s); fontmode = settings.get_int('fontmode'); - whePos = ["right", "left", "center"][settings.get_int('wpos')] - whePosExt = [3,0][settings.get_int('wposext')]; + var whePos = ["right", "left", "center"][settings.get_int('wpos')] + var whePosExt = [3,0][settings.get_int('wposext')]; togglebool = settings.get_boolean('togglebool'); isVertical = settings.get_boolean('isvertical'); chooseIconSet = settings.get_int('chooseiconset'); From ec9ec70771f59942e2d9c8b65b4106f1e4902d36 Mon Sep 17 00:00:00 2001 From: Mohith Reddy Date: Thu, 19 Nov 2020 11:21:05 +0530 Subject: [PATCH 195/344] =?UTF-8?q?Implemented=20the=20Extension=20using?= =?UTF-8?q?=20Clutter.{GridLayout=20and=20Box}=20for=20fine=E2=80=A6=20(#4?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Implemented the Extension using Clutter.{GridLayout and Actor} for finer control, center elements in Y axis and Refracted the code --- extension.js | 473 +++++++++++++++++++++++++++++-------------------- stylesheet.css | 27 ++- 2 files changed, 303 insertions(+), 197 deletions(-) diff --git a/extension.js b/extension.js index 44e7705..2dda86e 100644 --- a/extension.js +++ b/extension.js @@ -1,3 +1,4 @@ +//Imports const Clutter = imports.gi.Clutter, St = imports.gi.St, Main = imports.ui.main, @@ -6,11 +7,11 @@ const Clutter = imports.gi.Clutter, PanelMenu = imports.ui.panelMenu, Mainloop = imports.mainloop; -var refreshTime, toRestart; + const ExtensionUtils = imports.misc.extensionUtils; + const Me = ExtensionUtils.getCurrentExtension(); + const Convenience = Me.imports.convenience; -const ExtensionUtils = imports.misc.extensionUtils; -const Me = ExtensionUtils.getCurrentExtension(); -const Convenience = Me.imports.convenience; +var toRestart; const schema = 'org.gnome.shell.extensions.netspeedsimplified'; @@ -18,79 +19,247 @@ const ButtonName = "ShowNetSpeedButton"; const rCConst=4; //Right Click 4 times to change Vertical Alignment -let settings, - button, timeout, +let settings, timeout, spaCe, lastCount = 0, lastSpeed = 0, lastCountUp = 0, - mode, // 0: kb/s 1: KB/s 2: U:kb/s D:kb/s 3: U:KB/s D:KB/s 4: Total KB - fontmode, resetNextCount=false, resetCount=0, - reuseable_text, newLine, h=8, tTime=0, chooseIconSet; + newLine, h=8, tTime=0; -var extRaw, rClickCount=0, isVertical, togglebool, DIcons=[], lckMuseAct, revIndicator, ioSpeed; +var extRaw; -const ShowNetBtn = new Lang.Class({ - Name: ButtonName, - Extends: PanelMenu.Button, +// Settings +var crStng; //Initialized in enable() - _init: function () { - this.parent(0.0, ButtonName); +function fetchSettings() { + crStng = { + refreshTime: settings.get_double('refreshtime'), + mode: settings.get_int('mode'), + fontmode: settings.get_int('fontmode'), + showTotalDwnld: settings.get_boolean('togglebool'), + isVertical: settings.get_boolean('isvertical'), + chooseIconSet: settings.get_int('chooseiconset'), + revIndicator: settings.get_boolean('reverseindicators'), + lckMuseAct: settings.get_boolean('lockmouseactions'), + nsPos: settings.get_int('wpos'), + nsPosAdv: settings.get_int('wposext') + }; - ioSpeed = new St.Label({ - text: '---', - y_align: Clutter.ActorAlign.CENTER, - style_class: 'forall' - }); - + initNs(); +} + +function pushSettings() { + settings.set_double('refreshtime', crStng.refreshTime); + settings.set_int('mode', crStng.mode); + settings.set_int('fontmode', crStng.fontmode); + settings.set_boolean('togglebool', crStng.showTotalDwnld); + settings.set_boolean('isvertical', crStng.isVertical); + settings.set_int('chooseiconset', crStng.chooseIconSet); + settings.set_boolean('reverseindicators', crStng.revIndicator); + settings.set_boolean('lockmouseactions', crStng.lckMuseAct); + settings.set_int('wpos', crStng.nsPos); + settings.set_int('wposext', crStng.nsPosAdv); + + initNs(); +} + +// Helper Functions +function DIcons(iNum) { + return [ ["🡳","🡱","Σ"] , ["↓","↑","∑"] ][crStng.chooseIconSet][iNum]; +} + +function nsPos() { + return ["right", "left", "center"][crStng.nsPos]; +} + +function nsPosAdv() { + return [3, 0][crStng.nsPosAdv]; +} + +function speedToString(amount, rMode = 0) { + + var speed_map = ["B", "KB", "MB", "GB"].map( + (rMode == 1 && (crStng.mode == 1 || crStng.mode == 3 || crStng.mode == 4)) ? v => v : //KB + (rMode == 1 && (crStng.mode == 0 || crStng.mode == 2)) ? v => v.toLowerCase() : //kb + (crStng.mode == 0 || crStng.mode == 2) ? v => v.toLowerCase() + "/s" : //kb/s + (crStng.mode == 1 || crStng.mode == 3) ? v => v + "/s" : v=>v); //KB/s + + if (amount === 0) return "0 " + speed_map[0]; + if (crStng.mode == 0 || crStng.mode == 2) amount = amount * 8; + + let unit = 0; + while (amount >= 1000) { // 1M=1024K, 1MB/s=1000MB/s + amount /= 1000; + ++unit; + } + + function ChkifInt(amnt, digitsToFix = 1){ + return Number.isInteger(parseFloat(amnt.toFixed(digitsToFix))); + } + + var digits = ChkifInt(amount) ? 0 : //For Integer like 21.0 + ((crStng.mode==4 || rMode !=0) && !ChkifInt(amount*10)) ? 2 /* For floats like 21.11 */ : 1 //For floats like 21.2 + + return String(amount.toFixed(digits)) + " " + speed_map[unit]; +} + +// NetSpeed Components +var usLabel, dsLabel, tsLabel, tdLabel; + +function getUsStyle() { + return ('us ' + 'size-' + String(crStng.fontmode)); +} + +function getDsStyle() { + return ('ds ' + 'size-' + String(crStng.fontmode)); +} + +function getTsStyle() { + return ('ts ' + 'size-' + String(crStng.fontmode)); +} + +function getTdStyle() { + return ('td ' + 'size-' + String(crStng.fontmode)); +} + +function initNsLabels() { + usLabel = new St.Label({ + text: 'Loading...', + y_align: Clutter.ActorAlign.CENTER, + style_class: getUsStyle() + }); + + dsLabel = new St.Label({ + text: 'Loading...', + y_align: Clutter.ActorAlign.CENTER, + style_class: getDsStyle() + }); + + tsLabel = new St.Label({ + text: 'Loading...', + y_align: Clutter.ActorAlign.CENTER, + style_class: getTsStyle() + }); - (!lckMuseAct) ? this.connect('button-press-event', changeMode) : null + tdLabel = new St.Label({ + text: 'Loading...', + y_align: Clutter.ActorAlign.CENTER, + style_class: getTdStyle() + }); +} + +function updateNsLabels(up, down, up_down, total) { //UpSpeed, DownSpeed, UpSpeed + DownSpeed, TotalDownloaded + usLabel.set_text(up); + dsLabel.set_text(down); + tsLabel.set_text(up_down); + tdLabel.set_text(total); +} + +// Initalize NetSpeed +var nsButton = null, nsActor = null, nsLayout = null; + +function initNs() { + + //Destroy the existing button. + nsButton != null ? nsButton.destroy() : null; + + //Initialize component Labels + initNsLabels(); + + //Allocate 3 * 3 grid (suited for all modes) + nsLayout = new Clutter.GridLayout(); + nsLayout.insert_row(1); + nsLayout.insert_row(2); + nsLayout.insert_column(1); + nsLayout.insert_column(2); + + nsActor = new Clutter.Actor({ + layout_manager: nsLayout + }) + + //Attach the components to the grid. + if (crStng.mode == 0 || crStng.mode == 1) { + if (!(crStng.isVertical) || !(crStng.showTotalDwnld)) { + nsActor.set_margin_top(6); + } + + nsLayout.attach(tsLabel, 1, 1, 1, 1); + + if (crStng.showTotalDwnld) { + (crStng.isVertical) ? nsLayout.attach(tdLabel, 1, 2, 1, 1) : nsLayout.attach(tdLabel, 2, 1, 1, 1); + } + } + else if (crStng.mode == 2 || crStng.mode == 3) { + if (!(crStng.isVertical)) { + nsActor.set_margin_top(6); + } - this.add_child(chooseLabel()); - }, + if (crStng.revIndicator) { + nsLayout.attach(usLabel, 1, 1, 1, 1); + (crStng.isVertical) ? nsLayout.attach(dsLabel, 1, 2, 1, 1) : nsLayout.attach(dsLabel, 2, 1, 1, 1); + } + else { + nsLayout.attach(dsLabel, 1, 1, 1, 1); + (crStng.isVertical) ? nsLayout.attach(usLabel, 1, 2, 1, 1) : nsLayout.attach(usLabel, 2, 1, 1, 1); + } + + if (crStng.showTotalDwnld) { + (crStng.isVertical) ? nsLayout.attach(tdLabel, 2, 2, 1, 1) : nsLayout.attach(tdLabel, 3, 1, 1, 1); + } + } + else { + nsActor.set_margin_top(6) + nsLayout.attach(tdLabel, 1, 1, 1, 1); + } -}); + //Create the button and add to Main.panel + nsButton = new PanelMenu.Button(0.0, ButtonName); + (!crStng.lckMuseAct) ? nsButton.connect('button-press-event', mouseEventHandler) : null; + nsButton.add_child(nsActor); -function init() { - settings = Convenience.getSettings(schema); + Main.panel.addToStatusArea(ButtonName, nsButton, nsPosAdv(), nsPos()); } -function changeMode(widget, event) { +// Mouse Event Handler +var startTime = null, rClickCount = 0; + +function mouseEventHandler(widget, event) { if (event.get_button() == 3) { - if (mode ==4 ) resetNextCount = true; // right click: reset downloaded sum - else {//right click on other modes brings total downloaded sum - togglebool = !togglebool; - settings.set_boolean('togglebool', togglebool); - ioSpeed.set_text("Loading Info..."); - } - rClickCount++; + if (crStng.mode == 4) + resetNextCount = true; // right click: reset downloaded sum + else + crStng.showTotalDwnld = !(crStng.showTotalDwnld); // right click on other modes brings total downloaded sum + + // Logic to toggle crStng.isVertical after rCConstant consequent right clicks. + if (startTime == null) { + startTime = new Date(); + } + + if (((new Date() - startTime) / 1000) <= crStng.refreshTime * 2) { + if (rClickCount == rCConst - 1) { + crStng.isVertical = !(crStng.isVertical); + startTime = null; + rClickCount = 0; + } + else { + rClickCount++; + } + } + else { + startTime = new Date(); + rClickCount = 1; + } } else if (event.get_button() == 2) { // change font - fontmode++; - if (fontmode > 4) fontmode=0; - settings.set_int('fontmode', fontmode); + crStng.fontmode++; + if (crStng.fontmode > 4) crStng.fontmode = 0; } else if (event.get_button() == 1) { - mode++; - if (mode > 4) mode = 0; - settings.set_int('mode', mode); + crStng.mode++; + if (crStng.mode > 4) crStng.mode = 0; } - chooseLabel(); - log('mode:' + mode + ' font:' + fontmode); -} -function chooseLabel() { - var addArg = (mode==4) ? true : false - var styleName; - if (mode == 0 || mode == 1 || mode == 4) styleName = 'sumall'; - else if(!isVertical) styleName = 'upanddown'; - let extraw = ''; - (!isVertical) ? ((!addArg) ? (extraw = togglebool ? ' iwidth' : '') : null) : // Doesnt increase width on right click if mode==4 or if vertical is true - ((mode ==2 || mode ==3) ? extraw = ' leftlign' : null) // if vertical is true in mode 2,3 then make them left align - styleName = 'forall ' + styleName + extraw + ' size' - styleName = fontmode > 0 ? styleName + '-' + fontmode : styleName - ioSpeed.set_style_class_name(styleName); - return ioSpeed; + pushSettings(); } function parseStat() { @@ -103,159 +272,77 @@ function parseStat() { let count = 0; let countUp = 0; let line; - if (rClickCount != 0){ - tTime++; - if (rClickCount>=rCConst){ - isVertical = !isVertical; - settings.set_boolean('isvertical', isVertical); - rClickCount =0; - } - if(tTime>rCConst){ - tTime = 0; - rClickCount = 0; - } - } - while (line = dstream.read_line(null)) { - line = String(line); - line = line.trim(); - let fields = line.split(/\W+/); - if (fields.length<=2) break; - - if (fields[0] != "lo" && - !fields[0].match(/^virbr[0-9]+/) && - !fields[0].match(/^br[0-9]+/) && - !fields[0].match(/^vnet[0-9]+/) && - !fields[0].match(/^tun[0-9]+/) && - !fields[0].match(/^tap[0-9]+/) && - !isNaN(parseInt(fields[1]))) { - count = count + parseInt(fields[1]) + parseInt(fields[9]); - countUp = countUp + parseInt(fields[9]); - } - } - fstream.close(null); - - if (lastCount === 0) lastCount = count; - if (lastCountUp === 0) lastCountUp = countUp; - - let speed = (count - lastCount) / refreshTime, - speedUp = (countUp - lastCountUp) / refreshTime, - dot; - dot = (speed > lastSpeed) ? "⇅" : "" - if (resetNextCount == true) { - resetNextCount = false; - resetCount = count; - } - - newLine = (isVertical && (mode ==2 || mode ==3)) ? "\n" : ""; - var speedy = speedToString(count - resetCount, 1); - function sped(exta = extRaw, spda = speedy){ return exta + spda; } - function commonSigma(thr = true /*If true will return a result else will return empty string*/){ - let sigma = `${DIcons[2]} `; - extRaw = " | " + sigma; - if (thr && mode !=4){ - if ((mode ==0 || mode ==1)){ - (isVertical) ? (extRaw = "\n" + sigma) : null - return (mode == 0) ? sped(extRaw, speedy.toLowerCase()) : sped(extRaw) - } - else if ((mode ==2 || mode ==3)) { - (isVertical) ? (extRaw = " " + sigma) : null - return (mode == 2) ? sped(extRaw, speedy.toLowerCase()) : sped(extRaw) - } - else return ""; - } - else if (mode == 4){ - let toReturn = (isVertical) ? sped(sigma) + "\n -v" : sped(sigma); - toReturn = (chooseIconSet !=0) ? toReturn + " -o" : toReturn - return toReturn; - } - else return ""; - } - if (chooseIconSet !=0) spaCe = "" ; - else spaCe = " "; - (speed || speedUp) ? h = 0 : h++ - - if(h<=8) { - if (mode >= 0 && mode <= 1) { - reuseable_text = `${dot} ${speedToString(speed)} ${commonSigma(togglebool)}`; - } - else if (mode >= 2 && mode <= 3) { - if (revIndicator == false) - reuseable_text = `${DIcons[0]} ${spaCe}${speedToString(speed - speedUp)} ${newLine}${DIcons[1]} ${spaCe}${speedToString(speedUp)} ${commonSigma(togglebool)}`; - else - reuseable_text = `${DIcons[1]} ${spaCe}${speedToString(speedUp)} ${newLine}${DIcons[0]} ${spaCe}${speedToString(speed - speedUp)} ${commonSigma(togglebool)}`; + while (line = dstream.read_line(null)) { + line = String(line); + line = line.trim(); + let fields = line.split(/\W+/); + if (fields.length<=2) break; + + if (fields[0] != "lo" && + !fields[0].match(/^virbr[0-9]+/) && + !fields[0].match(/^br[0-9]+/) && + !fields[0].match(/^vnet[0-9]+/) && + !fields[0].match(/^tun[0-9]+/) && + !fields[0].match(/^tap[0-9]+/) && + !isNaN(parseInt(fields[1]))) { + count = count + parseInt(fields[1]) + parseInt(fields[9]); + countUp = countUp + parseInt(fields[9]); + } } - else if (mode == 4) { - reuseable_text = commonSigma(); + fstream.close(null); + + if (lastCount === 0) lastCount = count; + if (lastCountUp === 0) lastCountUp = countUp; + + let speed = (count - lastCount) / crStng.refreshTime, speedUp = (countUp - lastCountUp) / crStng.refreshTime, + dot = (speed > lastSpeed) ? "⇅" : ""; + + if (resetNextCount == true) { + resetNextCount = false; + resetCount = count; } - else { - reuseable_text = "Mode Unavailable"; + + (speed || speedUp) ? h = 0 : h++ + + if(h<=8) { + updateNsLabels(DIcons(1) + " " + speedToString(speedUp), + DIcons(0) + " " + speedToString(speed - speedUp), + dot + " " + speedToString(speed), + DIcons(2) + " " + speedToString(count - resetCount, 1)); } + else updateNsLabels('--', '--', '--', DIcons(2) + " " + speedToString(count - resetCount, 1)); - } - else reuseable_text = (mode !=4) ? "--".repeat(mode+1) + newLine + commonSigma(togglebool) : commonSigma(togglebool) - ioSpeed.set_text(reuseable_text); - lastCount = count; - lastCountUp = countUp; - lastSpeed = speed; - if (toRestart == true){ - settings.set_boolean('restartextension', false); - disable(); - enable(); - } + lastCount = count; + lastCountUp = countUp; + lastSpeed = speed; + + if (toRestart == true){ + settings.set_boolean('restartextension', false); + disable(); + enable(); + } } catch (e) { - ioSpeed.set_text(e.message); + //ioSpeed.set_text(e.message); } + return true; } -function speedToString(amount, rMode = 0) { - let digits, - speed_map; - speed_map = ["B", "KB", "MB", "GB"].map( - (rMode==1 || mode ==4) ? v => v : //KB - (mode == 0 || mode == 2) ? v => v.toLowerCase() + "/s" : //kb/s - (mode == 1 || mode == 3) ? v => v + "/s" : v=>v) //KB/s, KB - - if (amount === 0) return "0 " + speed_map[0]; - if (mode==0 || mode==2) amount = amount * 8; - - let unit = 0; - while (amount >= 1000) { // 1M=1024K, 1MB/s=1000MB/s - amount /= 1000; - ++unit; - } - function ChkifInt(amnt, digitsToFix = 1){ - return Number.isInteger(parseFloat(amnt.toFixed(digitsToFix))); - } - digits = ChkifInt(amount) ? 0 : //For Integer like 21.0 - ((mode==4 || rMode !=0) && !ChkifInt(amount*10)) ? 2 /* For floats like 21.11 */ : 1 //For floats like 21.2 - - return String(amount.toFixed(digits)) + " " + speed_map[unit]; +function init() { + settings = Convenience.getSettings(schema); } function enable() { - refreshTime = settings.get_double('refreshtime'); - mode = settings.get_int('mode'); // default mode using bit (b/s, kb/s); - fontmode = settings.get_int('fontmode'); - var whePos = ["right", "left", "center"][settings.get_int('wpos')] - var whePosExt = [3,0][settings.get_int('wposext')]; - togglebool = settings.get_boolean('togglebool'); - isVertical = settings.get_boolean('isvertical'); - chooseIconSet = settings.get_int('chooseiconset'); - revIndicator = settings.get_boolean('reverseindicators'); - lckMuseAct = settings.get_boolean('lockmouseactions'); - fontmode = settings.get_int('fontmode'); - DIcons = [ ["🡳","🡱","Σ"] , ["↓","↑","∑"] ][chooseIconSet] - - button = new ShowNetBtn(); - - Main.panel.addToStatusArea(ButtonName, button, whePosExt, whePos); - timeout = Mainloop.timeout_add_seconds(refreshTime, parseStat); + fetchSettings(); // Automatically creates the netSpeed Button. + + //Run infinite loop. + timeout = Mainloop.timeout_add_seconds(crStng.refreshTime, parseStat); } function disable() { Mainloop.source_remove(timeout); - button.destroy(); + nsButton.destroy(); + nsButton = null; } diff --git a/stylesheet.css b/stylesheet.css index 6d4129c..ad3e043 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -1,8 +1,7 @@ /* For all elements */ .forall{ - text-align: center; - margin: auto 2px; - min-width: 4.4em; + text-align: left; + width: 6em; } .leftlign{ @@ -22,8 +21,28 @@ .sumall{/* Will contain styling for sum of speeds */} +.us { /* Up Speed */ + text-align: left; + width: 6.5em; +} + +.ds { /* Down Speed */ + text-align: left; + width: 6.5em; +} + +.ts { /* Total Speed */ + text-align: left; + width: 6em; +} + +.td { /* Total Download */ + text-align: left; + width: 6em; +} + /* Font change on middle click*/ -.size { +.size-0 { font-size: 1em; } From e6b3f7e6be23d48784fe4687d45a0232ae37c5e1 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 19 Nov 2020 11:26:43 +0530 Subject: [PATCH 196/344] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6aceeb0..2b21e21 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ [Get it on GNOME Extensions](https://extensions.gnome.org/extension/3724/net-speed-simplified/) or [Install Using Terminal](#installing-the-extension-using-terminal) -> Web Link : [prateekmedia.github/netspeedsimplified](https://prateekmedia.github.io/netspeedsimplified) +> Special Thanks to : [m0hithreddy.github](https://github.com/m0hithreddy) for completely revamping the whole codebase, > Forked from : [biji.gnome/simplenetspeed](https://github.com/biji/simplenetspeed) @@ -14,7 +14,7 @@ *Above Screenshot is with Adwaita Dark theme*

-**Current Version** : ***19*** +**Current Version** : ***20*** ***Tested on GNOME 3.36 and 3.38*** @@ -28,7 +28,7 @@ - [x] Adjustable Refresh time - [x] Supports GNOME SHELL 3.38 and previous versions compatible - [x] Changes width accordingly / dynamic width -- [x] Centred and more cleaner ui +- [x] Centred and more cleaner ui - [x] Changed Kbps to kbp/s - [x] New sigma icon that respects vertical alignment(old: ∑ , new: Σ) - [x] New Speed up and down icons for mode 3 & 4. (old: ↓ and ↑ , new: 🡳 and 🡱) From b47fbfc3253ae74497590a26815d31872867e18c Mon Sep 17 00:00:00 2001 From: Prateek SU Date: Thu, 19 Nov 2020 11:34:32 +0530 Subject: [PATCH 197/344] Make Code minimal --- extension.js | 38 ++++++++++++++------------------------ stylesheet.css | 39 +-------------------------------------- 2 files changed, 15 insertions(+), 62 deletions(-) diff --git a/extension.js b/extension.js index 2dda86e..f8a822c 100644 --- a/extension.js +++ b/extension.js @@ -105,45 +105,32 @@ function speedToString(amount, rMode = 0) { // NetSpeed Components var usLabel, dsLabel, tsLabel, tdLabel; -function getUsStyle() { - return ('us ' + 'size-' + String(crStng.fontmode)); +function getStyle() { + return ('forall size-' + String(crStng.fontmode)); } - -function getDsStyle() { - return ('ds ' + 'size-' + String(crStng.fontmode)); -} - -function getTsStyle() { - return ('ts ' + 'size-' + String(crStng.fontmode)); -} - -function getTdStyle() { - return ('td ' + 'size-' + String(crStng.fontmode)); -} - function initNsLabels() { usLabel = new St.Label({ - text: 'Loading...', + text: '---', y_align: Clutter.ActorAlign.CENTER, - style_class: getUsStyle() + style_class: getStyle() }); dsLabel = new St.Label({ - text: 'Loading...', + text: '---', y_align: Clutter.ActorAlign.CENTER, - style_class: getDsStyle() + style_class: getStyle() }); tsLabel = new St.Label({ - text: 'Loading...', + text: '---', y_align: Clutter.ActorAlign.CENTER, - style_class: getTsStyle() + style_class: getStyle() }); tdLabel = new St.Label({ - text: 'Loading...', + text: '---', y_align: Clutter.ActorAlign.CENTER, - style_class: getTdStyle() + style_class: getStyle() }); } @@ -323,7 +310,10 @@ function parseStat() { enable(); } } catch (e) { - //ioSpeed.set_text(e.message); + usLabel.set_text(e.message); + dsLabel.set_text(e.message); + tsLabel.set_text(e.message); + tdLabel.set_text(e.message); } return true; diff --git a/stylesheet.css b/stylesheet.css index ad3e043..493a3d9 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -1,44 +1,7 @@ /* For all elements */ .forall{ text-align: left; - width: 6em; -} - -.leftlign{ - text-align: left; -} - -.iwidth{ -/*Increase width if total data usage is visible with speed*/ - min-width: 11.3em; -} - -/* For elements with seperate upload and download speed */ -.upanddown { - min-width: 9.6em; - /* To override previous min-width */ -} - -.sumall{/* Will contain styling for sum of speeds */} - -.us { /* Up Speed */ - text-align: left; - width: 6.5em; -} - -.ds { /* Down Speed */ - text-align: left; - width: 6.5em; -} - -.ts { /* Total Speed */ - text-align: left; - width: 6em; -} - -.td { /* Total Download */ - text-align: left; - width: 6em; + min-width: 6em; } /* Font change on middle click*/ From 9d4035bdce97205559e4f766b76c5c67ec92f892 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 19 Nov 2020 11:35:22 +0530 Subject: [PATCH 198/344] Bump version to 20 --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index e056ece..7851c97 100644 --- a/metadata.json +++ b/metadata.json @@ -26,5 +26,5 @@ ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 19 + "version": 20 } From 61a6beac5206c088a329017779e059f3b11920a0 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 19 Nov 2020 11:43:55 +0530 Subject: [PATCH 199/344] Fix typo --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 2b21e21..71a3b2c 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ ***Tested on GNOME 3.36 and 3.38*** #### Whats new in v11 and above: -- [x] Add Preference Dialog with lots of default customizations. +- [x] Add Preference Dialog with lots of default customization. - [x] Add Lock Mouse Actions button in Preferences to disable any mouse click behaviour. - [x] Add Position menu(with Advanced option) to pinpoint where to place the indicator on the Panel. - [x] Add Refresh time field by which you can change refresh time value between 1.0 sec to 10.0 sec. @@ -28,22 +28,22 @@ - [x] Adjustable Refresh time - [x] Supports GNOME SHELL 3.38 and previous versions compatible - [x] Changes width accordingly / dynamic width -- [x] Centred and more cleaner ui +- [x] Centered and more cleaner ui - [x] Changed Kbps to kbp/s - [x] New sigma icon that respects vertical alignment(old: ∑ , new: Σ) - [x] New Speed up and down icons for mode 3 & 4. (old: ↓ and ↑ , new: 🡳 and 🡱) - [x] Added space b/w speed and their units - [x] Human readable stylesheet // used min-width and removed repetitive codes -- [x] Used ES6 classes for less code and more efficent javascript +- [x] Used ES6 classes for less code and more efficeint javascript - [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. - [x] Add Preference Menu to customize the whole extension as you need #### Changelog Till v10 : - [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode -- [x] Easy Vertical Aligment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuosly for four times to enable/disable vertical align or simply go to prefrences tab for this extension. +- [x] Easy Vertical Alignment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuously for four times to enable/disable vertical align or simply go to preferences tab for this extension. *(If you have vertical align enabled then in mode 5 you will see " -v" written after total net speed)*, ***Tip : You can also change font size in vertical alignment to your liking by middle mouse click on the speed*** -- [x] Easy Switch to Old Icons from simplenetspeed extension, go to prefrences tab for this extension to enable/disable old icons. +- [x] Easy Switch to Old Icons from simplenetspeed extension, go to preferences tab for this extension to enable/disable old icons. *(If you have old icons enabled then in mode 5 you will see " -o" written after total net speed)* if you face any **issues** you can **[open pull request](https://github.com/prateekmedia/netspeedsimplified/pulls)** and can type your issue with images or error codes @@ -58,10 +58,10 @@ if you face any **issues** you can **[open pull request](https://github.com/prat 1. Up & down speed in Bytes per second 1. Total of downloaded in Bytes (Right click to reset counter) -> **Right click to toggle total data usage visiblity, Right click on total data usage mode in reset counter**, +> **Right click to toggle total data usage visibility, Right click on total data usage mode in reset counter**,

=====> To this

-> **Right click continuosly for 4 times in any mode to toggle vertical alignment, You will se "-v" written in 5th mode after total download data if this is enabled** +> **Right click continuously for 4 times in any mode to toggle vertical alignment, You will see "-v" written in 5th mode after total download data if this is enabled** > **Middle click to change font size** @@ -88,7 +88,7 @@ if you face any **issues** you can **[open pull request](https://github.com/prat *Or* - First delete netspeedsimplified@prateekmedia.extension diretory by typing + First delete netspeedsimplified@prateekmedia.extension directory by typing `rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` & then You can manually download the latest zip and paste its content in the folder From d26aa5090a2bb42401e4e2ca2e1c52a82a4b4c16 Mon Sep 17 00:00:00 2001 From: Mohith Reddy Date: Fri, 20 Nov 2020 09:31:36 +0530 Subject: [PATCH 200/344] Better way to center the components by setting y_align of nsActor (#5) --- extension.js | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/extension.js b/extension.js index f8a822c..5035ef8 100644 --- a/extension.js +++ b/extension.js @@ -160,15 +160,12 @@ function initNs() { nsLayout.insert_column(2); nsActor = new Clutter.Actor({ - layout_manager: nsLayout + layout_manager: nsLayout, + y_align: Clutter.ActorAlign.CENTER }) //Attach the components to the grid. if (crStng.mode == 0 || crStng.mode == 1) { - if (!(crStng.isVertical) || !(crStng.showTotalDwnld)) { - nsActor.set_margin_top(6); - } - nsLayout.attach(tsLabel, 1, 1, 1, 1); if (crStng.showTotalDwnld) { @@ -176,10 +173,6 @@ function initNs() { } } else if (crStng.mode == 2 || crStng.mode == 3) { - if (!(crStng.isVertical)) { - nsActor.set_margin_top(6); - } - if (crStng.revIndicator) { nsLayout.attach(usLabel, 1, 1, 1, 1); (crStng.isVertical) ? nsLayout.attach(dsLabel, 1, 2, 1, 1) : nsLayout.attach(dsLabel, 2, 1, 1, 1); @@ -194,7 +187,6 @@ function initNs() { } } else { - nsActor.set_margin_top(6) nsLayout.attach(tdLabel, 1, 1, 1, 1); } From 51c493a59712275412756ed6799aa799f299e86c Mon Sep 17 00:00:00 2001 From: Mohith Reddy Date: Sat, 21 Nov 2020 02:06:32 +0530 Subject: [PATCH 201/344] Adopted GNU Make build system --- Makefile | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..aa50a89 --- /dev/null +++ b/Makefile @@ -0,0 +1,35 @@ +EXT_HOME=~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension + +all: install + +install: convenience.js extension.js metadata.json prefs.js stylesheet.css schemas/gschemas.compiled + #Create directory structure + mkdir -p ${EXT_HOME} + mkdir -p ${EXT_HOME}/schemas + + #Copy compulsory files + cp convenience.js extension.js metadata.json prefs.js stylesheet.css ${EXT_HOME} + cp schemas/gschemas.compiled ${EXT_HOME}/schemas + + #Optional files + cp LICENSE ${EXT_HOME} 2>/dev/null || true + cp README.md ${EXT_HOME} 2>/dev/null || true + cp screenshoot.png ${EXT_HOME} 2>/dev/null || true + cp schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml ${EXT_HOME}/schemas 2>/dev/null || true + + #Reloading shell; Sending SIGHUP signal to gnome-shell (equivalent to alt + f2 ; r ; enter) + busctl --user call org.gnome.Shell /org/gnome/Shell org.gnome.Shell Eval s 'Meta.restart("Restarting…")' + + #Enabling Gnome extension. + gnome-extensions enable netspeedsimplified@prateekmedia.extension + +remove: + rm -rf ${EXT_HOME} + + #Reloading shell; Sending SIGHUP signal to gnome-shell (equivalent to alt + f2 ; r ; enter) + busctl --user call org.gnome.Shell /org/gnome/Shell org.gnome.Shell Eval s 'Meta.restart("Restarting…")' + +remove-no-reboot: + rm -rf ${EXT_HOME} + +reinstall: remove-no-reboot install From 158be6bf686cb84d54b8b7c544738fcc2e1e8efd Mon Sep 17 00:00:00 2001 From: Mohith Reddy Date: Sat, 21 Nov 2020 03:18:20 +0530 Subject: [PATCH 202/344] Added a Quick Install method and Updated Readme.md --- README.md | 66 ++++++++++++++++++++++++++++++++---------------- quick-install.sh | 29 +++++++++++++++++++++ 2 files changed, 73 insertions(+), 22 deletions(-) create mode 100644 quick-install.sh diff --git a/README.md b/README.md index 71a3b2c..469e97a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@

NSS Logo

Net speed Simplified

-
Gnome extension to show network speed
+
Gnome extension to show network speed
[Get it on GNOME Extensions](https://extensions.gnome.org/extension/3724/net-speed-simplified/) or [Install Using Terminal](#installing-the-extension-using-terminal) @@ -8,14 +8,14 @@ > Forked from : [biji.gnome/simplenetspeed](https://github.com/biji/simplenetspeed) -

Screenshot +

Screenshot *Screenshots* - + *Above Screenshot is with Adwaita Dark theme*

**Current Version** : ***20*** - + ***Tested on GNOME 3.36 and 3.38*** #### Whats new in v11 and above: @@ -24,7 +24,7 @@ - [x] Add Position menu(with Advanced option) to pinpoint where to place the indicator on the Panel. - [x] Add Refresh time field by which you can change refresh time value between 1.0 sec to 10.0 sec. -#### Feature Highlights : +#### Feature Highlights : - [x] Adjustable Refresh time - [x] Supports GNOME SHELL 3.38 and previous versions compatible - [x] Changes width accordingly / dynamic width @@ -35,65 +35,87 @@ - [x] Added space b/w speed and their units - [x] Human readable stylesheet // used min-width and removed repetitive codes - [x] Used ES6 classes for less code and more efficeint javascript -- [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. +- [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. - [x] Add Preference Menu to customize the whole extension as you need -#### Changelog Till v10 : +#### Changelog Till v10 : - [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode - [x] Easy Vertical Alignment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuously for four times to enable/disable vertical align or simply go to preferences tab for this extension. *(If you have vertical align enabled then in mode 5 you will see " -v" written after total net speed)*, ***Tip : You can also change font size in vertical alignment to your liking by middle mouse click on the speed*** - [x] Easy Switch to Old Icons from simplenetspeed extension, go to preferences tab for this extension to enable/disable old icons. -*(If you have old icons enabled then in mode 5 you will see " -o" written after total net speed)* +*(If you have old icons enabled then in mode 5 you will see " -o" written after total net speed)* if you face any **issues** you can **[open pull request](https://github.com/prateekmedia/netspeedsimplified/pulls)** and can type your issue with images or error codes > **Left click to change modes**, - + *Modes available:* -1. Total net speed in bits per second +1. Total net speed in bits per second 1. Total net speed in Bytes per second 1. Up & down speed in bits per second 1. Up & down speed in Bytes per second 1. Total of downloaded in Bytes (Right click to reset counter) - + > **Right click to toggle total data usage visibility, Right click on total data usage mode in reset counter**,

=====> To this

- + > **Right click continuously for 4 times in any mode to toggle vertical alignment, You will see "-v" written in 5th mode after total download data if this is enabled** - + > **Middle click to change font size**

Installing the extension using terminal:

* Please Star this repository and mark it as Watch if you want to know about latest updates. - ***to install( reload required )( Requirements : git )*** - ```mkdir ~/.local/share/gnome-shell/extensions/; git clone --single-branch --branch main https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - + ```mkdir ~/.local/share/gnome-shell/extensions/; git clone --single-branch --branch main https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` + *Or* - + You can manually download the zip and paste its content in the folder `~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` [Create it, if its not there] - + - ***to load/reload extension*** Press ```Alt+F2``` then type ```r``` and ```hit enter```. - + - ***to enable/disable/remove*** You can do that manually using extensions app or [website](https://extensions.gnome.org/local) or Using Gnome tweaks tool's extension tab - + - ***to reinstall or update( reload required )( Requirements : git )*** ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension; git clone --single-branch --branch main https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - + *Or* - + First delete netspeedsimplified@prateekmedia.extension directory by typing `rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` & then You can manually download the latest zip and paste its content in the folder `~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` [Create it, if its not there] - + - ***to remove( using Terminal )( reload required )*** ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` + +# Modifcation Required + +## Quick install +The extension can be quicky installed as following: + + $ /bin/bash -c "$(curl -sL https://git.io/Jk28b)" + + +## Installing using Make +The Extension can be managed using Make build system as follows + +* Getting the sources from repository + + $ git clone https://github.com/prateekmedia/netspeedsimplified.git + +* Running make (install) + + $ make install + +Likewise extension can be removed (```$ make remove```) or reinstalled (```$ make reinstall```) + diff --git a/quick-install.sh b/quick-install.sh new file mode 100644 index 0000000..81fb3c0 --- /dev/null +++ b/quick-install.sh @@ -0,0 +1,29 @@ +#!/bin/bash +set -e +set -x + +EXT_HOME=~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension +PROJECT_HOME=https://raw.githubusercontent.com/prateekmedia/netspeedsimplified/main + +#Create a directory structure +mkdir -p ${EXT_HOME} +mkdir -p ${EXT_HOME}/schemas + +#Copy required files +curl ${PROJECT_HOME}/convenience.js -o ${EXT_HOME}/convenience.js +curl ${PROJECT_HOME}/extension.js -o ${EXT_HOME}/extension.js +curl ${PROJECT_HOME}/metadata.json -o ${EXT_HOME}/metadata.json +curl ${PROJECT_HOME}/prefs.js -o ${EXT_HOME}/prefs.js +curl ${PROJECT_HOME}/stylesheet.css -o ${EXT_HOME}/stylesheet.css +curl ${PROJECT_HOME}/stylesheet.css -o ${EXT_HOME}/stylesheet.css +curl ${PROJECT_HOME}/schemas/gschemas.compiled -o ${EXT_HOME}/schemas/gschemas.compiled + +#Optional files +curl ${PROJECT_HOME}/LICENSE -o ${EXT_HOME}/LICENSE +curl ${PROJECT_HOME}/README.md -o ${EXT_HOME}/README.md + +#Reloading shell; Sending SIGHUP signal to gnome-shell (equivalent to alt + f2 ; r ; enter) +busctl --user call org.gnome.Shell /org/gnome/Shell org.gnome.Shell Eval s 'Meta.restart("Restarting…")' + +#Enabling Gnome extension. +gnome-extensions enable netspeedsimplified@prateekmedia.extension From 462f6dd1675756017d0db4f85fb2852a929b7f12 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 21 Nov 2020 10:02:27 +0530 Subject: [PATCH 203/344] Update installation method , thanks to m0hithreddy --- README.md | 38 ++++---------------------------------- 1 file changed, 4 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index 469e97a..e080f9c 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@

Net speed Simplified

Gnome extension to show network speed
-[Get it on GNOME Extensions](https://extensions.gnome.org/extension/3724/net-speed-simplified/) or [Install Using Terminal](#installing-the-extension-using-terminal) +[Get it on GNOME Extensions](https://extensions.gnome.org/extension/3724/net-speed-simplified/) or [Install Manually](#installing-manually) > Special Thanks to : [m0hithreddy.github](https://github.com/m0hithreddy) for completely revamping the whole codebase, @@ -65,41 +65,10 @@ if you face any **issues** you can **[open pull request](https://github.com/prat > **Middle click to change font size** -

Installing the extension using terminal:

+

Installing Manually:

* Please Star this repository and mark it as Watch if you want to know about latest updates. - - ***to install( reload required )( Requirements : git )*** - ```mkdir ~/.local/share/gnome-shell/extensions/; git clone --single-branch --branch main https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - - *Or* - - You can manually download the zip and paste its content in the folder - `~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` - [Create it, if its not there] - - - ***to load/reload extension*** - Press ```Alt+F2``` then type ```r``` and ```hit enter```. - - - ***to enable/disable/remove*** - You can do that manually using extensions app or [website](https://extensions.gnome.org/local) or Using Gnome tweaks tool's extension tab - - - ***to reinstall or update( reload required )( Requirements : git )*** - ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension; git clone --single-branch --branch main https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - - *Or* - - First delete netspeedsimplified@prateekmedia.extension directory by typing - `rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` - & then - You can manually download the latest zip and paste its content in the folder - `~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` - [Create it, if its not there] - - - ***to remove( using Terminal )( reload required )*** - ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - -# Modifcation Required - + ## Quick install The extension can be quicky installed as following: @@ -119,3 +88,4 @@ The Extension can be managed using Make build system as follows Likewise extension can be removed (```$ make remove```) or reinstalled (```$ make reinstall```) +You can manage the extension using extensions app or [website](https://extensions.gnome.org/local) or Using Gnome tweaks tool's extension tab From 218fcd214d3ef76b298ac4948b10dc7eace2a002 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 21 Nov 2020 14:23:26 +0530 Subject: [PATCH 204/344] Increase Social Distancing b/w indicators --- stylesheet.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stylesheet.css b/stylesheet.css index 493a3d9..6e1160c 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -1,7 +1,7 @@ /* For all elements */ .forall{ text-align: left; - min-width: 6em; + min-width: 6.8em; } /* Font change on middle click*/ From 2984ef9612620947f5a1a4b86140e4b07f9f4580 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 21 Nov 2020 14:26:11 +0530 Subject: [PATCH 205/344] Final Distance --- stylesheet.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stylesheet.css b/stylesheet.css index 6e1160c..36048a6 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -1,7 +1,7 @@ /* For all elements */ .forall{ text-align: left; - min-width: 6.8em; + min-width: 6.5em; } /* Font change on middle click*/ From 7f53e8efdf004882bfb5167729cd21485b26ce4d Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 21 Nov 2020 14:33:48 +0530 Subject: [PATCH 206/344] Add margin so that indicators doesn't overlap --- stylesheet.css | 1 + 1 file changed, 1 insertion(+) diff --git a/stylesheet.css b/stylesheet.css index 36048a6..360306c 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -2,6 +2,7 @@ .forall{ text-align: left; min-width: 6.5em; + margin-left: 10px; } /* Font change on middle click*/ From 6c4e33aa7ed7938bf83207d06ee34257794d7d85 Mon Sep 17 00:00:00 2001 From: Mohith Reddy Date: Sun, 22 Nov 2020 22:14:02 +0530 Subject: [PATCH 207/344] Adopted GNU Make build system --- Makefile | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..aa50a89 --- /dev/null +++ b/Makefile @@ -0,0 +1,35 @@ +EXT_HOME=~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension + +all: install + +install: convenience.js extension.js metadata.json prefs.js stylesheet.css schemas/gschemas.compiled + #Create directory structure + mkdir -p ${EXT_HOME} + mkdir -p ${EXT_HOME}/schemas + + #Copy compulsory files + cp convenience.js extension.js metadata.json prefs.js stylesheet.css ${EXT_HOME} + cp schemas/gschemas.compiled ${EXT_HOME}/schemas + + #Optional files + cp LICENSE ${EXT_HOME} 2>/dev/null || true + cp README.md ${EXT_HOME} 2>/dev/null || true + cp screenshoot.png ${EXT_HOME} 2>/dev/null || true + cp schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml ${EXT_HOME}/schemas 2>/dev/null || true + + #Reloading shell; Sending SIGHUP signal to gnome-shell (equivalent to alt + f2 ; r ; enter) + busctl --user call org.gnome.Shell /org/gnome/Shell org.gnome.Shell Eval s 'Meta.restart("Restarting…")' + + #Enabling Gnome extension. + gnome-extensions enable netspeedsimplified@prateekmedia.extension + +remove: + rm -rf ${EXT_HOME} + + #Reloading shell; Sending SIGHUP signal to gnome-shell (equivalent to alt + f2 ; r ; enter) + busctl --user call org.gnome.Shell /org/gnome/Shell org.gnome.Shell Eval s 'Meta.restart("Restarting…")' + +remove-no-reboot: + rm -rf ${EXT_HOME} + +reinstall: remove-no-reboot install From 2be518a86885e21cb6296ef31e0bd7ed42aa239d Mon Sep 17 00:00:00 2001 From: Mohith Reddy Date: Sun, 22 Nov 2020 22:17:07 +0530 Subject: [PATCH 208/344] Added a Quick Install method and Updated Readme.md --- README.md | 66 ++++++++++++++++++++++++++++++++---------------- quick-install.sh | 29 +++++++++++++++++++++ 2 files changed, 73 insertions(+), 22 deletions(-) create mode 100644 quick-install.sh diff --git a/README.md b/README.md index 71a3b2c..469e97a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@

NSS Logo

Net speed Simplified

-
Gnome extension to show network speed
+
Gnome extension to show network speed
[Get it on GNOME Extensions](https://extensions.gnome.org/extension/3724/net-speed-simplified/) or [Install Using Terminal](#installing-the-extension-using-terminal) @@ -8,14 +8,14 @@ > Forked from : [biji.gnome/simplenetspeed](https://github.com/biji/simplenetspeed) -

Screenshot +

Screenshot *Screenshots* - + *Above Screenshot is with Adwaita Dark theme*

**Current Version** : ***20*** - + ***Tested on GNOME 3.36 and 3.38*** #### Whats new in v11 and above: @@ -24,7 +24,7 @@ - [x] Add Position menu(with Advanced option) to pinpoint where to place the indicator on the Panel. - [x] Add Refresh time field by which you can change refresh time value between 1.0 sec to 10.0 sec. -#### Feature Highlights : +#### Feature Highlights : - [x] Adjustable Refresh time - [x] Supports GNOME SHELL 3.38 and previous versions compatible - [x] Changes width accordingly / dynamic width @@ -35,65 +35,87 @@ - [x] Added space b/w speed and their units - [x] Human readable stylesheet // used min-width and removed repetitive codes - [x] Used ES6 classes for less code and more efficeint javascript -- [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. +- [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. - [x] Add Preference Menu to customize the whole extension as you need -#### Changelog Till v10 : +#### Changelog Till v10 : - [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode - [x] Easy Vertical Alignment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuously for four times to enable/disable vertical align or simply go to preferences tab for this extension. *(If you have vertical align enabled then in mode 5 you will see " -v" written after total net speed)*, ***Tip : You can also change font size in vertical alignment to your liking by middle mouse click on the speed*** - [x] Easy Switch to Old Icons from simplenetspeed extension, go to preferences tab for this extension to enable/disable old icons. -*(If you have old icons enabled then in mode 5 you will see " -o" written after total net speed)* +*(If you have old icons enabled then in mode 5 you will see " -o" written after total net speed)* if you face any **issues** you can **[open pull request](https://github.com/prateekmedia/netspeedsimplified/pulls)** and can type your issue with images or error codes > **Left click to change modes**, - + *Modes available:* -1. Total net speed in bits per second +1. Total net speed in bits per second 1. Total net speed in Bytes per second 1. Up & down speed in bits per second 1. Up & down speed in Bytes per second 1. Total of downloaded in Bytes (Right click to reset counter) - + > **Right click to toggle total data usage visibility, Right click on total data usage mode in reset counter**,

=====> To this

- + > **Right click continuously for 4 times in any mode to toggle vertical alignment, You will see "-v" written in 5th mode after total download data if this is enabled** - + > **Middle click to change font size**

Installing the extension using terminal:

* Please Star this repository and mark it as Watch if you want to know about latest updates. - ***to install( reload required )( Requirements : git )*** - ```mkdir ~/.local/share/gnome-shell/extensions/; git clone --single-branch --branch main https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - + ```mkdir ~/.local/share/gnome-shell/extensions/; git clone --single-branch --branch main https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` + *Or* - + You can manually download the zip and paste its content in the folder `~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` [Create it, if its not there] - + - ***to load/reload extension*** Press ```Alt+F2``` then type ```r``` and ```hit enter```. - + - ***to enable/disable/remove*** You can do that manually using extensions app or [website](https://extensions.gnome.org/local) or Using Gnome tweaks tool's extension tab - + - ***to reinstall or update( reload required )( Requirements : git )*** ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension; git clone --single-branch --branch main https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - + *Or* - + First delete netspeedsimplified@prateekmedia.extension directory by typing `rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` & then You can manually download the latest zip and paste its content in the folder `~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` [Create it, if its not there] - + - ***to remove( using Terminal )( reload required )*** ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` + +# Modifcation Required + +## Quick install +The extension can be quicky installed as following: + + $ /bin/bash -c "$(curl -sL https://git.io/Jk28b)" + + +## Installing using Make +The Extension can be managed using Make build system as follows + +* Getting the sources from repository + + $ git clone https://github.com/prateekmedia/netspeedsimplified.git + +* Running make (install) + + $ make install + +Likewise extension can be removed (```$ make remove```) or reinstalled (```$ make reinstall```) + diff --git a/quick-install.sh b/quick-install.sh new file mode 100644 index 0000000..81fb3c0 --- /dev/null +++ b/quick-install.sh @@ -0,0 +1,29 @@ +#!/bin/bash +set -e +set -x + +EXT_HOME=~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension +PROJECT_HOME=https://raw.githubusercontent.com/prateekmedia/netspeedsimplified/main + +#Create a directory structure +mkdir -p ${EXT_HOME} +mkdir -p ${EXT_HOME}/schemas + +#Copy required files +curl ${PROJECT_HOME}/convenience.js -o ${EXT_HOME}/convenience.js +curl ${PROJECT_HOME}/extension.js -o ${EXT_HOME}/extension.js +curl ${PROJECT_HOME}/metadata.json -o ${EXT_HOME}/metadata.json +curl ${PROJECT_HOME}/prefs.js -o ${EXT_HOME}/prefs.js +curl ${PROJECT_HOME}/stylesheet.css -o ${EXT_HOME}/stylesheet.css +curl ${PROJECT_HOME}/stylesheet.css -o ${EXT_HOME}/stylesheet.css +curl ${PROJECT_HOME}/schemas/gschemas.compiled -o ${EXT_HOME}/schemas/gschemas.compiled + +#Optional files +curl ${PROJECT_HOME}/LICENSE -o ${EXT_HOME}/LICENSE +curl ${PROJECT_HOME}/README.md -o ${EXT_HOME}/README.md + +#Reloading shell; Sending SIGHUP signal to gnome-shell (equivalent to alt + f2 ; r ; enter) +busctl --user call org.gnome.Shell /org/gnome/Shell org.gnome.Shell Eval s 'Meta.restart("Restarting…")' + +#Enabling Gnome extension. +gnome-extensions enable netspeedsimplified@prateekmedia.extension From f3448f61e4c89368f732d46638abccd4745b3ae4 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 21 Nov 2020 10:02:27 +0530 Subject: [PATCH 209/344] Update installation method , thanks to m0hithreddy --- README.md | 38 ++++---------------------------------- 1 file changed, 4 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index 469e97a..e080f9c 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@

Net speed Simplified

Gnome extension to show network speed
-[Get it on GNOME Extensions](https://extensions.gnome.org/extension/3724/net-speed-simplified/) or [Install Using Terminal](#installing-the-extension-using-terminal) +[Get it on GNOME Extensions](https://extensions.gnome.org/extension/3724/net-speed-simplified/) or [Install Manually](#installing-manually) > Special Thanks to : [m0hithreddy.github](https://github.com/m0hithreddy) for completely revamping the whole codebase, @@ -65,41 +65,10 @@ if you face any **issues** you can **[open pull request](https://github.com/prat > **Middle click to change font size** -

Installing the extension using terminal:

+

Installing Manually:

* Please Star this repository and mark it as Watch if you want to know about latest updates. - - ***to install( reload required )( Requirements : git )*** - ```mkdir ~/.local/share/gnome-shell/extensions/; git clone --single-branch --branch main https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - - *Or* - - You can manually download the zip and paste its content in the folder - `~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` - [Create it, if its not there] - - - ***to load/reload extension*** - Press ```Alt+F2``` then type ```r``` and ```hit enter```. - - - ***to enable/disable/remove*** - You can do that manually using extensions app or [website](https://extensions.gnome.org/local) or Using Gnome tweaks tool's extension tab - - - ***to reinstall or update( reload required )( Requirements : git )*** - ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension; git clone --single-branch --branch main https://github.com/prateekmedia/netspeedsimplified ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - - *Or* - - First delete netspeedsimplified@prateekmedia.extension directory by typing - `rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` - & then - You can manually download the latest zip and paste its content in the folder - `~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension` - [Create it, if its not there] - - - ***to remove( using Terminal )( reload required )*** - ```rm -rf ~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension``` - -# Modifcation Required - + ## Quick install The extension can be quicky installed as following: @@ -119,3 +88,4 @@ The Extension can be managed using Make build system as follows Likewise extension can be removed (```$ make remove```) or reinstalled (```$ make reinstall```) +You can manage the extension using extensions app or [website](https://extensions.gnome.org/local) or Using Gnome tweaks tool's extension tab From 149b53b0189df6e3496574d88de916ebb5723ec3 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 21 Nov 2020 14:23:26 +0530 Subject: [PATCH 210/344] Increase Social Distancing b/w indicators --- stylesheet.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stylesheet.css b/stylesheet.css index 493a3d9..6e1160c 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -1,7 +1,7 @@ /* For all elements */ .forall{ text-align: left; - min-width: 6em; + min-width: 6.8em; } /* Font change on middle click*/ From a8bca50d56d8029de5b3c7c4ddeb488a5b623957 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 21 Nov 2020 14:26:11 +0530 Subject: [PATCH 211/344] Final Distance --- stylesheet.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stylesheet.css b/stylesheet.css index 6e1160c..36048a6 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -1,7 +1,7 @@ /* For all elements */ .forall{ text-align: left; - min-width: 6.8em; + min-width: 6.5em; } /* Font change on middle click*/ From a06083a0454f073b8035a5302ecc1fbb51aee7a7 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 21 Nov 2020 14:33:48 +0530 Subject: [PATCH 212/344] Add margin so that indicators doesn't overlap --- stylesheet.css | 1 + 1 file changed, 1 insertion(+) diff --git a/stylesheet.css b/stylesheet.css index 36048a6..360306c 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -2,6 +2,7 @@ .forall{ text-align: left; min-width: 6.5em; + margin-left: 10px; } /* Font change on middle click*/ From 98b8da4b0af192841fdbd863360e3bc65102bb16 Mon Sep 17 00:00:00 2001 From: Mohith Reddy Date: Sun, 22 Nov 2020 22:06:09 +0530 Subject: [PATCH 213/344] Feature: Set colors for [Upload, Download, Total] Speed and Total Downloaded --- extension.js | 22 ++++++-- prefs.js | 50 +++++++++++++++++- schemas/gschemas.compiled | Bin 984 -> 1259 bytes ....extensions.netspeedsimplified.gschema.xml | 12 +++++ 4 files changed, 78 insertions(+), 6 deletions(-) diff --git a/extension.js b/extension.js index 5035ef8..fa825e3 100644 --- a/extension.js +++ b/extension.js @@ -41,7 +41,11 @@ function fetchSettings() { revIndicator: settings.get_boolean('reverseindicators'), lckMuseAct: settings.get_boolean('lockmouseactions'), nsPos: settings.get_int('wpos'), - nsPosAdv: settings.get_int('wposext') + nsPosAdv: settings.get_int('wposext'), + usColor: settings.get_string('uscolor'), + dsColor: settings.get_string('dscolor'), + tsColor: settings.get_string('tscolor'), + tdColor: settings.get_string('tdcolor') }; initNs(); @@ -58,6 +62,10 @@ function pushSettings() { settings.set_boolean('lockmouseactions', crStng.lckMuseAct); settings.set_int('wpos', crStng.nsPos); settings.set_int('wposext', crStng.nsPosAdv); + settings.set_string('uscolor', crStng.usColor); + settings.set_string('dscolor', crStng.dsColor); + settings.set_string('tscolor', crStng.tsColor); + settings.set_string('tdcolor', crStng.tdColor); initNs(); } @@ -112,25 +120,29 @@ function initNsLabels() { usLabel = new St.Label({ text: '---', y_align: Clutter.ActorAlign.CENTER, - style_class: getStyle() + style_class: getStyle(), + style: "color: " + crStng.usColor }); dsLabel = new St.Label({ text: '---', y_align: Clutter.ActorAlign.CENTER, - style_class: getStyle() + style_class: getStyle(), + style: "color: " + crStng.dsColor }); tsLabel = new St.Label({ text: '---', y_align: Clutter.ActorAlign.CENTER, - style_class: getStyle() + style_class: getStyle(), + style: "color: " + crStng.tsColor }); tdLabel = new St.Label({ text: '---', y_align: Clutter.ActorAlign.CENTER, - style_class: getStyle() + style_class: getStyle(), + style: "color: " + crStng.tdColor }); } diff --git a/prefs.js b/prefs.js index 56b925f..521f49e 100644 --- a/prefs.js +++ b/prefs.js @@ -1,4 +1,5 @@ const Gtk = imports.gi.Gtk; +const Gdk = imports.gi.Gdk; const Extension = imports.misc.extensionUtils.getCurrentExtension(); const Convenience = Extension.imports.convenience; @@ -103,12 +104,41 @@ Prefs.prototype = whichHbox.pack_start(whichLbl, true, true, 0); whichHbox.add(whichVlue); + vbox.add(whichHbox); + vbox.add(new Gtk.Separator({visible : true})); + } + + function vBoxAddColorButton(whichHbox, getLbl, getColor, getToolTip = "") { + //Deterime whether the option value is changed from default value + boolComp = (thset.get_string(getColor) == thset.get_default_value(getColor).unpack()); + getLbl = boolComp ? getLbl : `${getLbl}` + tootext = boolComp ? "" : "The Value is Changed" + + //Create the option name + whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getToolTip}); + + //Create RGBA + rgba = new Gdk.RGBA(); + rgba.parse(thset.get_string(getColor)); + + //Create ColorButton + colorButton = new Gtk.ColorButton({tooltip_text: tootext}); + colorButton.set_rgba(rgba); + colorButton.connect('notify::color', (widget) => { //On the event of modification + rgba = widget.get_rgba(); + thset.set_string(getColor, rgba.to_string()); + thset.set_boolean('restartextension', true); + }); + + whichHbox.pack_start(whichLbl, true, true, 0); + whichHbox.add(colorButton); + vbox.add(whichHbox); vbox.add(new Gtk.Separator({visible : true})); } let frame = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, border_width: 10}); - let label = new Gtk.Label({ label: "Default Settings", use_markup: true, xalign:0}); + let label = new Gtk.Label({ label: "General Settings", use_markup: true, xalign:0}); let vbox = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, margin_left: 20}); let mfooter = new Gtk.Label({ label: "Pro Tip : Hover over any Label To know more about it",use_markup: true, margin_top: 20}); @@ -152,6 +182,24 @@ Prefs.prototype = let hboxLckMuseAct = newGtkBox(); vBoxAddTgglBtn(hboxLckMuseAct, "Lock Mouse Actions", "lockmouseactions", "Enabling it will Lock Mouse Actions"); + //Colors + + //Upload Speed Color + let usColorButton = newGtkBox(); + vBoxAddColorButton(usColorButton, "Upload Speed Color", "uscolor", "Select the upload speed color"); + + //Download Speed Color + let dsColorButton = newGtkBox(); + vBoxAddColorButton(dsColorButton, "Download Speed Color", "dscolor", "Select the download speed color"); + + //Total Speed Color + let tsColorButton = newGtkBox(); + vBoxAddColorButton(tsColorButton, "Total Speed Color", "tscolor", "Select the total speed color"); + + //Total Download Color + let tdColorButton = newGtkBox(); + vBoxAddColorButton(tdColorButton, "Total Download Color", "tdcolor", "Select the total download color"); + frame.add(label); frame.add(vbox); frame.add(mfooter); diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index 95ceb9e8ce68a55dda14801d609491f916ae43b6..d680a89c1f0a43f2f2dd437cdc824aa8eecb0cca 100644 GIT binary patch literal 1259 zcmaJ>J!lj`7#%fd&buV$3PG?DwAh974uu0DNCXjsrmzYkY4&#K?w0KBoI8^dg71PQ2xXd&1bL^LK2*iF_wC zqTP0aPbJ#g+%dta9YU<4C4J*@%q09PKPT@njC!9K6W75F4BP}(QMFJFRb3WzO$I?h z&KMbLUxm65N~0T6dfKly0>9!*5AkSLF5&K%H4uHkR-hlq09jxF7zBoZ;Wc26NBPgU z7{gjJqA4zeuL7=px<#Kl3;zcA8SwG>@*I8YLHMu0Ux0K@|DaDj48H~b1$-(!d{3Xc zAAWj^5PN_(BXbw%Q}@BQz(;_4L-h~zsTqF~JO!M%eLt>;n*I#u+` z7>Ja`d!xzOyVPo0Lp1pWpXRjmfHtWc zkGMd&Q*|}1rQ;eNz9f~vyvB1?pyFXswd`02N~Qen-eFZ5q5-YUglm zf*U7<_=Q&X%@;9C@bCXvdde{BbK;VC#2+Lc0_nWx^-`Tk&-7&+dveXn)F_=AFO}A0 zQbtB4S**HBM$8k!nJBr)=NMx^qrwqz6F7PRZRlgbjjg@+WY(S%12GLg1$=(Jw@IIR z0{#s63h?2=<{kRfzYx&?n1 z{1td{_RC}X)NS}f@K50Kt0zTWYSwLGfv16!FBcv%o|^G9;Pb$<;1JKximJ&?Pvj2IO^uIi_X4PNj2-?Y&}L9^nJGEGjqa;u)k4+{Vm=E W-$D!EG4d^R0KNe>z7Os>-^Xw4ez+?D diff --git a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml index ec85504..b50bc16 100644 --- a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml +++ b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml @@ -40,5 +40,17 @@ false + + "rgba(255, 255, 255, 1)" + + + "rgba(255, 255, 255, 1)" + + + "rgba(255, 255, 255, 1)" + + + "rgba(255, 255, 255, 1)" + From d2349e28c7e958b0995082a8a98a21cc31b08689 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 24 Nov 2020 12:49:18 +0530 Subject: [PATCH 214/344] fix spacing issue in mode 1 and 2 --- extension.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extension.js b/extension.js index fa825e3..db91097 100644 --- a/extension.js +++ b/extension.js @@ -287,7 +287,7 @@ function parseStat() { if (lastCountUp === 0) lastCountUp = countUp; let speed = (count - lastCount) / crStng.refreshTime, speedUp = (countUp - lastCountUp) / crStng.refreshTime, - dot = (speed > lastSpeed) ? "⇅" : ""; + dot = (speed > lastSpeed) ? "⇅" : " "; if (resetNextCount == true) { resetNextCount = false; From fed44e2f7087f08a92ddf1ec1e9efe800e776c7b Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 24 Nov 2020 12:57:19 +0530 Subject: [PATCH 215/344] Update README.md --- README.md | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index e080f9c..fe1f706 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ [Get it on GNOME Extensions](https://extensions.gnome.org/extension/3724/net-speed-simplified/) or [Install Manually](#installing-manually) -> Special Thanks to : [m0hithreddy.github](https://github.com/m0hithreddy) for completely revamping the whole codebase, +> Special Thanks to : [m0hithreddy.github](https://github.com/m0hithreddy) for completely revamping the whole codebase > Forked from : [biji.gnome/simplenetspeed](https://github.com/biji/simplenetspeed) @@ -14,7 +14,7 @@ *Above Screenshot is with Adwaita Dark theme*

-**Current Version** : ***20*** +**Current Version** : ***21*** ***Tested on GNOME 3.36 and 3.38*** @@ -23,16 +23,17 @@ - [x] Add Lock Mouse Actions button in Preferences to disable any mouse click behaviour. - [x] Add Position menu(with Advanced option) to pinpoint where to place the indicator on the Panel. - [x] Add Refresh time field by which you can change refresh time value between 1.0 sec to 10.0 sec. +- [x] Add Show Upload First button to show upload speed first #### Feature Highlights : - [x] Adjustable Refresh time -- [x] Supports GNOME SHELL 3.38 and previous versions compatible +- [x] Supports GNOME SHELL 3.38 and Backwards compatible - [x] Changes width accordingly / dynamic width -- [x] Centered and more cleaner ui +- [x] More cleaner ui - [x] Changed Kbps to kbp/s - [x] New sigma icon that respects vertical alignment(old: ∑ , new: Σ) - [x] New Speed up and down icons for mode 3 & 4. (old: ↓ and ↑ , new: 🡳 and 🡱) -- [x] Added space b/w speed and their units +- [x] Add space b/w speed and their units - [x] Human readable stylesheet // used min-width and removed repetitive codes - [x] Used ES6 classes for less code and more efficeint javascript - [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. @@ -46,7 +47,7 @@ - [x] Easy Switch to Old Icons from simplenetspeed extension, go to preferences tab for this extension to enable/disable old icons. *(If you have old icons enabled then in mode 5 you will see " -o" written after total net speed)* -if you face any **issues** you can **[open pull request](https://github.com/prateekmedia/netspeedsimplified/pulls)** and can type your issue with images or error codes +if you face any **issues** you can **[file an issue](https://github.com/prateekmedia/netspeedsimplified/issues)** with images or error codes > **Left click to change modes**, @@ -86,6 +87,10 @@ The Extension can be managed using Make build system as follows $ make install -Likewise extension can be removed (```$ make remove```) or reinstalled (```$ make reinstall```) +Likewise extension can be removed +```$ make remove``` +OR reinstalled +```$ make reinstall``` + You can manage the extension using extensions app or [website](https://extensions.gnome.org/local) or Using Gnome tweaks tool's extension tab From 35902808713a2900b49a879144f6520a6e90abfe Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 24 Nov 2020 13:03:35 +0530 Subject: [PATCH 216/344] Remove old information --- README.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index fe1f706..6271ad5 100644 --- a/README.md +++ b/README.md @@ -41,11 +41,9 @@ #### Changelog Till v10 : - [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode -- [x] Easy Vertical Alignment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuously for four times to enable/disable vertical align or simply go to preferences tab for this extension. -*(If you have vertical align enabled then in mode 5 you will see " -v" written after total net speed)*, +- [x] Easy Vertical Alignment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuously for four times to enable/disable vertical align or simply go to preferences tab for this extension, ***Tip : You can also change font size in vertical alignment to your liking by middle mouse click on the speed*** -- [x] Easy Switch to Old Icons from simplenetspeed extension, go to preferences tab for this extension to enable/disable old icons. -*(If you have old icons enabled then in mode 5 you will see " -o" written after total net speed)* +- [x] Easy Switch to Old Icons of simplenetspeed extension, go to preferences tab for this extension to enable/disable old icons. if you face any **issues** you can **[file an issue](https://github.com/prateekmedia/netspeedsimplified/issues)** with images or error codes @@ -60,9 +58,9 @@ if you face any **issues** you can **[file an issue](https://github.com/prateekm 1. Total of downloaded in Bytes (Right click to reset counter) > **Right click to toggle total data usage visibility, Right click on total data usage mode in reset counter**, -

=====> To this

+

After right click =>

-> **Right click continuously for 4 times in any mode to toggle vertical alignment, You will see "-v" written in 5th mode after total download data if this is enabled** +> **Right click continuously for 4 times in any mode to toggle vertical alignment** > **Middle click to change font size** From 0686a2a5ddf57a91bd9cd6df36e516eea4eb0b7e Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 24 Nov 2020 17:36:14 +0530 Subject: [PATCH 217/344] Update Preferences --- prefs.js | 48 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 33 insertions(+), 15 deletions(-) diff --git a/prefs.js b/prefs.js index 521f49e..9218931 100644 --- a/prefs.js +++ b/prefs.js @@ -89,7 +89,7 @@ Prefs.prototype = vbox.add(new Gtk.Separator({visible : true})); } - function vBoxAddTgglBtn(whichHbox, getLbl, getBool, getTooTip = ""){ + function vBoxAddTgglBtn(whichHbox, getLbl, getBool, getTooTip = "", func){ boolComp = (thset.get_boolean(getBool) == thset.get_default_value(getBool).unpack()); getLbl = boolComp ? getLbl : `${getLbl}` @@ -98,7 +98,8 @@ Prefs.prototype = whichVlue = new Gtk.Switch({active: thset.get_boolean(getBool), tooltip_text: tootext }); whichVlue.connect('notify::active', (widget) => { thset.set_boolean(getBool, widget.active); - thset.set_boolean('restartextension' , true); + if (func != undefined){ func(widget.active); } + else { thset.set_boolean('restartextension' , true); } }) whichHbox.pack_start(whichLbl, true, true, 0); @@ -183,27 +184,44 @@ Prefs.prototype = vBoxAddTgglBtn(hboxLckMuseAct, "Lock Mouse Actions", "lockmouseactions", "Enabling it will Lock Mouse Actions"); //Colors + let hboxColor = newGtkBox(); + function onColorToggle(widget){ + if (widget){ + usColorButton.show(); + dsColorButton.show(); + tsColorButton.show(); + tdColorButton.show(); + } else { + usColorButton.hide(); + dsColorButton.hide(); + tsColorButton.hide(); + tdColorButton.hide(); + } + } - //Upload Speed Color - let usColorButton = newGtkBox(); - vBoxAddColorButton(usColorButton, "Upload Speed Color", "uscolor", "Select the upload speed color"); - - //Download Speed Color - let dsColorButton = newGtkBox(); - vBoxAddColorButton(dsColorButton, "Download Speed Color", "dscolor", "Select the download speed color"); + vBoxAddTgglBtn(hboxColor, "Show Color Customization", "colortggle", "Enabling it will Show all Color customizations", onColorToggle); + + //Upload Speed Color + let usColorButton = newGtkBox(); + vBoxAddColorButton(usColorButton, "Upload Speed Color", "uscolor", "Select the upload speed color"); + + //Download Speed Color + let dsColorButton = newGtkBox(); + vBoxAddColorButton(dsColorButton, "Download Speed Color", "dscolor", "Select the download speed color"); - //Total Speed Color - let tsColorButton = newGtkBox(); - vBoxAddColorButton(tsColorButton, "Total Speed Color", "tscolor", "Select the total speed color"); + //Total Speed Color + let tsColorButton = newGtkBox(); + vBoxAddColorButton(tsColorButton, "Total Speed Color", "tscolor", "Select the total speed color"); - //Total Download Color - let tdColorButton = newGtkBox(); - vBoxAddColorButton(tdColorButton, "Total Download Color", "tdcolor", "Select the total download color"); + //Total Download Color + let tdColorButton = newGtkBox(); + vBoxAddColorButton(tdColorButton, "Total Download Color", "tdcolor", "Select the total download color"); frame.add(label); frame.add(vbox); frame.add(mfooter); frame.show_all(); + onColorToggle(thset.get_boolean("colortggle")); return frame; } From 2c97410b4f8b4749af19abcd84a30f40a0e0ebd4 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 24 Nov 2020 17:42:50 +0530 Subject: [PATCH 218/344] Update README.md --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6271ad5..4db416a 100644 --- a/README.md +++ b/README.md @@ -18,12 +18,17 @@ ***Tested on GNOME 3.36 and 3.38*** +#### Whats new in v20 and above: +- [x] Completely revamped whole codebase +- [x] Add Show Upload First button to show upload speed first +- [x] Add Color Customizations to make the extension your own + + #### Whats new in v11 and above: - [x] Add Preference Dialog with lots of default customization. - [x] Add Lock Mouse Actions button in Preferences to disable any mouse click behaviour. - [x] Add Position menu(with Advanced option) to pinpoint where to place the indicator on the Panel. - [x] Add Refresh time field by which you can change refresh time value between 1.0 sec to 10.0 sec. -- [x] Add Show Upload First button to show upload speed first #### Feature Highlights : - [x] Adjustable Refresh time From faa3a3b337d07b8f7b8843291256b6f175f83ef4 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 24 Nov 2020 17:43:40 +0530 Subject: [PATCH 219/344] Add show color customization button --- schemas/gschemas.compiled | Bin 1259 -> 1307 bytes ....extensions.netspeedsimplified.gschema.xml | 3 +++ 2 files changed, 3 insertions(+) diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index d680a89c1f0a43f2f2dd437cdc824aa8eecb0cca..46379c1bd5e93b89fc4e342e7b8ccaa60397cb07 100644 GIT binary patch literal 1307 zcma)6Pe>I(9G=RT=2O!m2)sme*a!Na1wtTUmq^mHNO)-7o%i0*zMa?3Xn&}nW9ZqW zf+XtL$sp>IA)SKokcX&4$0Q1&4xXy-n|=GV0%_sf@7r&GznS06{$|gP`-$>nD;n2f z@I-*$AhEey65itjzL*g#5PAbJptZTApsxpd-@`{zQ zQ93roSXxt;GBm1Ik5pO75b?OY11Ye{sy|i89oj^UZZ9` ztzt$jfR}*Y=i|5OQ@6uk2EXRJzEAV?sp+qR*MLip)>r6L_rU)Q{tBFXarZiX>K6E$ z;DdWGSNrNU`qbUNbqSkJ}5_ zFwl`s7%Y;?l<%Dw9PB%?bvs@_gP4LcGcvI%@FN%LO%<%JR3bU0H61)B5)nqKI7F1y ziD4l8nhvGQNpI;)X@3b%c~?E93I${v>nFC^t&I%iyYejOO2-RLv)~=-yq6|#DmzwLYc27{vc-~a#s literal 1259 zcmaJ>J!lj`7#%fd&buV$3PG?DwAh974uu0DNCXjsrmzYkY4&#K?w0KBoI8^dg71PQ2xXd&1bL^LK2*iF_wC zqTP0aPbJ#g+%dta9YU<4C4J*@%q09PKPT@njC!9K6W75F4BP}(QMFJFRb3WzO$I?h z&KMbLUxm65N~0T6dfKly0>9!*5AkSLF5&K%H4uHkR-hlq09jxF7zBoZ;Wc26NBPgU z7{gjJqA4zeuL7=px<#Kl3;zcA8SwG>@*I8YLHMu0Ux0K@|DaDj48H~b1$-(!d{3Xc zAAWj^5PN_(BXbw%Q}@BQz(;_4L-h~zsTqF~JO!M%eLt>;n*I#u+` z7>Ja`d!xzOyVPo0Lp1pWpXRjmfHtWc zkGMd&Q*|}1rQ;eNz9f~vyvB1?pyFXswd`02N~Qen-e false + + false + "rgba(255, 255, 255, 1)" From f920eb322bb6181a779554364aa7079a5c6b0d2c Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 24 Nov 2020 18:08:55 +0530 Subject: [PATCH 220/344] moving credits here and there --- README.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 4db416a..e18c3d6 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,7 @@ [Get it on GNOME Extensions](https://extensions.gnome.org/extension/3724/net-speed-simplified/) or [Install Manually](#installing-manually) -> Special Thanks to : [m0hithreddy.github](https://github.com/m0hithreddy) for completely revamping the whole codebase - -> Forked from : [biji.gnome/simplenetspeed](https://github.com/biji/simplenetspeed) +> Forked from : [biji@gnome/simplenetspeed](https://github.com/biji/simplenetspeed)

Screenshot @@ -21,7 +19,8 @@ #### Whats new in v20 and above: - [x] Completely revamped whole codebase - [x] Add Show Upload First button to show upload speed first -- [x] Add Color Customizations to make the extension your own +- [x] Add Color Customizations to make the extension your own +- ( Thanks to [m0hithreddy@github](https://github.com/m0hithreddy) for above features ) #### Whats new in v11 and above: From 1bb284bd19cdcb7f3b077f3fca05383202413840 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 25 Nov 2020 08:32:47 +0530 Subject: [PATCH 221/344] Update quick-install.sh --- quick-install.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/quick-install.sh b/quick-install.sh index 81fb3c0..4d4f747 100644 --- a/quick-install.sh +++ b/quick-install.sh @@ -15,12 +15,11 @@ curl ${PROJECT_HOME}/extension.js -o ${EXT_HOME}/extension.js curl ${PROJECT_HOME}/metadata.json -o ${EXT_HOME}/metadata.json curl ${PROJECT_HOME}/prefs.js -o ${EXT_HOME}/prefs.js curl ${PROJECT_HOME}/stylesheet.css -o ${EXT_HOME}/stylesheet.css -curl ${PROJECT_HOME}/stylesheet.css -o ${EXT_HOME}/stylesheet.css curl ${PROJECT_HOME}/schemas/gschemas.compiled -o ${EXT_HOME}/schemas/gschemas.compiled +curl ${PROJECT_HOME}/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml -o ${EXT_HOME}/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml #Optional files curl ${PROJECT_HOME}/LICENSE -o ${EXT_HOME}/LICENSE -curl ${PROJECT_HOME}/README.md -o ${EXT_HOME}/README.md #Reloading shell; Sending SIGHUP signal to gnome-shell (equivalent to alt + f2 ; r ; enter) busctl --user call org.gnome.Shell /org/gnome/Shell org.gnome.Shell Eval s 'Meta.restart("Restarting…")' From 6d2c5e7ac59cc1623f2d567efda550bb31cbaea9 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 25 Nov 2020 10:51:31 +0530 Subject: [PATCH 222/344] Removing weed and replacing var with let --- extension.js | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/extension.js b/extension.js index db91097..2b40362 100644 --- a/extension.js +++ b/extension.js @@ -3,21 +3,13 @@ const Clutter = imports.gi.Clutter, St = imports.gi.St, Main = imports.ui.main, Gio = imports.gi.Gio, - Lang = imports.lang, PanelMenu = imports.ui.panelMenu, Mainloop = imports.mainloop; - - const ExtensionUtils = imports.misc.extensionUtils; - const Me = ExtensionUtils.getCurrentExtension(); - const Convenience = Me.imports.convenience; - -var toRestart; - -const schema = 'org.gnome.shell.extensions.netspeedsimplified'; - -const ButtonName = "ShowNetSpeedButton"; - -const rCConst=4; //Right Click 4 times to change Vertical Alignment + Me = imports.misc.extensionUtils.getCurrentExtension(); + Convenience = Me.imports.convenience; + schema = 'org.gnome.shell.extensions.netspeedsimplified'; + ButtonName = "ShowNetSpeedButton"; + rCConst=4; //Right Click 4 times to toggle Vertical Alignment let settings, timeout, spaCe, @@ -85,7 +77,7 @@ function nsPosAdv() { function speedToString(amount, rMode = 0) { - var speed_map = ["B", "KB", "MB", "GB"].map( + let speed_map = ["B", "KB", "MB", "GB"].map( (rMode == 1 && (crStng.mode == 1 || crStng.mode == 3 || crStng.mode == 4)) ? v => v : //KB (rMode == 1 && (crStng.mode == 0 || crStng.mode == 2)) ? v => v.toLowerCase() : //kb (crStng.mode == 0 || crStng.mode == 2) ? v => v.toLowerCase() + "/s" : //kb/s @@ -104,7 +96,7 @@ function speedToString(amount, rMode = 0) { return Number.isInteger(parseFloat(amnt.toFixed(digitsToFix))); } - var digits = ChkifInt(amount) ? 0 : //For Integer like 21.0 + let digits = ChkifInt(amount) ? 0 : //For Integer like 21.0 ((crStng.mode==4 || rMode !=0) && !ChkifInt(amount*10)) ? 2 /* For floats like 21.11 */ : 1 //For floats like 21.2 return String(amount.toFixed(digits)) + " " + speed_map[unit]; @@ -254,7 +246,7 @@ function mouseEventHandler(widget, event) { } function parseStat() { - toRestart = settings.get_boolean('restartextension'); + let toRestart = settings.get_boolean('restartextension'); try { let input_file = Gio.file_new_for_path('/proc/net/dev'); let fstream = input_file.read(null); @@ -339,4 +331,4 @@ function disable() { Mainloop.source_remove(timeout); nsButton.destroy(); nsButton = null; -} +} \ No newline at end of file From 2b02060ebb7ad2c2871383f71505e7c120e23c6f Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 25 Nov 2020 10:56:43 +0530 Subject: [PATCH 223/344] removing weeds --- extension.js | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/extension.js b/extension.js index 2b40362..e3edde0 100644 --- a/extension.js +++ b/extension.js @@ -4,11 +4,11 @@ const Clutter = imports.gi.Clutter, Main = imports.ui.main, Gio = imports.gi.Gio, PanelMenu = imports.ui.panelMenu, - Mainloop = imports.mainloop; - Me = imports.misc.extensionUtils.getCurrentExtension(); - Convenience = Me.imports.convenience; - schema = 'org.gnome.shell.extensions.netspeedsimplified'; - ButtonName = "ShowNetSpeedButton"; + Mainloop = imports.mainloop, + Me = imports.misc.extensionUtils.getCurrentExtension(), + Convenience = Me.imports.convenience, + schema = 'org.gnome.shell.extensions.netspeedsimplified', + ButtonName = "ShowNetSpeedButton", rCConst=4; //Right Click 4 times to toggle Vertical Alignment let settings, timeout, @@ -44,20 +44,10 @@ function fetchSettings() { } function pushSettings() { - settings.set_double('refreshtime', crStng.refreshTime); settings.set_int('mode', crStng.mode); settings.set_int('fontmode', crStng.fontmode); settings.set_boolean('togglebool', crStng.showTotalDwnld); settings.set_boolean('isvertical', crStng.isVertical); - settings.set_int('chooseiconset', crStng.chooseIconSet); - settings.set_boolean('reverseindicators', crStng.revIndicator); - settings.set_boolean('lockmouseactions', crStng.lckMuseAct); - settings.set_int('wpos', crStng.nsPos); - settings.set_int('wposext', crStng.nsPosAdv); - settings.set_string('uscolor', crStng.usColor); - settings.set_string('dscolor', crStng.dsColor); - settings.set_string('tscolor', crStng.tsColor); - settings.set_string('tdcolor', crStng.tdColor); initNs(); } From 656d1aabd34d8898770e1120166a454989dc62e7 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 25 Nov 2020 11:01:25 +0530 Subject: [PATCH 224/344] Changing variable naming convention to match --- prefs.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/prefs.js b/prefs.js index 9218931..7ea20ca 100644 --- a/prefs.js +++ b/prefs.js @@ -1,10 +1,9 @@ -const Gtk = imports.gi.Gtk; -const Gdk = imports.gi.Gdk; +const Gtk = imports.gi.Gtk, + Gdk = imports.gi.Gdk; -const Extension = imports.misc.extensionUtils.getCurrentExtension(); -const Convenience = Extension.imports.convenience; - -const schema = "org.gnome.shell.extensions.netspeedsimplified"; +const Me = imports.misc.extensionUtils.getCurrentExtension(), + Convenience = Me.imports.convenience, + schema = "org.gnome.shell.extensions.netspeedsimplified"; function init(){} From e99c8d7db0bb9d324b66c30b1112d0a7dfa8fe8d Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 25 Nov 2020 11:22:38 +0530 Subject: [PATCH 225/344] Update Makefile --- Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile index aa50a89..3de68ee 100644 --- a/Makefile +++ b/Makefile @@ -3,6 +3,8 @@ EXT_HOME=~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.e all: install install: convenience.js extension.js metadata.json prefs.js stylesheet.css schemas/gschemas.compiled + #Remove old files(if any) + remove-no-reboot #Create directory structure mkdir -p ${EXT_HOME} mkdir -p ${EXT_HOME}/schemas @@ -21,6 +23,7 @@ install: convenience.js extension.js metadata.json prefs.js stylesheet.css schem busctl --user call org.gnome.Shell /org/gnome/Shell org.gnome.Shell Eval s 'Meta.restart("Restarting…")' #Enabling Gnome extension. + sleep 5 gnome-extensions enable netspeedsimplified@prateekmedia.extension remove: From f97f4d686ca0c3051da3c05bab71c67c1a99b308 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 25 Nov 2020 11:24:37 +0530 Subject: [PATCH 226/344] Fix make file --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 3de68ee..71f944b 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ all: install install: convenience.js extension.js metadata.json prefs.js stylesheet.css schemas/gschemas.compiled #Remove old files(if any) - remove-no-reboot + rm -rf ${EXT_HOME} #Create directory structure mkdir -p ${EXT_HOME} mkdir -p ${EXT_HOME}/schemas From af9c5575b4c5eb85e16a6c87b163543c84e17704 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 25 Nov 2020 19:22:43 +0530 Subject: [PATCH 227/344] Fix for issue #8 --- extension.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/extension.js b/extension.js index e3edde0..6826ed0 100644 --- a/extension.js +++ b/extension.js @@ -73,7 +73,7 @@ function speedToString(amount, rMode = 0) { (crStng.mode == 0 || crStng.mode == 2) ? v => v.toLowerCase() + "/s" : //kb/s (crStng.mode == 1 || crStng.mode == 3) ? v => v + "/s" : v=>v); //KB/s - if (amount === 0) return "0 " + speed_map[0]; + if (amount === 0) return " 0.0 " + speed_map[0]; if (crStng.mode == 0 || crStng.mode == 2) amount = amount * 8; let unit = 0; @@ -86,10 +86,12 @@ function speedToString(amount, rMode = 0) { return Number.isInteger(parseFloat(amnt.toFixed(digitsToFix))); } - let digits = ChkifInt(amount) ? 0 : //For Integer like 21.0 + let digits = ((crStng.mode==4 || rMode !=0) && ChkifInt(amount)) ? 0 : //For Integer like 21.0 ((crStng.mode==4 || rMode !=0) && !ChkifInt(amount*10)) ? 2 /* For floats like 21.11 */ : 1 //For floats like 21.2 - return String(amount.toFixed(digits)) + " " + speed_map[unit]; + let spaceNum = (crStng.mode!=4 && rMode ==0) ? 4 - Math.round(Math.round(100*Math.log(amount)/Math.log(10))/100) : 0; + + return " ".repeat(spaceNum) + amount.toFixed(digits) + " " + speed_map[unit]; } // NetSpeed Components @@ -269,7 +271,7 @@ function parseStat() { if (lastCountUp === 0) lastCountUp = countUp; let speed = (count - lastCount) / crStng.refreshTime, speedUp = (countUp - lastCountUp) / crStng.refreshTime, - dot = (speed > lastSpeed) ? "⇅" : " "; + dot = "⇅"; if (resetNextCount == true) { resetNextCount = false; @@ -297,7 +299,6 @@ function parseStat() { } } catch (e) { usLabel.set_text(e.message); - dsLabel.set_text(e.message); tsLabel.set_text(e.message); tdLabel.set_text(e.message); } @@ -321,4 +322,4 @@ function disable() { Mainloop.source_remove(timeout); nsButton.destroy(); nsButton = null; -} \ No newline at end of file +} From f407f3997c1b7720d816be89f5bf933d7520dc08 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 25 Nov 2020 19:28:46 +0530 Subject: [PATCH 228/344] Fix Spacing error for #8 --- extension.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extension.js b/extension.js index 6826ed0..608ee65 100644 --- a/extension.js +++ b/extension.js @@ -89,7 +89,7 @@ function speedToString(amount, rMode = 0) { let digits = ((crStng.mode==4 || rMode !=0) && ChkifInt(amount)) ? 0 : //For Integer like 21.0 ((crStng.mode==4 || rMode !=0) && !ChkifInt(amount*10)) ? 2 /* For floats like 21.11 */ : 1 //For floats like 21.2 - let spaceNum = (crStng.mode!=4 && rMode ==0) ? 4 - Math.round(Math.round(100*Math.log(amount)/Math.log(10))/100) : 0; + let spaceNum = (crStng.mode!=4 && rMode ==0) ? 4 - Math.ceil(Math.round(100*Math.log(amount)/Math.log(10))/100) : 0; return " ".repeat(spaceNum) + amount.toFixed(digits) + " " + speed_map[unit]; } From b6206f88b39ae3cf1f4ff5ff74a76a3a6aa57585 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 25 Nov 2020 23:33:38 +0530 Subject: [PATCH 229/344] Fix alignment for 0 KB/s vertically w.r.t. others --- extension.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/extension.js b/extension.js index 608ee65..cfef585 100644 --- a/extension.js +++ b/extension.js @@ -73,7 +73,7 @@ function speedToString(amount, rMode = 0) { (crStng.mode == 0 || crStng.mode == 2) ? v => v.toLowerCase() + "/s" : //kb/s (crStng.mode == 1 || crStng.mode == 3) ? v => v + "/s" : v=>v); //KB/s - if (amount === 0) return " 0.0 " + speed_map[0]; + if (amount === 0) return " 0.0 " + speed_map[0]; if (crStng.mode == 0 || crStng.mode == 2) amount = amount * 8; let unit = 0; @@ -89,7 +89,7 @@ function speedToString(amount, rMode = 0) { let digits = ((crStng.mode==4 || rMode !=0) && ChkifInt(amount)) ? 0 : //For Integer like 21.0 ((crStng.mode==4 || rMode !=0) && !ChkifInt(amount*10)) ? 2 /* For floats like 21.11 */ : 1 //For floats like 21.2 - let spaceNum = (crStng.mode!=4 && rMode ==0) ? 4 - Math.ceil(Math.round(100*Math.log(amount)/Math.log(10))/100) : 0; + let spaceNum = 4 - Math.ceil(Math.round(100*Math.log(amount)/Math.log(10))/100); //This will give the number of digits that number have substracted by four return " ".repeat(spaceNum) + amount.toFixed(digits) + " " + speed_map[unit]; } @@ -102,28 +102,28 @@ function getStyle() { } function initNsLabels() { usLabel = new St.Label({ - text: '---', + text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), style: "color: " + crStng.usColor }); dsLabel = new St.Label({ - text: '---', + text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), style: "color: " + crStng.dsColor }); tsLabel = new St.Label({ - text: '---', + text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), style: "color: " + crStng.tsColor }); tdLabel = new St.Label({ - text: '---', + text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), style: "color: " + crStng.tdColor From af7c9007372a9b726be996a7dfb93ce4d454fcba Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 26 Nov 2020 13:31:27 +0530 Subject: [PATCH 230/344] Fix icons as rof #8 --- extension.js | 71 +++++++++++++++++++++++++++++++++----------------- stylesheet.css | 6 ++--- 2 files changed, 50 insertions(+), 27 deletions(-) diff --git a/extension.js b/extension.js index cfef585..e5b61f0 100644 --- a/extension.js +++ b/extension.js @@ -67,7 +67,7 @@ function nsPosAdv() { function speedToString(amount, rMode = 0) { - let speed_map = ["B", "KB", "MB", "GB"].map( + let speed_map = [" B", "KB", "MB", "GB"].map( (rMode == 1 && (crStng.mode == 1 || crStng.mode == 3 || crStng.mode == 4)) ? v => v : //KB (rMode == 1 && (crStng.mode == 0 || crStng.mode == 2)) ? v => v.toLowerCase() : //kb (crStng.mode == 0 || crStng.mode == 2) ? v => v.toLowerCase() + "/s" : //kb/s @@ -82,52 +82,69 @@ function speedToString(amount, rMode = 0) { ++unit; } - function ChkifInt(amnt, digitsToFix = 1){ - return Number.isInteger(parseFloat(amnt.toFixed(digitsToFix))); - } - - let digits = ((crStng.mode==4 || rMode !=0) && ChkifInt(amount)) ? 0 : //For Integer like 21.0 - ((crStng.mode==4 || rMode !=0) && !ChkifInt(amount*10)) ? 2 /* For floats like 21.11 */ : 1 //For floats like 21.2 - - let spaceNum = 4 - Math.ceil(Math.round(100*Math.log(amount)/Math.log(10))/100); //This will give the number of digits that number have substracted by four + let digits = (crStng.mode==4 || rMode !=0) ? 2 /* For floats like 21.11 and total speed mode */ : 1 //For floats like 21.2 - return " ".repeat(spaceNum) + amount.toFixed(digits) + " " + speed_map[unit]; + return amount.toFixed(digits) + " " + speed_map[unit]; } // NetSpeed Components var usLabel, dsLabel, tsLabel, tdLabel; +var usIcon, dsIcon, tsIcon, tdIcon; function getStyle() { return ('forall size-' + String(crStng.fontmode)); } function initNsLabels() { usLabel = new St.Label({ - text: '--', + text: '---', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), style: "color: " + crStng.usColor }); dsLabel = new St.Label({ - text: '--', + text: '---', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), style: "color: " + crStng.dsColor }); tsLabel = new St.Label({ - text: '--', + text: '---', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), style: "color: " + crStng.tsColor }); tdLabel = new St.Label({ - text: '--', + text: '---', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), style: "color: " + crStng.tdColor }); + usIcon = new St.Label({ + text: DIcons(1), + y_align: Clutter.ActorAlign.CENTER, + style: "color: " + crStng.usColor + }); + + dsIcon = new St.Label({ + text: DIcons(0), + y_align: Clutter.ActorAlign.CENTER, + style: "color: " + crStng.dsColor + }); + + tsIcon = new St.Label({ + text: "⇅", + y_align: Clutter.ActorAlign.CENTER, + style: "color: " + crStng.tsColor + }); + + tdIcon = new St.Label({ + text: DIcons(2), + y_align: Clutter.ActorAlign.CENTER, + style: "color: " + crStng.tdColor + }); } function updateNsLabels(up, down, up_down, total) { //UpSpeed, DownSpeed, UpSpeed + DownSpeed, TotalDownloaded @@ -162,27 +179,34 @@ function initNs() { //Attach the components to the grid. if (crStng.mode == 0 || crStng.mode == 1) { + nsLayout.attach(tsIcon, 0, 1, 1, 1); nsLayout.attach(tsLabel, 1, 1, 1, 1); if (crStng.showTotalDwnld) { - (crStng.isVertical) ? nsLayout.attach(tdLabel, 1, 2, 1, 1) : nsLayout.attach(tdLabel, 2, 1, 1, 1); + if (crStng.isVertical){ nsLayout.attach(tdIcon, 0, 2, 1, 1);nsLayout.attach(tdLabel, 1, 2, 1, 1);} + else { nsLayout.attach(tdIcon, 2, 1, 1, 1);nsLayout.attach(tdLabel, 3, 1, 1, 1) }; } } else if (crStng.mode == 2 || crStng.mode == 3) { if (crStng.revIndicator) { + nsLayout.attach(usIcon, 0, 1, 1, 1); nsLayout.attach(usLabel, 1, 1, 1, 1); (crStng.isVertical) ? nsLayout.attach(dsLabel, 1, 2, 1, 1) : nsLayout.attach(dsLabel, 2, 1, 1, 1); } else { + nsLayout.attach(dsIcon, 0, 1, 1, 1); nsLayout.attach(dsLabel, 1, 1, 1, 1); - (crStng.isVertical) ? nsLayout.attach(usLabel, 1, 2, 1, 1) : nsLayout.attach(usLabel, 2, 1, 1, 1); + if (crStng.isVertical) { nsLayout.attach(usIcon, 0, 2, 1, 1); nsLayout.attach(usLabel, 1, 2, 1, 1) } + else {nsLayout.attach(usIcon, 2, 1, 1, 1); nsLayout.attach(usLabel, 3, 1, 1, 1);} } if (crStng.showTotalDwnld) { - (crStng.isVertical) ? nsLayout.attach(tdLabel, 2, 2, 1, 1) : nsLayout.attach(tdLabel, 3, 1, 1, 1); + if (crStng.isVertical) { nsLayout.attach(tdIcon, 2, 2, 1, 1); nsLayout.attach(tdLabel, 3, 2, 1, 1) } + else { nsLayout.attach(tdIcon, 4, 1, 1, 1); nsLayout.attach(tdLabel, 5, 1, 1, 1); } } } else { + nsLayout.attach(tdIcon, 0, 1, 1, 1); nsLayout.attach(tdLabel, 1, 1, 1, 1); } @@ -270,8 +294,7 @@ function parseStat() { if (lastCount === 0) lastCount = count; if (lastCountUp === 0) lastCountUp = countUp; - let speed = (count - lastCount) / crStng.refreshTime, speedUp = (countUp - lastCountUp) / crStng.refreshTime, - dot = "⇅"; + let speed = (count - lastCount) / crStng.refreshTime, speedUp = (countUp - lastCountUp) / crStng.refreshTime; if (resetNextCount == true) { resetNextCount = false; @@ -281,12 +304,12 @@ function parseStat() { (speed || speedUp) ? h = 0 : h++ if(h<=8) { - updateNsLabels(DIcons(1) + " " + speedToString(speedUp), - DIcons(0) + " " + speedToString(speed - speedUp), - dot + " " + speedToString(speed), - DIcons(2) + " " + speedToString(count - resetCount, 1)); + updateNsLabels(" " + speedToString(speedUp), + " " + speedToString(speed - speedUp), + " " + speedToString(speed), + " " + speedToString(count - resetCount, 1)); } - else updateNsLabels('--', '--', '--', DIcons(2) + " " + speedToString(count - resetCount, 1)); + else updateNsLabels('--', '--', '--', " " + speedToString(count - resetCount, 1)); lastCount = count; lastCountUp = countUp; diff --git a/stylesheet.css b/stylesheet.css index 360306c..c74e1c0 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -1,8 +1,8 @@ /* For all elements */ .forall{ - text-align: left; - min-width: 6.5em; - margin-left: 10px; + text-align: right; + min-width: 5.5em; + margin: 0 10px; } /* Font change on middle click*/ From 043dcf08e828cbfabfd540aaf13f74a1e3e30bbf Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 26 Nov 2020 13:55:53 +0530 Subject: [PATCH 231/344] Trying to make code short --- extension.js | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/extension.js b/extension.js index e5b61f0..5f1f22b 100644 --- a/extension.js +++ b/extension.js @@ -88,36 +88,35 @@ function speedToString(amount, rMode = 0) { } // NetSpeed Components -var usLabel, dsLabel, tsLabel, tdLabel; -var usIcon, dsIcon, tsIcon, tdIcon; +var usLabel, dsLabel, tsLabel, tdLabel, usIcon, dsIcon, tsIcon, tdIcon; function getStyle() { return ('forall size-' + String(crStng.fontmode)); } function initNsLabels() { usLabel = new St.Label({ - text: '---', + text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), style: "color: " + crStng.usColor }); dsLabel = new St.Label({ - text: '---', + text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), style: "color: " + crStng.dsColor }); tsLabel = new St.Label({ - text: '---', + text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), style: "color: " + crStng.tsColor }); tdLabel = new St.Label({ - text: '---', + text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), style: "color: " + crStng.tdColor @@ -176,6 +175,8 @@ function initNs() { layout_manager: nsLayout, y_align: Clutter.ActorAlign.CENTER }) + + let verticalConstant = (crStng.isVertical) ? 1 : 0 ; //Attach the components to the grid. if (crStng.mode == 0 || crStng.mode == 1) { @@ -183,26 +184,26 @@ function initNs() { nsLayout.attach(tsLabel, 1, 1, 1, 1); if (crStng.showTotalDwnld) { - if (crStng.isVertical){ nsLayout.attach(tdIcon, 0, 2, 1, 1);nsLayout.attach(tdLabel, 1, 2, 1, 1);} - else { nsLayout.attach(tdIcon, 2, 1, 1, 1);nsLayout.attach(tdLabel, 3, 1, 1, 1) }; + nsLayout.attach(tdIcon, 2 - (2 *verticalConstant), verticalConstant + 1 , 1, 1); + nsLayout.attach(tdLabel, 3 - (2 *verticalConstant), verticalConstant + 1, 1, 1); } } else if (crStng.mode == 2 || crStng.mode == 3) { if (crStng.revIndicator) { nsLayout.attach(usIcon, 0, 1, 1, 1); nsLayout.attach(usLabel, 1, 1, 1, 1); - (crStng.isVertical) ? nsLayout.attach(dsLabel, 1, 2, 1, 1) : nsLayout.attach(dsLabel, 2, 1, 1, 1); + nsLayout.attach(dsLabel, 2 - verticalConstant, 1 + verticalConstant, 1, 1); } else { nsLayout.attach(dsIcon, 0, 1, 1, 1); nsLayout.attach(dsLabel, 1, 1, 1, 1); - if (crStng.isVertical) { nsLayout.attach(usIcon, 0, 2, 1, 1); nsLayout.attach(usLabel, 1, 2, 1, 1) } - else {nsLayout.attach(usIcon, 2, 1, 1, 1); nsLayout.attach(usLabel, 3, 1, 1, 1);} + nsLayout.attach(usIcon, (2 *verticalConstant) , verticalConstant + 1, 1, 1); + nsLayout.attach(usLabel, (2 *verticalConstant) + 1, verticalConstant + 1, 1, 1) } if (crStng.showTotalDwnld) { - if (crStng.isVertical) { nsLayout.attach(tdIcon, 2, 2, 1, 1); nsLayout.attach(tdLabel, 3, 2, 1, 1) } - else { nsLayout.attach(tdIcon, 4, 1, 1, 1); nsLayout.attach(tdLabel, 5, 1, 1, 1); } + nsLayout.attach(tdIcon, 4 - (2 *verticalConstant), 1 + verticalConstant, 1, 1); + nsLayout.attach(tdLabel, 5 - (2 *verticalConstant), 1 + verticalConstant, 1, 1) } } else { From 5c27d936ed9672f5957ad464b4866ac7d4c3bfb4 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 26 Nov 2020 13:57:16 +0530 Subject: [PATCH 232/344] Fix Width --- stylesheet.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stylesheet.css b/stylesheet.css index c74e1c0..1da44bb 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -1,7 +1,7 @@ /* For all elements */ .forall{ text-align: right; - min-width: 5.5em; + min-width: 6em; margin: 0 10px; } From 4f2a464283ee30a3354b5ce90e1b8fcbfa0c2f2b Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 26 Nov 2020 14:24:28 +0530 Subject: [PATCH 233/344] Fix some code --- extension.js | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/extension.js b/extension.js index 5f1f22b..d226c7e 100644 --- a/extension.js +++ b/extension.js @@ -184,26 +184,27 @@ function initNs() { nsLayout.attach(tsLabel, 1, 1, 1, 1); if (crStng.showTotalDwnld) { - nsLayout.attach(tdIcon, 2 - (2 *verticalConstant), verticalConstant + 1 , 1, 1); - nsLayout.attach(tdLabel, 3 - (2 *verticalConstant), verticalConstant + 1, 1, 1); + nsLayout.attach(tdIcon, 2 - 2*verticalConstant, 1 + verticalConstant, 1, 1); + nsLayout.attach(tdLabel, 3 - 2*verticalConstant, 1 + verticalConstant, 1, 1); } } else if (crStng.mode == 2 || crStng.mode == 3) { if (crStng.revIndicator) { - nsLayout.attach(usIcon, 0, 1, 1, 1); + nsLayout.attach(usIcon, 0, 1, 1, 1); nsLayout.attach(usLabel, 1, 1, 1, 1); - nsLayout.attach(dsLabel, 2 - verticalConstant, 1 + verticalConstant, 1, 1); + nsLayout.attach(dsIcon, 2 - 2*verticalConstant, 1 + verticalConstant, 1, 1); + nsLayout.attach(dsLabel, 3 - 2*verticalConstant, 1 + verticalConstant, 1, 1); } else { - nsLayout.attach(dsIcon, 0, 1, 1, 1); + nsLayout.attach(dsIcon, 0, 1, 1, 1); nsLayout.attach(dsLabel, 1, 1, 1, 1); - nsLayout.attach(usIcon, (2 *verticalConstant) , verticalConstant + 1, 1, 1); - nsLayout.attach(usLabel, (2 *verticalConstant) + 1, verticalConstant + 1, 1, 1) + nsLayout.attach(usIcon, 2 - 2*verticalConstant, 1 + verticalConstant, 1, 1); + nsLayout.attach(usLabel, 3 - 2*verticalConstant, 1 + verticalConstant, 1, 1); } if (crStng.showTotalDwnld) { - nsLayout.attach(tdIcon, 4 - (2 *verticalConstant), 1 + verticalConstant, 1, 1); - nsLayout.attach(tdLabel, 5 - (2 *verticalConstant), 1 + verticalConstant, 1, 1) + nsLayout.attach(tdIcon, 5 - 2*verticalConstant, 1 + verticalConstant, 1, 1); + nsLayout.attach(tdLabel, 6 - 2*verticalConstant, 1 + verticalConstant, 1, 1); } } else { From 98c9a20e9f8f5ef87f95af52c7a2f5f116a1626c Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 26 Nov 2020 22:25:19 +0530 Subject: [PATCH 234/344] Better way to fix aligment using 'Monospace' font --- extension.js | 15 +++++++++++---- stylesheet.css | 1 + 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/extension.js b/extension.js index d226c7e..6cb6d35 100644 --- a/extension.js +++ b/extension.js @@ -73,7 +73,7 @@ function speedToString(amount, rMode = 0) { (crStng.mode == 0 || crStng.mode == 2) ? v => v.toLowerCase() + "/s" : //kb/s (crStng.mode == 1 || crStng.mode == 3) ? v => v + "/s" : v=>v); //KB/s - if (amount === 0) return " 0.0 " + speed_map[0]; + if (amount === 0) return " 0.0 " + speed_map[0]; if (crStng.mode == 0 || crStng.mode == 2) amount = amount * 8; let unit = 0; @@ -84,14 +84,16 @@ function speedToString(amount, rMode = 0) { let digits = (crStng.mode==4 || rMode !=0) ? 2 /* For floats like 21.11 and total speed mode */ : 1 //For floats like 21.2 - return amount.toFixed(digits) + " " + speed_map[unit]; + let spaceNum = 3 - Math.ceil(Math.log10(amount +1)); + + return " ".repeat(spaceNum) + amount.toFixed(digits) + " " + speed_map[unit]; } // NetSpeed Components var usLabel, dsLabel, tsLabel, tdLabel, usIcon, dsIcon, tsIcon, tdIcon; -function getStyle() { - return ('forall size-' + String(crStng.fontmode)); +function getStyle(isIcon = false) { + return (isIcon) ? 'size-' + (String(crStng.fontmode)) : ('forall size-' + String(crStng.fontmode)) } function initNsLabels() { usLabel = new St.Label({ @@ -124,24 +126,28 @@ function initNsLabels() { usIcon = new St.Label({ text: DIcons(1), y_align: Clutter.ActorAlign.CENTER, + style_class: getStyle(true), style: "color: " + crStng.usColor }); dsIcon = new St.Label({ text: DIcons(0), y_align: Clutter.ActorAlign.CENTER, + style_class: getStyle(true), style: "color: " + crStng.dsColor }); tsIcon = new St.Label({ text: "⇅", y_align: Clutter.ActorAlign.CENTER, + style_class: getStyle(true), style: "color: " + crStng.tsColor }); tdIcon = new St.Label({ text: DIcons(2), y_align: Clutter.ActorAlign.CENTER, + style_class: getStyle(true), style: "color: " + crStng.tdColor }); } @@ -348,3 +354,4 @@ function disable() { nsButton.destroy(); nsButton = null; } + diff --git a/stylesheet.css b/stylesheet.css index 1da44bb..309e340 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -3,6 +3,7 @@ text-align: right; min-width: 6em; margin: 0 10px; + font-family : 'Monospace'; } /* Font change on middle click*/ From ede66989eabd6a65990374b83281e17b6f6ba54a Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 2 Dec 2020 22:41:28 +0530 Subject: [PATCH 235/344] Code cleanup --- README.md | 137 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 70 insertions(+), 67 deletions(-) diff --git a/README.md b/README.md index e18c3d6..f320cdc 100644 --- a/README.md +++ b/README.md @@ -1,98 +1,101 @@ -

NSS Logo

-

Net speed Simplified

-
Gnome extension to show network speed
+ -[Get it on GNOME Extensions](https://extensions.gnome.org/extension/3724/net-speed-simplified/) or [Install Manually](#installing-manually) +Net speed Simplified -> Forked from : [biji@gnome/simplenetspeed](https://github.com/biji/simplenetspeed) +Gnome extension to show network speed -

Screenshot + -*Screenshots* +or Install Manually - *Above Screenshot is with Adwaita Dark theme*

+Forked from : biji@gnome/simplenetspeed + -**Current Version** : ***21*** +Screenshots -***Tested on GNOME 3.36 and 3.38*** +Current Version : 21 -#### Whats new in v20 and above: -- [x] Completely revamped whole codebase -- [x] Add Show Upload First button to show upload speed first -- [x] Add Color Customizations to make the extension your own -- ( Thanks to [m0hithreddy@github](https://github.com/m0hithreddy) for above features ) +Tested on GNOME 3.36 and 3.38 +Whats new in v20 and above: +• [x] Completely revamped whole codebase +• [x] Add Show Upload First button to show upload speed first +• [x] Add Color Customizations to make the extension your own +• ( Thanks to m0hithreddy@github for above features ) +• [x] Add Change Font to Monospace option +• [x] Add Hide When Disconnected option -#### Whats new in v11 and above: -- [x] Add Preference Dialog with lots of default customization. -- [x] Add Lock Mouse Actions button in Preferences to disable any mouse click behaviour. -- [x] Add Position menu(with Advanced option) to pinpoint where to place the indicator on the Panel. -- [x] Add Refresh time field by which you can change refresh time value between 1.0 sec to 10.0 sec. +Whats new in v11 and above: +• [x] Add Preference Dialog with lots of default customization. +• [x] Add Lock Mouse Actions button in Preferences to disable any mouse click behaviour. +• [x] Add Position menu(with Advanced option) to pinpoint where to place the indicator on the Panel. +• [x] Add Refresh time field by which you can change refresh time value between 1.0 sec to 10.0 sec. -#### Feature Highlights : -- [x] Adjustable Refresh time -- [x] Supports GNOME SHELL 3.38 and Backwards compatible -- [x] Changes width accordingly / dynamic width -- [x] More cleaner ui -- [x] Changed Kbps to kbp/s -- [x] New sigma icon that respects vertical alignment(old: ∑ , new: Σ) -- [x] New Speed up and down icons for mode 3 & 4. (old: ↓ and ↑ , new: 🡳 and 🡱) -- [x] Add space b/w speed and their units -- [x] Human readable stylesheet // used min-width and removed repetitive codes -- [x] Used ES6 classes for less code and more efficeint javascript -- [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. -- [x] Add Preference Menu to customize the whole extension as you need +Feature Highlights : +• [x] Adjustable Refresh time +• [x] Supports GNOME SHELL 3.38 and Backwards compatible +• [x] Changes width accordingly / dynamic width +• [x] More cleaner ui +• [x] Changed Kbps to kbp/s +• [x] New sigma icon that respects vertical alignment(old: ∑ , new: Σ) +• [x] New Speed up and down icons for mode 3 & 4. (old: ↓ and ↑ , new: and ) +• [x] Add space b/w speed and their units +• [x] Human readable stylesheet // used min-width and removed repetitive codes +• [x] Used ES6 classes for less code and more efficeint javascript +• [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. +• [x] Add Preference Menu to customize the whole extension as you need -#### Changelog Till v10 : -- [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode -- [x] Easy Vertical Alignment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuously for four times to enable/disable vertical align or simply go to preferences tab for this extension, -***Tip : You can also change font size in vertical alignment to your liking by middle mouse click on the speed*** -- [x] Easy Switch to Old Icons of simplenetspeed extension, go to preferences tab for this extension to enable/disable old icons. +Changelog Till v10 : +• [x] Easy Vertical Alignment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuously for four times to enable/disable vertical align or simply go to preferences tab for this extension, +Tip : You can also change font size in vertical alignment to your liking by middle mouse click on the speed +• [x] Easy Switch to Old Icons of simplenetspeed extension, go to preferences tab for this extension to enable/disable old icons. -if you face any **issues** you can **[file an issue](https://github.com/prateekmedia/netspeedsimplified/issues)** with images or error codes +if you face any issues you can file an issue here -> **Left click to change modes**, - - -*Modes available:* +Modes available: 1. Total net speed in bits per second -1. Total net speed in Bytes per second -1. Up & down speed in bits per second -1. Up & down speed in Bytes per second -1. Total of downloaded in Bytes (Right click to reset counter) +2. Total net speed in Bytes per second +3. Up & down speed in bits per second +4. Up & down speed in Bytes per second +5. Total of downloaded in Bytes (Right click to reset counter) -> **Right click to toggle total data usage visibility, Right click on total data usage mode in reset counter**, -

After right click =>

+Mouse Events: +• Left click to change modes +• Right click to toggle total data usage visibility, Right click on total data usage mode in reset counter +• Right click continuously for 4 times in any mode to toggle vertical alignment +• Middle click to change font size -> **Right click continuously for 4 times in any mode to toggle vertical alignment** +Installing Manually: +• Please Star this repository and mark it as Watch if you want to know about latest updates. -> **Middle click to change font size** +Quick install -

Installing Manually:

- -* Please Star this repository and mark it as Watch if you want to know about latest updates. - -## Quick install The extension can be quicky installed as following: - $ /bin/bash -c "$(curl -sL https://git.io/Jk28b)" +$ /bin/bash -c "$(curl -sL https://git.io/Jk28b)" + -## Installing using Make +Installing using Make + The Extension can be managed using Make build system as follows +• +Getting the sources from repository + +$ git clone https://github.com/prateekmedia/netspeedsimplified.git + -* Getting the sources from repository - $ git clone https://github.com/prateekmedia/netspeedsimplified.git +• +Running make (install) -* Running make (install) +$ make install - $ make install -Likewise extension can be removed -```$ make remove``` -OR reinstalled -```$ make reinstall``` +Likewise extension can be removed + $ make remove +OR reinstalled + $ make reinstall -You can manage the extension using extensions app or [website](https://extensions.gnome.org/local) or Using Gnome tweaks tool's extension tab +You can manage the extension using extensions app or website or Using Gnome tweaks tool's extension tab \ No newline at end of file From e2dfbc7533867ff1cd746e43c805c65276b18fc1 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 2 Dec 2020 22:49:02 +0530 Subject: [PATCH 236/344] revert commit --- README.md | 137 ++++++++++++++++++++++++++---------------------------- 1 file changed, 67 insertions(+), 70 deletions(-) diff --git a/README.md b/README.md index f320cdc..e18c3d6 100644 --- a/README.md +++ b/README.md @@ -1,101 +1,98 @@ - +

NSS Logo

+

Net speed Simplified

+
Gnome extension to show network speed
-Net speed Simplified +[Get it on GNOME Extensions](https://extensions.gnome.org/extension/3724/net-speed-simplified/) or [Install Manually](#installing-manually) -Gnome extension to show network speed +> Forked from : [biji@gnome/simplenetspeed](https://github.com/biji/simplenetspeed) - +

Screenshot -or Install Manually +*Screenshots* -Forked from : biji@gnome/simplenetspeed - + *Above Screenshot is with Adwaita Dark theme*

-Screenshots +**Current Version** : ***21*** -Current Version : 21 +***Tested on GNOME 3.36 and 3.38*** -Tested on GNOME 3.36 and 3.38 +#### Whats new in v20 and above: +- [x] Completely revamped whole codebase +- [x] Add Show Upload First button to show upload speed first +- [x] Add Color Customizations to make the extension your own +- ( Thanks to [m0hithreddy@github](https://github.com/m0hithreddy) for above features ) -Whats new in v20 and above: -• [x] Completely revamped whole codebase -• [x] Add Show Upload First button to show upload speed first -• [x] Add Color Customizations to make the extension your own -• ( Thanks to m0hithreddy@github for above features ) -• [x] Add Change Font to Monospace option -• [x] Add Hide When Disconnected option -Whats new in v11 and above: -• [x] Add Preference Dialog with lots of default customization. -• [x] Add Lock Mouse Actions button in Preferences to disable any mouse click behaviour. -• [x] Add Position menu(with Advanced option) to pinpoint where to place the indicator on the Panel. -• [x] Add Refresh time field by which you can change refresh time value between 1.0 sec to 10.0 sec. +#### Whats new in v11 and above: +- [x] Add Preference Dialog with lots of default customization. +- [x] Add Lock Mouse Actions button in Preferences to disable any mouse click behaviour. +- [x] Add Position menu(with Advanced option) to pinpoint where to place the indicator on the Panel. +- [x] Add Refresh time field by which you can change refresh time value between 1.0 sec to 10.0 sec. -Feature Highlights : -• [x] Adjustable Refresh time -• [x] Supports GNOME SHELL 3.38 and Backwards compatible -• [x] Changes width accordingly / dynamic width -• [x] More cleaner ui -• [x] Changed Kbps to kbp/s -• [x] New sigma icon that respects vertical alignment(old: ∑ , new: Σ) -• [x] New Speed up and down icons for mode 3 & 4. (old: ↓ and ↑ , new: and ) -• [x] Add space b/w speed and their units -• [x] Human readable stylesheet // used min-width and removed repetitive codes -• [x] Used ES6 classes for less code and more efficeint javascript -• [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. -• [x] Add Preference Menu to customize the whole extension as you need +#### Feature Highlights : +- [x] Adjustable Refresh time +- [x] Supports GNOME SHELL 3.38 and Backwards compatible +- [x] Changes width accordingly / dynamic width +- [x] More cleaner ui +- [x] Changed Kbps to kbp/s +- [x] New sigma icon that respects vertical alignment(old: ∑ , new: Σ) +- [x] New Speed up and down icons for mode 3 & 4. (old: ↓ and ↑ , new: 🡳 and 🡱) +- [x] Add space b/w speed and their units +- [x] Human readable stylesheet // used min-width and removed repetitive codes +- [x] Used ES6 classes for less code and more efficeint javascript +- [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. +- [x] Add Preference Menu to customize the whole extension as you need -Changelog Till v10 : -• [x] Easy Vertical Alignment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuously for four times to enable/disable vertical align or simply go to preferences tab for this extension, -Tip : You can also change font size in vertical alignment to your liking by middle mouse click on the speed -• [x] Easy Switch to Old Icons of simplenetspeed extension, go to preferences tab for this extension to enable/disable old icons. +#### Changelog Till v10 : +- [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode +- [x] Easy Vertical Alignment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuously for four times to enable/disable vertical align or simply go to preferences tab for this extension, +***Tip : You can also change font size in vertical alignment to your liking by middle mouse click on the speed*** +- [x] Easy Switch to Old Icons of simplenetspeed extension, go to preferences tab for this extension to enable/disable old icons. -if you face any issues you can file an issue here +if you face any **issues** you can **[file an issue](https://github.com/prateekmedia/netspeedsimplified/issues)** with images or error codes -Modes available: -1. Total net speed in bits per second -2. Total net speed in Bytes per second -3. Up & down speed in bits per second -4. Up & down speed in Bytes per second -5. Total of downloaded in Bytes (Right click to reset counter) - -Mouse Events: -• Left click to change modes -• Right click to toggle total data usage visibility, Right click on total data usage mode in reset counter -• Right click continuously for 4 times in any mode to toggle vertical alignment -• Middle click to change font size +> **Left click to change modes**, -Installing Manually: -• Please Star this repository and mark it as Watch if you want to know about latest updates. -Quick install +*Modes available:* +1. Total net speed in bits per second +1. Total net speed in Bytes per second +1. Up & down speed in bits per second +1. Up & down speed in Bytes per second +1. Total of downloaded in Bytes (Right click to reset counter) -The extension can be quicky installed as following: +> **Right click to toggle total data usage visibility, Right click on total data usage mode in reset counter**, +

After right click =>

-$ /bin/bash -c "$(curl -sL https://git.io/Jk28b)" +> **Right click continuously for 4 times in any mode to toggle vertical alignment** +> **Middle click to change font size** +

Installing Manually:

-Installing using Make +* Please Star this repository and mark it as Watch if you want to know about latest updates. + +## Quick install +The extension can be quicky installed as following: -The Extension can be managed using Make build system as follows -• -Getting the sources from repository + $ /bin/bash -c "$(curl -sL https://git.io/Jk28b)" -$ git clone https://github.com/prateekmedia/netspeedsimplified.git +## Installing using Make +The Extension can be managed using Make build system as follows +* Getting the sources from repository -• -Running make (install) + $ git clone https://github.com/prateekmedia/netspeedsimplified.git -$ make install +* Running make (install) + $ make install +Likewise extension can be removed +```$ make remove``` +OR reinstalled +```$ make reinstall``` -Likewise extension can be removed - $ make remove -OR reinstalled - $ make reinstall -You can manage the extension using extensions app or website or Using Gnome tweaks tool's extension tab \ No newline at end of file +You can manage the extension using extensions app or [website](https://extensions.gnome.org/local) or Using Gnome tweaks tool's extension tab From ea49e97ea20f1964a6c55fd7f0ac6a396f3d08ca Mon Sep 17 00:00:00 2001 From: Prateek SU Date: Thu, 3 Dec 2020 10:38:56 +0530 Subject: [PATCH 237/344] Moving images to their folder --- images/icon.png | Bin 0 -> 224347 bytes screenshoot.png => images/screenshoot.png | Bin 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/icon.png rename screenshoot.png => images/screenshoot.png (100%) diff --git a/images/icon.png b/images/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..aff26243061b461903c1f61c4aa3f2590fd4774b GIT binary patch literal 224347 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

bB01Dv`F3mOuLEJuD)GpyD(2)My=h+ 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

-F&0qXR<4!8 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�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 PxJye-U$sv8dBpz!^d}QF literal 0 HcmV?d00001 diff --git a/screenshoot.png b/images/screenshoot.png similarity index 100% rename from screenshoot.png rename to images/screenshoot.png From ecafac198bbf0dcac272ec5213fe03ceacae883c Mon Sep 17 00:00:00 2001 From: Prateek SU Date: Thu, 3 Dec 2020 10:43:41 +0530 Subject: [PATCH 238/344] Update images references --- Makefile | 1 - README.md | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 71f944b..3afe354 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,6 @@ install: convenience.js extension.js metadata.json prefs.js stylesheet.css schem #Optional files cp LICENSE ${EXT_HOME} 2>/dev/null || true cp README.md ${EXT_HOME} 2>/dev/null || true - cp screenshoot.png ${EXT_HOME} 2>/dev/null || true cp schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml ${EXT_HOME}/schemas 2>/dev/null || true #Reloading shell; Sending SIGHUP signal to gnome-shell (equivalent to alt + f2 ; r ; enter) diff --git a/README.md b/README.md index e18c3d6..3f42fc5 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -

NSS Logo

+

NSS Logo

Net speed Simplified

Gnome extension to show network speed
@@ -6,7 +6,7 @@ > Forked from : [biji@gnome/simplenetspeed](https://github.com/biji/simplenetspeed) -

Screenshot +

Screenshot *Screenshots* From c1cac3194c1cfb4d33b2dd8d6c323539c1d3404f Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 3 Dec 2020 07:18:11 +0000 Subject: [PATCH 239/344] Custom Font name and add entry in prefs --- Makefile | 1 + README.md | 103 ++++++++---------- extension.js | 50 ++++++--- metadata.json | 56 +++++----- prefs.js | 41 ++++++- quick-install.sh | 3 + schemas/gschemas.compiled | Bin 1307 -> 1467 bytes ....extensions.netspeedsimplified.gschema.xml | 9 ++ screenshoot.png | Bin 0 -> 81751 bytes stylesheet.css | 5 +- 10 files changed, 156 insertions(+), 112 deletions(-) create mode 100644 screenshoot.png diff --git a/Makefile b/Makefile index 3afe354..71f944b 100644 --- a/Makefile +++ b/Makefile @@ -16,6 +16,7 @@ install: convenience.js extension.js metadata.json prefs.js stylesheet.css schem #Optional files cp LICENSE ${EXT_HOME} 2>/dev/null || true cp README.md ${EXT_HOME} 2>/dev/null || true + cp screenshoot.png ${EXT_HOME} 2>/dev/null || true cp schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml ${EXT_HOME}/schemas 2>/dev/null || true #Reloading shell; Sending SIGHUP signal to gnome-shell (equivalent to alt + f2 ; r ; enter) diff --git a/README.md b/README.md index 3f42fc5..70fec49 100644 --- a/README.md +++ b/README.md @@ -1,91 +1,74 @@ -

NSS Logo

+

NSS Logo

Net speed Simplified

-
Gnome extension to show network speed
+

A Net Speed extension With Loads of Customization.

[Get it on GNOME Extensions](https://extensions.gnome.org/extension/3724/net-speed-simplified/) or [Install Manually](#installing-manually) > Forked from : [biji@gnome/simplenetspeed](https://github.com/biji/simplenetspeed) -

Screenshot +

Screenshot -*Screenshots* +*Screenshots*

- *Above Screenshot is with Adwaita Dark theme*

- -**Current Version** : ***21*** +**Current Version** : ***22*** ***Tested on GNOME 3.36 and 3.38*** -#### Whats new in v20 and above: -- [x] Completely revamped whole codebase -- [x] Add Show Upload First button to show upload speed first -- [x] Add Color Customizations to make the extension your own -- ( Thanks to [m0hithreddy@github](https://github.com/m0hithreddy) for above features ) - - -#### Whats new in v11 and above: -- [x] Add Preference Dialog with lots of default customization. -- [x] Add Lock Mouse Actions button in Preferences to disable any mouse click behaviour. -- [x] Add Position menu(with Advanced option) to pinpoint where to place the indicator on the Panel. -- [x] Add Refresh time field by which you can change refresh time value between 1.0 sec to 10.0 sec. - -#### Feature Highlights : -- [x] Adjustable Refresh time +#### What's new +- [x] Completely revamped whole codebase PR#4 +- [x] Add Show Upload First button to show upload speed first PR#2 +- [x] Add Color Customizations to make the extension your own PR#7 +- [x] Add *Use Custom Font* button in [Preference](#Feature-Highlights-for-Preferences) +- [x] Add *Hide when Disconnected* button in [Preference](#Feature-Highlights-for-Preferences) +- [x] Add *Use Shorten Units* button in [Preference](#Feature-Highlights-for-Preferences) + +#### Features +- [x] Cleaner UI +- [x] Adjustable Refresh rate - [x] Supports GNOME SHELL 3.38 and Backwards compatible -- [x] Changes width accordingly / dynamic width -- [x] More cleaner ui -- [x] Changed Kbps to kbp/s -- [x] New sigma icon that respects vertical alignment(old: ∑ , new: Σ) -- [x] New Speed up and down icons for mode 3 & 4. (old: ↓ and ↑ , new: 🡳 and 🡱) -- [x] Add space b/w speed and their units -- [x] Human readable stylesheet // used min-width and removed repetitive codes -- [x] Used ES6 classes for less code and more efficeint javascript -- [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. -- [x] Add Preference Menu to customize the whole extension as you need - -#### Changelog Till v10 : -- [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode -- [x] Easy Vertical Alignment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuously for four times to enable/disable vertical align or simply go to preferences tab for this extension, -***Tip : You can also change font size in vertical alignment to your liking by middle mouse click on the speed*** -- [x] Easy Switch to Old Icons of simplenetspeed extension, go to preferences tab for this extension to enable/disable old icons. +- [x] Add [Preference](#Feature-Highlights-for-Preferences) Menu for extension customization +- [x] Add *Vertical Alignment* Support +- [x] Add *Two Icon sets* for Indicators -if you face any **issues** you can **[file an issue](https://github.com/prateekmedia/netspeedsimplified/issues)** with images or error codes +#### Feature Highlights for Preferences +- [x] Add *Lock Mouse Actions* button to Freeze [Mouse Events](#mouse-events) +- [x] Add *Advance Position* menu to pinpoint where to place the indicator on the Panel. +- [x] Add *Refresh time* field by which you can change refresh rate value between 1.0 sec to 10.0 sec. -> **Left click to change modes**, +If you faced an **issue** then you can **[file an issue here](https://github.com/prateekmedia/netspeedsimplified/issues)** + +#### Modes +- Total net speed in bits per second +- Total net speed in Bytes per second +- Up & down speed in bits per second +- Up & down speed in Bytes per second +- Total of downloaded in Bytes (Right click to reset counter) -*Modes available:* -1. Total net speed in bits per second -1. Total net speed in Bytes per second -1. Up & down speed in bits per second -1. Up & down speed in Bytes per second -1. Total of downloaded in Bytes (Right click to reset counter) +#### Mouse Events +- **Left click to change [modes](#modes)** -> **Right click to toggle total data usage visibility, Right click on total data usage mode in reset counter**, -

After right click =>

+- **Right click to toggle total data usage visibility** -> **Right click continuously for 4 times in any mode to toggle vertical alignment** +- **Right click continuously for 4 times in any mode to toggle vertical alignment** -> **Middle click to change font size** +- **Middle click to change font size** -

Installing Manually:

-* Please Star this repository and mark it as Watch if you want to know about latest updates. +

Installing Manually

-## Quick install -The extension can be quicky installed as following: +### Quick install +For quick install use below command: $ /bin/bash -c "$(curl -sL https://git.io/Jk28b)" -## Installing using Make -The Extension can be managed using Make build system as follows - -* Getting the sources from repository +### Installing using Make +* Step 1 : Getting the sources from repository $ git clone https://github.com/prateekmedia/netspeedsimplified.git -* Running make (install) +* Step 2 : Running make (install) $ make install @@ -95,4 +78,4 @@ OR reinstalled ```$ make reinstall``` -You can manage the extension using extensions app or [website](https://extensions.gnome.org/local) or Using Gnome tweaks tool's extension tab +You can manage the extension using extensions app or [website](https://extensions.gnome.org/local) diff --git a/extension.js b/extension.js index 6cb6d35..fc73a7a 100644 --- a/extension.js +++ b/extension.js @@ -12,12 +12,10 @@ const Clutter = imports.gi.Clutter, rCConst=4; //Right Click 4 times to toggle Vertical Alignment let settings, timeout, - spaCe, lastCount = 0, lastSpeed = 0, lastCountUp = 0, resetNextCount=false, resetCount=0, - newLine, h=8, tTime=0; - -var extRaw; + hideCount=8, + B_UNITS; // Settings var crStng; //Initialized in enable() @@ -32,14 +30,19 @@ function fetchSettings() { chooseIconSet: settings.get_int('chooseiconset'), revIndicator: settings.get_boolean('reverseindicators'), lckMuseAct: settings.get_boolean('lockmouseactions'), + hideInd: settings.get_boolean('hideindicator'), + shortenUnits: settings.get_boolean('shortenunits'), nsPos: settings.get_int('wpos'), nsPosAdv: settings.get_int('wposext'), + cusFont: settings.get_string('customfont'), usColor: settings.get_string('uscolor'), dsColor: settings.get_string('dscolor'), tsColor: settings.get_string('tscolor'), tdColor: settings.get_string('tdcolor') }; + B_UNITS = (crStng.shortenUnits) ? ['B', 'K', 'M', 'G', 'T', 'P', 'E', 'Z'] : [' B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB'] ; + initNs(); } @@ -52,7 +55,7 @@ function pushSettings() { initNs(); } -// Helper Functions +//Helper Functions function DIcons(iNum) { return [ ["🡳","🡱","Σ"] , ["↓","↑","∑"] ][crStng.chooseIconSet][iNum]; } @@ -67,7 +70,7 @@ function nsPosAdv() { function speedToString(amount, rMode = 0) { - let speed_map = [" B", "KB", "MB", "GB"].map( + let speed_map = B_UNITS.map( (rMode == 1 && (crStng.mode == 1 || crStng.mode == 3 || crStng.mode == 4)) ? v => v : //KB (rMode == 1 && (crStng.mode == 0 || crStng.mode == 2)) ? v => v.toLowerCase() : //kb (crStng.mode == 0 || crStng.mode == 2) ? v => v.toLowerCase() + "/s" : //kb/s @@ -85,6 +88,7 @@ function speedToString(amount, rMode = 0) { let digits = (crStng.mode==4 || rMode !=0) ? 2 /* For floats like 21.11 and total speed mode */ : 1 //For floats like 21.2 let spaceNum = 3 - Math.ceil(Math.log10(amount +1)); + spaceNum <0 ? spaceNum = 0 : null return " ".repeat(spaceNum) + amount.toFixed(digits) + " " + speed_map[unit]; } @@ -100,28 +104,28 @@ function initNsLabels() { text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "color: " + crStng.usColor + style: "color: " + crStng.usColor + "; font-family: " + crStng.cusFont }); dsLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "color: " + crStng.dsColor + style: "color: " + crStng.dsColor + "; font-family: " + crStng.cusFont }); tsLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "color: " + crStng.tsColor + style: "color: " + crStng.tsColor + "; font-family: " + crStng.cusFont }); tdLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "color: " + crStng.tdColor + style: "color: " + crStng.tdColor + "; font-family: " + crStng.cusFont }); usIcon = new St.Label({ text: DIcons(1), @@ -165,7 +169,7 @@ var nsButton = null, nsActor = null, nsLayout = null; function initNs() { //Destroy the existing button. - nsButton != null ? nsButton.destroy() : null; + nsDestroy(); //Initialize component Labels initNsLabels(); @@ -227,6 +231,11 @@ function initNs() { Main.panel.addToStatusArea(ButtonName, nsButton, nsPosAdv(), nsPos()); } +function nsDestroy() { + nsButton != null ? nsButton.destroy() : null + nsButton = null; +} + // Mouse Event Handler var startTime = null, rClickCount = 0; @@ -309,15 +318,25 @@ function parseStat() { resetCount = count; } - (speed || speedUp) ? h = 0 : h++ + (speed || speedUp) ? hideCount = 0 : hideCount <= 8 ? hideCount++ : null + + if(hideCount<=8) { + nsButton == null ? initNs() : null - if(h<=8) { updateNsLabels(" " + speedToString(speedUp), " " + speedToString(speed - speedUp), " " + speedToString(speed), " " + speedToString(count - resetCount, 1)); } - else updateNsLabels('--', '--', '--', " " + speedToString(count - resetCount, 1)); + else { + if (crStng.hideInd) { + nsDestroy(); + } + else { + nsButton == null ? initNs() : null + updateNsLabels('--', '--', '--', speedToString(count - resetCount, 1)); + } + } lastCount = count; lastCountUp = countUp; @@ -351,7 +370,6 @@ function enable() { function disable() { Mainloop.source_remove(timeout); - nsButton.destroy(); - nsButton = null; + nsDestroy(); } diff --git a/metadata.json b/metadata.json index 7851c97..9a56912 100644 --- a/metadata.json +++ b/metadata.json @@ -1,30 +1,30 @@ { - "description": "Fork of Simple Net speed by bijignome \n\nTested on gnome 3.36 and 3.38\n\n+ Added Preference Menu with option to change refresh rate and more\n+ Now if you change something from preferences it will apply in real time.\n\nWhats New:\n Clean UI, Changeable refresh time, Fix repetitive code in stylesheet.css, \nRight Click to view total downloaded data in bits and bytes, Lesser Code Better Code,\n new Sigma and Up and down Arrow icons, dynamic width,\n used kb/s instead of Kbps, added spaces where needed,\n If you don't have active net connection for 12 seconds then this extension will show '--' instead of 0 B/s,\n Added vertical align support for dash to panel or big screen users(to use it just right click 4 time continuously on any mode to toggle vertical align), \nAdded old icons from simplenetspeed extension(to use it go to preferences and toggle Use old icons) and more coming\n\nLeft Click To change modes.\n\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up and down speed in bits per second\n4. Up and down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter\n\nRight Click To toggle visibility of Total Up and Down or Reset counter for 5th mode.\n\nRight Click four times continuously to toggle Vertical alignment\n\nMiddle Click to change font size.", - "name": "Net speed Simplified", - "shell-version": [ - "3.14", - "3.15", - "3.16", - "3.17", - "3.18", - "3.19", - "3.20", - "3.21", - "3.22", - "3.23", - "3.24", - "3.25", - "3.26", - "3.27", - "3.28", - "3.29", - "3.30", - "3.32", - "3.34", - "3.36", - "3.38" - ], - "url": "https://github.com/prateekmedia/netspeedsimplified", - "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 20 + "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n1☞ Completely revamped whole codebase PR#4 \n☞ Add Show Upload First button to show upload speed first PR#2 \n☞ Add Color Customizations to make the extension your own PR#7 \n☞ Add set custom Font Button in Preference \n☞ Add *Hide when Disconnected* button in Prefrence\n☞ Add *Use Shorten Units* button in Preference \n \nFeatures \n1. Cleaner UI \n2. Adjustable Refresh rate \n3. Supports GNOME SHELL 3.38 and Backwards compatible \n4. Add Preference \n5. Add Vertical Alignment Support \n6. Add Two Icon sets for Indicators \n Feature Highlights for Preferences \n1. Add Lock Mouse Actions button to Freeze Mouse Events \n2. Add Advance Position menu to pinpoint where to place the indicator on the Panel. \n3. Add Refresh time field by which you can change refresh rate value between 1.0 sec to 10.0 sec. \nModes \n- Total net speed in bits per second \n- Total net speed in Bytes per second \n- Up & down speed in bits per second \n- Up & down speed in Bytes per second \n- Total of downloaded in Bytes (Right click to reset counter) \n \nMouse Events \n- Left click to change modes \n- Right click to toggle total data usage visibility \n- Right click continuously for 4 times in any mode to toggle vertical alignment \n- Middle click to change font size", + "name": "Net speed Simplified", + "shell-version": [ + "3.14", + "3.15", + "3.16", + "3.17", + "3.18", + "3.19", + "3.20", + "3.21", + "3.22", + "3.23", + "3.24", + "3.25", + "3.26", + "3.27", + "3.28", + "3.29", + "3.30", + "3.32", + "3.34", + "3.36", + "3.38" + ], + "url": "https://github.com/prateekmedia/netspeedsimplified", + "uuid": "netspeedsimplified@prateekmedia.extension", + "version": 22 } diff --git a/prefs.js b/prefs.js index 7ea20ca..a21dcf6 100644 --- a/prefs.js +++ b/prefs.js @@ -137,11 +137,32 @@ Prefs.prototype = vbox.add(new Gtk.Separator({visible : true})); } - let frame = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, border_width: 10}); + function vBoxAddEntry(whichHbox, getLbl, getString, getTooTip = "", func){ + boolComp = (thset.get_string(getString) == thset.get_default_value(getString).unpack()); + getLbl = boolComp ? getLbl : + `${getLbl}` + tootext = boolComp ? "" : "The Value is Changed" + whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }); + whichVlue = new Gtk.Entry({text: thset.get_string(getString), tooltip_text: tootext, placeholder_text: "Press Enter to apply" }); + whichVlue.connect('activate', (widget) => { + thset.set_string(getString, widget.get_text()); + if (func != undefined){ func(widget.active); } + else { thset.set_boolean('restartextension' , true); } + }) + + whichHbox.pack_start(whichLbl, true, true, 0); + whichHbox.add(whichVlue); + + vbox.add(whichHbox); + vbox.add(new Gtk.Separator({visible : true})); + } + + let frame = new Gtk.ScrolledWindow(); let label = new Gtk.Label({ label: "General Settings", use_markup: true, xalign:0}); let vbox = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, margin_left: 20}); let mfooter = new Gtk.Label({ label: "Pro Tip : Hover over any Label To know more about it",use_markup: true, margin_top: 20}); + vbox.add(label); //For Position let hboxWPos = newGtkBox(); vBoxAddSeleCt("wpos", hboxWPos, "Position on the Panel", ["Right","Left","Center"], "Choose where to Place the extension on the Panel"); @@ -181,7 +202,19 @@ Prefs.prototype = //For Lock Mouse Actions let hboxLckMuseAct = newGtkBox(); vBoxAddTgglBtn(hboxLckMuseAct, "Lock Mouse Actions", "lockmouseactions", "Enabling it will Lock Mouse Actions"); - + + //For Hide When Disconnected + let hboxHideInd = newGtkBox(); + vBoxAddTgglBtn(hboxHideInd, "Hide When Disconnected", "hideindicator", "Enabling it will Hide Indicator when disconnected"); + + //For Shorten Units + let hboxShUni = newGtkBox(); + vBoxAddTgglBtn(hboxShUni, "Shorten Units", "shortenunits", "Enabling it will result in shorten units like K instead of KB"); + + //For Custom Font name + let hboxCustFont = newGtkBox(); + vBoxAddEntry(hboxCustFont, "Custom Font Name", "customfont", "Enter the font name you want, you can also write style here for all elements except indicators") + //Colors let hboxColor = newGtkBox(); function onColorToggle(widget){ @@ -215,10 +248,8 @@ Prefs.prototype = //Total Download Color let tdColorButton = newGtkBox(); vBoxAddColorButton(tdColorButton, "Total Download Color", "tdcolor", "Select the total download color"); - - frame.add(label); + vbox.add(mfooter); frame.add(vbox); - frame.add(mfooter); frame.show_all(); onColorToggle(thset.get_boolean("colortggle")); diff --git a/quick-install.sh b/quick-install.sh index 4d4f747..59415d4 100644 --- a/quick-install.sh +++ b/quick-install.sh @@ -5,6 +5,9 @@ set -x EXT_HOME=~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension PROJECT_HOME=https://raw.githubusercontent.com/prateekmedia/netspeedsimplified/main +#Remove Old files +rm -rf ${EXT_HOME} + #Create a directory structure mkdir -p ${EXT_HOME} mkdir -p ${EXT_HOME}/schemas diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index 46379c1bd5e93b89fc4e342e7b8ccaa60397cb07..de82611a5b7752b90516e109aa12192a61761373 100644 GIT binary patch literal 1467 zcma)6O=uHA7@gL}#QvG8g@PV>@UV+D@rUA}hxQ^B+mnY~G#GOg4qJl@k zTcP3)Sj65G4<4+FsCW`V3)+L|q1RrdAVQ&_zBkDxMJYP)^4`9g`R1FMZ!$cVi~L-u zMXmLK$E(_Ej!kf)TZmt1)xJ?PW&-}z?-REJ-K=fIk9X`{$SFQ*+&A@H%kr{>mHr z)Lrn?EkbkyuP$F{C8-=Otl5|`|5Q1^ouoZOp z)&vzM`0awv-UWSwai*%4YRca9RRLV>;zcHDS&m%+GZ`Yu2GhzmbZhM za6JipZ<2?0>bt?1&G!?zQ*NXhr=t)O4S8qEIqg-yvUtQ<^N6$N5oa5ZIQ#b_&I+L- zSLs}&>*K0%OkDk6=jI(9G=RT=2O!m2)sme*a!Na1wtTUmq^mHNO)-7o%i0*zMa?3Xn&}nW9ZqW zf+XtL$sp>IA)SKokcX&4$0Q1&4xXy-n|=GV0%_sf@7r&GznS06{$|gP`-$>nD;n2f z@I-*$AhEey65itjzL*g#5PAbJptZTApsxpd-@`{zQ zQ93roSXxt;GBm1Ik5pO75b?OY11Ye{sy|i89oj^UZZ9` ztzt$jfR}*Y=i|5OQ@6uk2EXRJzEAV?sp+qR*MLip)>r6L_rU)Q{tBFXarZiX>K6E$ z;DdWGSNrNU`qbUNbqSkJ}5_ zFwl`s7%Y;?l<%Dw9PB%?bvs@_gP4LcGcvI%@FN%LO%<%JR3bU0H61)B5)nqKI7F1y ziD4l8nhvGQNpI;)X@3b%c~?E93I${v>nFC^t&I%iyYejOO2-RLv)~=-yq6|#DmzwLYc27{vc-~a#s diff --git a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml index 1272de2..23d4adb 100644 --- a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml +++ b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml @@ -40,6 +40,15 @@ false + + true + + + false + + + "" + false diff --git a/screenshoot.png b/screenshoot.png new file mode 100644 index 0000000000000000000000000000000000000000..c4ff46180e56a4e82df2dd0817797e8a1639db57 GIT binary patch literal 81751 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%0DX4C-?*yr!#^+oxzYVMX( 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 Date: Thu, 3 Dec 2020 07:23:16 +0000 Subject: [PATCH 240/344] Revert "Custom Font name and add entry in prefs" This reverts commit c1cac3194c1cfb4d33b2dd8d6c323539c1d3404f. --- Makefile | 1 - README.md | 103 ++++++++++-------- extension.js | 50 +++------ metadata.json | 56 +++++----- prefs.js | 41 +------ quick-install.sh | 3 - schemas/gschemas.compiled | Bin 1467 -> 1307 bytes ....extensions.netspeedsimplified.gschema.xml | 9 -- screenshoot.png | Bin 81751 -> 0 bytes stylesheet.css | 5 +- 10 files changed, 112 insertions(+), 156 deletions(-) delete mode 100644 screenshoot.png diff --git a/Makefile b/Makefile index 71f944b..3afe354 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,6 @@ install: convenience.js extension.js metadata.json prefs.js stylesheet.css schem #Optional files cp LICENSE ${EXT_HOME} 2>/dev/null || true cp README.md ${EXT_HOME} 2>/dev/null || true - cp screenshoot.png ${EXT_HOME} 2>/dev/null || true cp schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml ${EXT_HOME}/schemas 2>/dev/null || true #Reloading shell; Sending SIGHUP signal to gnome-shell (equivalent to alt + f2 ; r ; enter) diff --git a/README.md b/README.md index 70fec49..3f42fc5 100644 --- a/README.md +++ b/README.md @@ -1,74 +1,91 @@ -

NSS Logo

+

NSS Logo

Net speed Simplified

-

A Net Speed extension With Loads of Customization.

+
Gnome extension to show network speed
[Get it on GNOME Extensions](https://extensions.gnome.org/extension/3724/net-speed-simplified/) or [Install Manually](#installing-manually) > Forked from : [biji@gnome/simplenetspeed](https://github.com/biji/simplenetspeed) -

Screenshot +

Screenshot -*Screenshots*

+*Screenshots* -**Current Version** : ***22*** + *Above Screenshot is with Adwaita Dark theme*

+ +**Current Version** : ***21*** ***Tested on GNOME 3.36 and 3.38*** -#### What's new -- [x] Completely revamped whole codebase PR#4 -- [x] Add Show Upload First button to show upload speed first PR#2 -- [x] Add Color Customizations to make the extension your own PR#7 -- [x] Add *Use Custom Font* button in [Preference](#Feature-Highlights-for-Preferences) -- [x] Add *Hide when Disconnected* button in [Preference](#Feature-Highlights-for-Preferences) -- [x] Add *Use Shorten Units* button in [Preference](#Feature-Highlights-for-Preferences) - -#### Features -- [x] Cleaner UI -- [x] Adjustable Refresh rate +#### Whats new in v20 and above: +- [x] Completely revamped whole codebase +- [x] Add Show Upload First button to show upload speed first +- [x] Add Color Customizations to make the extension your own +- ( Thanks to [m0hithreddy@github](https://github.com/m0hithreddy) for above features ) + + +#### Whats new in v11 and above: +- [x] Add Preference Dialog with lots of default customization. +- [x] Add Lock Mouse Actions button in Preferences to disable any mouse click behaviour. +- [x] Add Position menu(with Advanced option) to pinpoint where to place the indicator on the Panel. +- [x] Add Refresh time field by which you can change refresh time value between 1.0 sec to 10.0 sec. + +#### Feature Highlights : +- [x] Adjustable Refresh time - [x] Supports GNOME SHELL 3.38 and Backwards compatible -- [x] Add [Preference](#Feature-Highlights-for-Preferences) Menu for extension customization -- [x] Add *Vertical Alignment* Support -- [x] Add *Two Icon sets* for Indicators +- [x] Changes width accordingly / dynamic width +- [x] More cleaner ui +- [x] Changed Kbps to kbp/s +- [x] New sigma icon that respects vertical alignment(old: ∑ , new: Σ) +- [x] New Speed up and down icons for mode 3 & 4. (old: ↓ and ↑ , new: 🡳 and 🡱) +- [x] Add space b/w speed and their units +- [x] Human readable stylesheet // used min-width and removed repetitive codes +- [x] Used ES6 classes for less code and more efficeint javascript +- [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. +- [x] Add Preference Menu to customize the whole extension as you need + +#### Changelog Till v10 : +- [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode +- [x] Easy Vertical Alignment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuously for four times to enable/disable vertical align or simply go to preferences tab for this extension, +***Tip : You can also change font size in vertical alignment to your liking by middle mouse click on the speed*** +- [x] Easy Switch to Old Icons of simplenetspeed extension, go to preferences tab for this extension to enable/disable old icons. -#### Feature Highlights for Preferences -- [x] Add *Lock Mouse Actions* button to Freeze [Mouse Events](#mouse-events) -- [x] Add *Advance Position* menu to pinpoint where to place the indicator on the Panel. -- [x] Add *Refresh time* field by which you can change refresh rate value between 1.0 sec to 10.0 sec. +if you face any **issues** you can **[file an issue](https://github.com/prateekmedia/netspeedsimplified/issues)** with images or error codes +> **Left click to change modes**, -If you faced an **issue** then you can **[file an issue here](https://github.com/prateekmedia/netspeedsimplified/issues)** - -#### Modes -- Total net speed in bits per second -- Total net speed in Bytes per second -- Up & down speed in bits per second -- Up & down speed in Bytes per second -- Total of downloaded in Bytes (Right click to reset counter) -#### Mouse Events -- **Left click to change [modes](#modes)** +*Modes available:* +1. Total net speed in bits per second +1. Total net speed in Bytes per second +1. Up & down speed in bits per second +1. Up & down speed in Bytes per second +1. Total of downloaded in Bytes (Right click to reset counter) -- **Right click to toggle total data usage visibility** +> **Right click to toggle total data usage visibility, Right click on total data usage mode in reset counter**, +

After right click =>

-- **Right click continuously for 4 times in any mode to toggle vertical alignment** +> **Right click continuously for 4 times in any mode to toggle vertical alignment** -- **Middle click to change font size** +> **Middle click to change font size** +

Installing Manually:

-

Installing Manually

+* Please Star this repository and mark it as Watch if you want to know about latest updates. -### Quick install -For quick install use below command: +## Quick install +The extension can be quicky installed as following: $ /bin/bash -c "$(curl -sL https://git.io/Jk28b)" -### Installing using Make -* Step 1 : Getting the sources from repository +## Installing using Make +The Extension can be managed using Make build system as follows + +* Getting the sources from repository $ git clone https://github.com/prateekmedia/netspeedsimplified.git -* Step 2 : Running make (install) +* Running make (install) $ make install @@ -78,4 +95,4 @@ OR reinstalled ```$ make reinstall``` -You can manage the extension using extensions app or [website](https://extensions.gnome.org/local) +You can manage the extension using extensions app or [website](https://extensions.gnome.org/local) or Using Gnome tweaks tool's extension tab diff --git a/extension.js b/extension.js index fc73a7a..6cb6d35 100644 --- a/extension.js +++ b/extension.js @@ -12,10 +12,12 @@ const Clutter = imports.gi.Clutter, rCConst=4; //Right Click 4 times to toggle Vertical Alignment let settings, timeout, + spaCe, lastCount = 0, lastSpeed = 0, lastCountUp = 0, resetNextCount=false, resetCount=0, - hideCount=8, - B_UNITS; + newLine, h=8, tTime=0; + +var extRaw; // Settings var crStng; //Initialized in enable() @@ -30,19 +32,14 @@ function fetchSettings() { chooseIconSet: settings.get_int('chooseiconset'), revIndicator: settings.get_boolean('reverseindicators'), lckMuseAct: settings.get_boolean('lockmouseactions'), - hideInd: settings.get_boolean('hideindicator'), - shortenUnits: settings.get_boolean('shortenunits'), nsPos: settings.get_int('wpos'), nsPosAdv: settings.get_int('wposext'), - cusFont: settings.get_string('customfont'), usColor: settings.get_string('uscolor'), dsColor: settings.get_string('dscolor'), tsColor: settings.get_string('tscolor'), tdColor: settings.get_string('tdcolor') }; - B_UNITS = (crStng.shortenUnits) ? ['B', 'K', 'M', 'G', 'T', 'P', 'E', 'Z'] : [' B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB'] ; - initNs(); } @@ -55,7 +52,7 @@ function pushSettings() { initNs(); } -//Helper Functions +// Helper Functions function DIcons(iNum) { return [ ["🡳","🡱","Σ"] , ["↓","↑","∑"] ][crStng.chooseIconSet][iNum]; } @@ -70,7 +67,7 @@ function nsPosAdv() { function speedToString(amount, rMode = 0) { - let speed_map = B_UNITS.map( + let speed_map = [" B", "KB", "MB", "GB"].map( (rMode == 1 && (crStng.mode == 1 || crStng.mode == 3 || crStng.mode == 4)) ? v => v : //KB (rMode == 1 && (crStng.mode == 0 || crStng.mode == 2)) ? v => v.toLowerCase() : //kb (crStng.mode == 0 || crStng.mode == 2) ? v => v.toLowerCase() + "/s" : //kb/s @@ -88,7 +85,6 @@ function speedToString(amount, rMode = 0) { let digits = (crStng.mode==4 || rMode !=0) ? 2 /* For floats like 21.11 and total speed mode */ : 1 //For floats like 21.2 let spaceNum = 3 - Math.ceil(Math.log10(amount +1)); - spaceNum <0 ? spaceNum = 0 : null return " ".repeat(spaceNum) + amount.toFixed(digits) + " " + speed_map[unit]; } @@ -104,28 +100,28 @@ function initNsLabels() { text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "color: " + crStng.usColor + "; font-family: " + crStng.cusFont + style: "color: " + crStng.usColor }); dsLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "color: " + crStng.dsColor + "; font-family: " + crStng.cusFont + style: "color: " + crStng.dsColor }); tsLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "color: " + crStng.tsColor + "; font-family: " + crStng.cusFont + style: "color: " + crStng.tsColor }); tdLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "color: " + crStng.tdColor + "; font-family: " + crStng.cusFont + style: "color: " + crStng.tdColor }); usIcon = new St.Label({ text: DIcons(1), @@ -169,7 +165,7 @@ var nsButton = null, nsActor = null, nsLayout = null; function initNs() { //Destroy the existing button. - nsDestroy(); + nsButton != null ? nsButton.destroy() : null; //Initialize component Labels initNsLabels(); @@ -231,11 +227,6 @@ function initNs() { Main.panel.addToStatusArea(ButtonName, nsButton, nsPosAdv(), nsPos()); } -function nsDestroy() { - nsButton != null ? nsButton.destroy() : null - nsButton = null; -} - // Mouse Event Handler var startTime = null, rClickCount = 0; @@ -318,25 +309,15 @@ function parseStat() { resetCount = count; } - (speed || speedUp) ? hideCount = 0 : hideCount <= 8 ? hideCount++ : null - - if(hideCount<=8) { - nsButton == null ? initNs() : null + (speed || speedUp) ? h = 0 : h++ + if(h<=8) { updateNsLabels(" " + speedToString(speedUp), " " + speedToString(speed - speedUp), " " + speedToString(speed), " " + speedToString(count - resetCount, 1)); } - else { - if (crStng.hideInd) { - nsDestroy(); - } - else { - nsButton == null ? initNs() : null - updateNsLabels('--', '--', '--', speedToString(count - resetCount, 1)); - } - } + else updateNsLabels('--', '--', '--', " " + speedToString(count - resetCount, 1)); lastCount = count; lastCountUp = countUp; @@ -370,6 +351,7 @@ function enable() { function disable() { Mainloop.source_remove(timeout); - nsDestroy(); + nsButton.destroy(); + nsButton = null; } diff --git a/metadata.json b/metadata.json index 9a56912..7851c97 100644 --- a/metadata.json +++ b/metadata.json @@ -1,30 +1,30 @@ { - "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n1☞ Completely revamped whole codebase PR#4 \n☞ Add Show Upload First button to show upload speed first PR#2 \n☞ Add Color Customizations to make the extension your own PR#7 \n☞ Add set custom Font Button in Preference \n☞ Add *Hide when Disconnected* button in Prefrence\n☞ Add *Use Shorten Units* button in Preference \n \nFeatures \n1. Cleaner UI \n2. Adjustable Refresh rate \n3. Supports GNOME SHELL 3.38 and Backwards compatible \n4. Add Preference \n5. Add Vertical Alignment Support \n6. Add Two Icon sets for Indicators \n Feature Highlights for Preferences \n1. Add Lock Mouse Actions button to Freeze Mouse Events \n2. Add Advance Position menu to pinpoint where to place the indicator on the Panel. \n3. Add Refresh time field by which you can change refresh rate value between 1.0 sec to 10.0 sec. \nModes \n- Total net speed in bits per second \n- Total net speed in Bytes per second \n- Up & down speed in bits per second \n- Up & down speed in Bytes per second \n- Total of downloaded in Bytes (Right click to reset counter) \n \nMouse Events \n- Left click to change modes \n- Right click to toggle total data usage visibility \n- Right click continuously for 4 times in any mode to toggle vertical alignment \n- Middle click to change font size", - "name": "Net speed Simplified", - "shell-version": [ - "3.14", - "3.15", - "3.16", - "3.17", - "3.18", - "3.19", - "3.20", - "3.21", - "3.22", - "3.23", - "3.24", - "3.25", - "3.26", - "3.27", - "3.28", - "3.29", - "3.30", - "3.32", - "3.34", - "3.36", - "3.38" - ], - "url": "https://github.com/prateekmedia/netspeedsimplified", - "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 22 + "description": "Fork of Simple Net speed by bijignome \n\nTested on gnome 3.36 and 3.38\n\n+ Added Preference Menu with option to change refresh rate and more\n+ Now if you change something from preferences it will apply in real time.\n\nWhats New:\n Clean UI, Changeable refresh time, Fix repetitive code in stylesheet.css, \nRight Click to view total downloaded data in bits and bytes, Lesser Code Better Code,\n new Sigma and Up and down Arrow icons, dynamic width,\n used kb/s instead of Kbps, added spaces where needed,\n If you don't have active net connection for 12 seconds then this extension will show '--' instead of 0 B/s,\n Added vertical align support for dash to panel or big screen users(to use it just right click 4 time continuously on any mode to toggle vertical align), \nAdded old icons from simplenetspeed extension(to use it go to preferences and toggle Use old icons) and more coming\n\nLeft Click To change modes.\n\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up and down speed in bits per second\n4. Up and down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter\n\nRight Click To toggle visibility of Total Up and Down or Reset counter for 5th mode.\n\nRight Click four times continuously to toggle Vertical alignment\n\nMiddle Click to change font size.", + "name": "Net speed Simplified", + "shell-version": [ + "3.14", + "3.15", + "3.16", + "3.17", + "3.18", + "3.19", + "3.20", + "3.21", + "3.22", + "3.23", + "3.24", + "3.25", + "3.26", + "3.27", + "3.28", + "3.29", + "3.30", + "3.32", + "3.34", + "3.36", + "3.38" + ], + "url": "https://github.com/prateekmedia/netspeedsimplified", + "uuid": "netspeedsimplified@prateekmedia.extension", + "version": 20 } diff --git a/prefs.js b/prefs.js index a21dcf6..7ea20ca 100644 --- a/prefs.js +++ b/prefs.js @@ -137,32 +137,11 @@ Prefs.prototype = vbox.add(new Gtk.Separator({visible : true})); } - function vBoxAddEntry(whichHbox, getLbl, getString, getTooTip = "", func){ - boolComp = (thset.get_string(getString) == thset.get_default_value(getString).unpack()); - getLbl = boolComp ? getLbl : - `${getLbl}` - tootext = boolComp ? "" : "The Value is Changed" - whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }); - whichVlue = new Gtk.Entry({text: thset.get_string(getString), tooltip_text: tootext, placeholder_text: "Press Enter to apply" }); - whichVlue.connect('activate', (widget) => { - thset.set_string(getString, widget.get_text()); - if (func != undefined){ func(widget.active); } - else { thset.set_boolean('restartextension' , true); } - }) - - whichHbox.pack_start(whichLbl, true, true, 0); - whichHbox.add(whichVlue); - - vbox.add(whichHbox); - vbox.add(new Gtk.Separator({visible : true})); - } - - let frame = new Gtk.ScrolledWindow(); + let frame = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, border_width: 10}); let label = new Gtk.Label({ label: "General Settings", use_markup: true, xalign:0}); let vbox = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, margin_left: 20}); let mfooter = new Gtk.Label({ label: "Pro Tip : Hover over any Label To know more about it",use_markup: true, margin_top: 20}); - vbox.add(label); //For Position let hboxWPos = newGtkBox(); vBoxAddSeleCt("wpos", hboxWPos, "Position on the Panel", ["Right","Left","Center"], "Choose where to Place the extension on the Panel"); @@ -202,19 +181,7 @@ Prefs.prototype = //For Lock Mouse Actions let hboxLckMuseAct = newGtkBox(); vBoxAddTgglBtn(hboxLckMuseAct, "Lock Mouse Actions", "lockmouseactions", "Enabling it will Lock Mouse Actions"); - - //For Hide When Disconnected - let hboxHideInd = newGtkBox(); - vBoxAddTgglBtn(hboxHideInd, "Hide When Disconnected", "hideindicator", "Enabling it will Hide Indicator when disconnected"); - - //For Shorten Units - let hboxShUni = newGtkBox(); - vBoxAddTgglBtn(hboxShUni, "Shorten Units", "shortenunits", "Enabling it will result in shorten units like K instead of KB"); - - //For Custom Font name - let hboxCustFont = newGtkBox(); - vBoxAddEntry(hboxCustFont, "Custom Font Name", "customfont", "Enter the font name you want, you can also write style here for all elements except indicators") - + //Colors let hboxColor = newGtkBox(); function onColorToggle(widget){ @@ -248,8 +215,10 @@ Prefs.prototype = //Total Download Color let tdColorButton = newGtkBox(); vBoxAddColorButton(tdColorButton, "Total Download Color", "tdcolor", "Select the total download color"); - vbox.add(mfooter); + + frame.add(label); frame.add(vbox); + frame.add(mfooter); frame.show_all(); onColorToggle(thset.get_boolean("colortggle")); diff --git a/quick-install.sh b/quick-install.sh index 59415d4..4d4f747 100644 --- a/quick-install.sh +++ b/quick-install.sh @@ -5,9 +5,6 @@ set -x EXT_HOME=~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension PROJECT_HOME=https://raw.githubusercontent.com/prateekmedia/netspeedsimplified/main -#Remove Old files -rm -rf ${EXT_HOME} - #Create a directory structure mkdir -p ${EXT_HOME} mkdir -p ${EXT_HOME}/schemas diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index de82611a5b7752b90516e109aa12192a61761373..46379c1bd5e93b89fc4e342e7b8ccaa60397cb07 100644 GIT binary patch literal 1307 zcma)6Pe>I(9G=RT=2O!m2)sme*a!Na1wtTUmq^mHNO)-7o%i0*zMa?3Xn&}nW9ZqW zf+XtL$sp>IA)SKokcX&4$0Q1&4xXy-n|=GV0%_sf@7r&GznS06{$|gP`-$>nD;n2f z@I-*$AhEey65itjzL*g#5PAbJptZTApsxpd-@`{zQ zQ93roSXxt;GBm1Ik5pO75b?OY11Ye{sy|i89oj^UZZ9` ztzt$jfR}*Y=i|5OQ@6uk2EXRJzEAV?sp+qR*MLip)>r6L_rU)Q{tBFXarZiX>K6E$ z;DdWGSNrNU`qbUNbqSkJ}5_ zFwl`s7%Y;?l<%Dw9PB%?bvs@_gP4LcGcvI%@FN%LO%<%JR3bU0H61)B5)nqKI7F1y ziD4l8nhvGQNpI;)X@3b%c~?E93I${v>nFC^t&I%iyYejOO2-RLv)~=-yq6|#DmzwLYc27{vc-~a#s literal 1467 zcma)6O=uHA7@gL}#QvG8g@PV>@UV+D@rUA}hxQ^B+mnY~G#GOg4qJl@k zTcP3)Sj65G4<4+FsCW`V3)+L|q1RrdAVQ&_zBkDxMJYP)^4`9g`R1FMZ!$cVi~L-u zMXmLK$E(_Ej!kf)TZmt1)xJ?PW&-}z?-REJ-K=fIk9X`{$SFQ*+&A@H%kr{>mHr z)Lrn?EkbkyuP$F{C8-=Otl5|`|5Q1^ouoZOp z)&vzM`0awv-UWSwai*%4YRca9RRLV>;zcHDS&m%+GZ`Yu2GhzmbZhM za6JipZ<2?0>bt?1&G!?zQ*NXhr=t)O4S8qEIqg-yvUtQ<^N6$N5oa5ZIQ#b_&I+L- zSLs}&>*K0%OkDk6=j false - - true - - - false - - - "" - false diff --git a/screenshoot.png b/screenshoot.png deleted file mode 100644 index c4ff46180e56a4e82df2dd0817797e8a1639db57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81751 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%0DX4C-?*yr!#^+oxzYVMX( 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 Date: Wed, 2 Dec 2020 14:27:30 +0530 Subject: [PATCH 241/344] Trying to fix #11 --- stylesheet.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stylesheet.css b/stylesheet.css index 309e340..59703bf 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -1,8 +1,8 @@ /* For all elements */ .forall{ text-align: right; - min-width: 6em; - margin: 0 10px; + min-width: 7em; + margin: 0 8px; font-family : 'Monospace'; } From 5f0f894c41d4b30032cde2868f7b0787a777ba7b Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 2 Dec 2020 23:13:50 +0530 Subject: [PATCH 242/344] Update README.md --- README.md | 64 ++++++++++++++++++++++--------------------------------- 1 file changed, 25 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 3f42fc5..c53e176 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@

NSS Logo

Net speed Simplified

-
Gnome extension to show network speed
+
A Net Speed indicator With Loads of Features.
[Get it on GNOME Extensions](https://extensions.gnome.org/extension/3724/net-speed-simplified/) or [Install Manually](#installing-manually) @@ -8,11 +8,9 @@

Screenshot -*Screenshots* +*Screenshots*

- *Above Screenshot is with Adwaita Dark theme*

- -**Current Version** : ***21*** +**Current Version** : ***22*** ***Tested on GNOME 3.36 and 3.38*** @@ -21,56 +19,44 @@ - [x] Add Show Upload First button to show upload speed first - [x] Add Color Customizations to make the extension your own - ( Thanks to [m0hithreddy@github](https://github.com/m0hithreddy) for above features ) - - -#### Whats new in v11 and above: -- [x] Add Preference Dialog with lots of default customization. -- [x] Add Lock Mouse Actions button in Preferences to disable any mouse click behaviour. -- [x] Add Position menu(with Advanced option) to pinpoint where to place the indicator on the Panel. -- [x] Add Refresh time field by which you can change refresh time value between 1.0 sec to 10.0 sec. +- [x] Add Use Monospace Font button in Preferences +- [x] Add Hide when Disconnected button in Preferences #### Feature Highlights : - [x] Adjustable Refresh time - [x] Supports GNOME SHELL 3.38 and Backwards compatible -- [x] Changes width accordingly / dynamic width - [x] More cleaner ui -- [x] Changed Kbps to kbp/s -- [x] New sigma icon that respects vertical alignment(old: ∑ , new: Σ) -- [x] New Speed up and down icons for mode 3 & 4. (old: ↓ and ↑ , new: 🡳 and 🡱) - [x] Add space b/w speed and their units -- [x] Human readable stylesheet // used min-width and removed repetitive codes -- [x] Used ES6 classes for less code and more efficeint javascript -- [x] Right Click to toggle visibility of total data used //If you will Right click on 5th mode i.e. total speed mode then total speed counter will reset to 0 MB. -- [x] Add Preference Menu to customize the whole extension as you need +- [x] Add [Preference](#Feature-Highlights-for-Prefrences) Menu for extension customization +- [x] Add Vertical Alignment Support +- [x] Add Two Icon sets for Indicators -#### Changelog Till v10 : -- [x] If network is not connected, then after 12 sec display text "--" for 1st mode, "----" for 2nd mode, "------" for 3rd mode, "--------" for 4th mode, for fifth mode it will display total data used(MB), Normal Right click functionality will show total data used except in 5th mode -- [x] Easy Vertical Alignment for Dash to panel or Big Screen users, to enable this Right Click on any mode continuously for four times to enable/disable vertical align or simply go to preferences tab for this extension, -***Tip : You can also change font size in vertical alignment to your liking by middle mouse click on the speed*** -- [x] Easy Switch to Old Icons of simplenetspeed extension, go to preferences tab for this extension to enable/disable old icons. +#### Feature Highlights for Prefrences +- [x] Add Lock Mouse Actions button to Freeze [Mouse Events](#mouse-events) +- [x] Add Position menu(with Advanced option) to pinpoint where to place the indicator on the Panel. +- [x] Add Refresh time field by which you can change refresh time value between 1.0 sec to 10.0 sec. -if you face any **issues** you can **[file an issue](https://github.com/prateekmedia/netspeedsimplified/issues)** with images or error codes -> **Left click to change modes**, +if you faced a **issue** then you can **[file an issue here](https://github.com/prateekmedia/netspeedsimplified/issues)** + +#### Modes +- Total net speed in bits per second +- Total net speed in Bytes per second +- Up & down speed in bits per second +- Up & down speed in Bytes per second +- Total of downloaded in Bytes (Right click to reset counter) +#### Mouse Events +- **Left click to change [modes](#modes)** -*Modes available:* -1. Total net speed in bits per second -1. Total net speed in Bytes per second -1. Up & down speed in bits per second -1. Up & down speed in Bytes per second -1. Total of downloaded in Bytes (Right click to reset counter) +- **Right click to toggle total data usage visibility** -> **Right click to toggle total data usage visibility, Right click on total data usage mode in reset counter**, -

After right click =>

+- **Right click continuously for 4 times in any mode to toggle vertical alignment** -> **Right click continuously for 4 times in any mode to toggle vertical alignment** +- **Middle click to change font size** -> **Middle click to change font size**

Installing Manually:

- -* Please Star this repository and mark it as Watch if you want to know about latest updates. ## Quick install The extension can be quicky installed as following: From 024c205a0c1259cb6b934ee61e0df9a0495bec76 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 2 Dec 2020 23:19:02 +0530 Subject: [PATCH 243/344] update links --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index c53e176..ca1376a 100644 --- a/README.md +++ b/README.md @@ -15,12 +15,12 @@ ***Tested on GNOME 3.36 and 3.38*** #### Whats new in v20 and above: -- [x] Completely revamped whole codebase -- [x] Add Show Upload First button to show upload speed first -- [x] Add Color Customizations to make the extension your own +- [x] Completely revamped whole codebase PR#4 +- [x] Add Show Upload First button to show upload speed first PR#2 +- [x] Add Color Customizations to make the extension your own PR#7 - ( Thanks to [m0hithreddy@github](https://github.com/m0hithreddy) for above features ) -- [x] Add Use Monospace Font button in Preferences -- [x] Add Hide when Disconnected button in Preferences +- [x] Add Use Monospace Font button in [Preference](#Feature-Highlights-for-Prefrences) +- [x] Add Hide when Disconnected button in [Preference](#Feature-Highlights-for-Prefrences) #### Feature Highlights : - [x] Adjustable Refresh time From c027a4838abb0b254fc3839f82535cf65d732cc0 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 2 Dec 2020 23:20:11 +0530 Subject: [PATCH 244/344] fix typo --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ca1376a..eb2aaed 100644 --- a/README.md +++ b/README.md @@ -19,19 +19,19 @@ - [x] Add Show Upload First button to show upload speed first PR#2 - [x] Add Color Customizations to make the extension your own PR#7 - ( Thanks to [m0hithreddy@github](https://github.com/m0hithreddy) for above features ) -- [x] Add Use Monospace Font button in [Preference](#Feature-Highlights-for-Prefrences) -- [x] Add Hide when Disconnected button in [Preference](#Feature-Highlights-for-Prefrences) +- [x] Add Use Monospace Font button in [Preference](#Feature-Highlights-for-Preferences) +- [x] Add Hide when Disconnected button in [Preference](#Feature-Highlights-for-Preferences) #### Feature Highlights : - [x] Adjustable Refresh time - [x] Supports GNOME SHELL 3.38 and Backwards compatible - [x] More cleaner ui - [x] Add space b/w speed and their units -- [x] Add [Preference](#Feature-Highlights-for-Prefrences) Menu for extension customization +- [x] Add [Preference](#Feature-Highlights-for-Preferences) Menu for extension customization - [x] Add Vertical Alignment Support - [x] Add Two Icon sets for Indicators -#### Feature Highlights for Prefrences +#### Feature Highlights for Preferences - [x] Add Lock Mouse Actions button to Freeze [Mouse Events](#mouse-events) - [x] Add Position menu(with Advanced option) to pinpoint where to place the indicator on the Panel. - [x] Add Refresh time field by which you can change refresh time value between 1.0 sec to 10.0 sec. From 412937856a2ff6714460e47ce52e404e0e37c332 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 2 Dec 2020 23:29:58 +0530 Subject: [PATCH 245/344] Update README.md --- README.md | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index eb2aaed..559e7ec 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@

NSS Logo

Net speed Simplified

-
A Net Speed indicator With Loads of Features.
+
A Net Speed indicator With Loads of Customization.
[Get it on GNOME Extensions](https://extensions.gnome.org/extension/3724/net-speed-simplified/) or [Install Manually](#installing-manually) @@ -14,15 +14,14 @@ ***Tested on GNOME 3.36 and 3.38*** -#### Whats new in v20 and above: +#### What's new - [x] Completely revamped whole codebase PR#4 - [x] Add Show Upload First button to show upload speed first PR#2 - [x] Add Color Customizations to make the extension your own PR#7 -- ( Thanks to [m0hithreddy@github](https://github.com/m0hithreddy) for above features ) - [x] Add Use Monospace Font button in [Preference](#Feature-Highlights-for-Preferences) - [x] Add Hide when Disconnected button in [Preference](#Feature-Highlights-for-Preferences) -#### Feature Highlights : +#### Features - [x] Adjustable Refresh time - [x] Supports GNOME SHELL 3.38 and Backwards compatible - [x] More cleaner ui @@ -37,7 +36,7 @@ - [x] Add Refresh time field by which you can change refresh time value between 1.0 sec to 10.0 sec. -if you faced a **issue** then you can **[file an issue here](https://github.com/prateekmedia/netspeedsimplified/issues)** +If you faced a **issue** then you can **[file an issue here](https://github.com/prateekmedia/netspeedsimplified/issues)** #### Modes - Total net speed in bits per second @@ -59,19 +58,17 @@ if you faced a **issue** then you can **[file an issue here](https://github.com/

Installing Manually:

## Quick install -The extension can be quicky installed as following: +For quick install use below command: $ /bin/bash -c "$(curl -sL https://git.io/Jk28b)" ## Installing using Make -The Extension can be managed using Make build system as follows - -* Getting the sources from repository +* Step 1 : Getting the sources from repository $ git clone https://github.com/prateekmedia/netspeedsimplified.git -* Running make (install) +* Step 2 : Running make (install) $ make install @@ -81,4 +78,4 @@ OR reinstalled ```$ make reinstall``` -You can manage the extension using extensions app or [website](https://extensions.gnome.org/local) or Using Gnome tweaks tool's extension tab +You can manage the extension using extensions app or [website](https://extensions.gnome.org/local) From ce100161d5781bb7bed382673e3d464f7fde0dde Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 2 Dec 2020 23:46:47 +0530 Subject: [PATCH 246/344] Update README.md --- README.md | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 559e7ec..79679ea 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@

NSS Logo

Net speed Simplified

-
A Net Speed indicator With Loads of Customization.
+

A Net Speed extension With Loads of Customization.

[Get it on GNOME Extensions](https://extensions.gnome.org/extension/3724/net-speed-simplified/) or [Install Manually](#installing-manually) @@ -18,22 +18,21 @@ - [x] Completely revamped whole codebase PR#4 - [x] Add Show Upload First button to show upload speed first PR#2 - [x] Add Color Customizations to make the extension your own PR#7 -- [x] Add Use Monospace Font button in [Preference](#Feature-Highlights-for-Preferences) -- [x] Add Hide when Disconnected button in [Preference](#Feature-Highlights-for-Preferences) +- [x] Add *Use Custom Font* button in [Preference](#Feature-Highlights-for-Preferences) +- [x] Add *Hide when Disconnected* button in [Preference](#Feature-Highlights-for-Preferences) #### Features -- [x] Adjustable Refresh time +- [x] Cleaner UI +- [x] Adjustable Refresh rate - [x] Supports GNOME SHELL 3.38 and Backwards compatible -- [x] More cleaner ui -- [x] Add space b/w speed and their units - [x] Add [Preference](#Feature-Highlights-for-Preferences) Menu for extension customization -- [x] Add Vertical Alignment Support -- [x] Add Two Icon sets for Indicators +- [x] Add *Vertical Alignment* Support +- [x] Add *Two Icon sets* for Indicators #### Feature Highlights for Preferences -- [x] Add Lock Mouse Actions button to Freeze [Mouse Events](#mouse-events) -- [x] Add Position menu(with Advanced option) to pinpoint where to place the indicator on the Panel. -- [x] Add Refresh time field by which you can change refresh time value between 1.0 sec to 10.0 sec. +- [x] Add *Lock Mouse Actions* button to Freeze [Mouse Events](#mouse-events) +- [x] Add *Advance Position* menu to pinpoint where to place the indicator on the Panel. +- [x] Add *Refresh time* field by which you can change refresh rate value between 1.0 sec to 10.0 sec. If you faced a **issue** then you can **[file an issue here](https://github.com/prateekmedia/netspeedsimplified/issues)** @@ -55,15 +54,15 @@ If you faced a **issue** then you can **[file an issue here](https://github.com/ - **Middle click to change font size** -

Installing Manually:

+

Installing Manually

-## Quick install +### Quick install For quick install use below command: $ /bin/bash -c "$(curl -sL https://git.io/Jk28b)" -## Installing using Make +### Installing using Make * Step 1 : Getting the sources from repository $ git clone https://github.com/prateekmedia/netspeedsimplified.git From be38d32861e7c59d93a06dd871f220388afdb4e1 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 2 Dec 2020 23:51:16 +0530 Subject: [PATCH 247/344] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 79679ea..360f603 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ - [x] Add Color Customizations to make the extension your own PR#7 - [x] Add *Use Custom Font* button in [Preference](#Feature-Highlights-for-Preferences) - [x] Add *Hide when Disconnected* button in [Preference](#Feature-Highlights-for-Preferences) +- [x] Add *Use Shorten Units* button in [Preference](#Feature-Highlights-for-Preferences) #### Features - [x] Cleaner UI @@ -35,7 +36,7 @@ - [x] Add *Refresh time* field by which you can change refresh rate value between 1.0 sec to 10.0 sec. -If you faced a **issue** then you can **[file an issue here](https://github.com/prateekmedia/netspeedsimplified/issues)** +If you faced an **issue** then you can **[file an issue here](https://github.com/prateekmedia/netspeedsimplified/issues)** #### Modes - Total net speed in bits per second From a90fe64dbd9831a4f09e5b3ab212ae4bb176082e Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 3 Dec 2020 08:40:43 +0530 Subject: [PATCH 248/344] Update metadata.json --- metadata.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/metadata.json b/metadata.json index 7851c97..f399ca9 100644 --- a/metadata.json +++ b/metadata.json @@ -1,5 +1,5 @@ { - "description": "Fork of Simple Net speed by bijignome \n\nTested on gnome 3.36 and 3.38\n\n+ Added Preference Menu with option to change refresh rate and more\n+ Now if you change something from preferences it will apply in real time.\n\nWhats New:\n Clean UI, Changeable refresh time, Fix repetitive code in stylesheet.css, \nRight Click to view total downloaded data in bits and bytes, Lesser Code Better Code,\n new Sigma and Up and down Arrow icons, dynamic width,\n used kb/s instead of Kbps, added spaces where needed,\n If you don't have active net connection for 12 seconds then this extension will show '--' instead of 0 B/s,\n Added vertical align support for dash to panel or big screen users(to use it just right click 4 time continuously on any mode to toggle vertical align), \nAdded old icons from simplenetspeed extension(to use it go to preferences and toggle Use old icons) and more coming\n\nLeft Click To change modes.\n\nModes Available:\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up and down speed in bits per second\n4. Up and down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter\n\nRight Click To toggle visibility of Total Up and Down or Reset counter for 5th mode.\n\nRight Click four times continuously to toggle Vertical alignment\n\nMiddle Click to change font size.", + "description": "A Net Speed extension With Loads of Customization. \n \nWhat's new\n1☞ Completely revamped whole codebase PR#4 \n☞ Add Show Upload First button to show upload speed first PR#2 \n☞ Add Color Customizations to make the extension your own PR#7 \n☞ Add set custom Font Button in Preference \n☞ Add *Hide when Disconnected* button in Prefrence\n☞ Add *Use Shorten Units* button in Preference \n \nFeatures \n1. Cleaner UI \n2. Adjustable Refresh rate \n3. Supports GNOME SHELL 3.38 and Backwards compatible \n4. Add Preference \n5. Add Vertical Alignment Support \n6. Add Two Icon sets for Indicators \n Feature Highlights for Preferences \n1. Add Lock Mouse Actions button to Freeze Mouse Events \n2. Add Advance Position menu to pinpoint where to place the indicator on the Panel. \n3. Add Refresh time field by which you can change refresh rate value between 1.0 sec to 10.0 sec. \nModes \n- Total net speed in bits per second \n- Total net speed in Bytes per second \n- Up & down speed in bits per second \n- Up & down speed in Bytes per second \n- Total of downloaded in Bytes (Right click to reset counter) \n \nMouse Events \n- Left click to change modes \n- Right click to toggle total data usage visibility \n- Right click continuously for 4 times in any mode to toggle vertical alignment \n- Middle click to change font size", "name": "Net speed Simplified", "shell-version": [ "3.14", @@ -26,5 +26,5 @@ ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 20 + "version": 22 } From 7a85a2f534a341b5043ed46c997e5c80728ea27c Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 3 Dec 2020 08:44:18 +0530 Subject: [PATCH 249/344] Update Indentation --- metadata.json | 56 +++++++++++++++++++++++++-------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/metadata.json b/metadata.json index f399ca9..318d4fc 100644 --- a/metadata.json +++ b/metadata.json @@ -1,30 +1,30 @@ { - "description": "A Net Speed extension With Loads of Customization. \n \nWhat's new\n1☞ Completely revamped whole codebase PR#4 \n☞ Add Show Upload First button to show upload speed first PR#2 \n☞ Add Color Customizations to make the extension your own PR#7 \n☞ Add set custom Font Button in Preference \n☞ Add *Hide when Disconnected* button in Prefrence\n☞ Add *Use Shorten Units* button in Preference \n \nFeatures \n1. Cleaner UI \n2. Adjustable Refresh rate \n3. Supports GNOME SHELL 3.38 and Backwards compatible \n4. Add Preference \n5. Add Vertical Alignment Support \n6. Add Two Icon sets for Indicators \n Feature Highlights for Preferences \n1. Add Lock Mouse Actions button to Freeze Mouse Events \n2. Add Advance Position menu to pinpoint where to place the indicator on the Panel. \n3. Add Refresh time field by which you can change refresh rate value between 1.0 sec to 10.0 sec. \nModes \n- Total net speed in bits per second \n- Total net speed in Bytes per second \n- Up & down speed in bits per second \n- Up & down speed in Bytes per second \n- Total of downloaded in Bytes (Right click to reset counter) \n \nMouse Events \n- Left click to change modes \n- Right click to toggle total data usage visibility \n- Right click continuously for 4 times in any mode to toggle vertical alignment \n- Middle click to change font size", - "name": "Net speed Simplified", - "shell-version": [ - "3.14", - "3.15", - "3.16", - "3.17", - "3.18", - "3.19", - "3.20", - "3.21", - "3.22", - "3.23", - "3.24", - "3.25", - "3.26", - "3.27", - "3.28", - "3.29", - "3.30", - "3.32", - "3.34", - "3.36", - "3.38" - ], - "url": "https://github.com/prateekmedia/netspeedsimplified", - "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 22 + "description": "A Net Speed extension With Loads of Customization. \n \nWhat's new\n1☞ Completely revamped whole codebase PR#4 \n☞ Add Show Upload First button to show upload speed first PR#2 \n☞ Add Color Customizations to make the extension your own PR#7 \n☞ Add set custom Font Button in Preference \n☞ Add *Hide when Disconnected* button in Prefrence\n☞ Add *Use Shorten Units* button in Preference \n \nFeatures \n1. Cleaner UI \n2. Adjustable Refresh rate \n3. Supports GNOME SHELL 3.38 and Backwards compatible \n4. Add Preference \n5. Add Vertical Alignment Support \n6. Add Two Icon sets for Indicators \n Feature Highlights for Preferences \n1. Add Lock Mouse Actions button to Freeze Mouse Events \n2. Add Advance Position menu to pinpoint where to place the indicator on the Panel. \n3. Add Refresh time field by which you can change refresh rate value between 1.0 sec to 10.0 sec. \nModes \n- Total net speed in bits per second \n- Total net speed in Bytes per second \n- Up & down speed in bits per second \n- Up & down speed in Bytes per second \n- Total of downloaded in Bytes (Right click to reset counter) \n \nMouse Events \n- Left click to change modes \n- Right click to toggle total data usage visibility \n- Right click continuously for 4 times in any mode to toggle vertical alignment \n- Middle click to change font size", + "name": "Net speed Simplified", + "shell-version": [ + "3.14", + "3.15", + "3.16", + "3.17", + "3.18", + "3.19", + "3.20", + "3.21", + "3.22", + "3.23", + "3.24", + "3.25", + "3.26", + "3.27", + "3.28", + "3.29", + "3.30", + "3.32", + "3.34", + "3.36", + "3.38" + ], + "url": "https://github.com/prateekmedia/netspeedsimplified", + "uuid": "netspeedsimplified@prateekmedia.extension", + "version": 22 } From e479b9448236a27c2bda31c5df98d5b8e16cd7f6 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 3 Dec 2020 09:00:13 +0530 Subject: [PATCH 250/344] Add credits to upstream --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index 318d4fc..9a56912 100644 --- a/metadata.json +++ b/metadata.json @@ -1,5 +1,5 @@ { - "description": "A Net Speed extension With Loads of Customization. \n \nWhat's new\n1☞ Completely revamped whole codebase PR#4 \n☞ Add Show Upload First button to show upload speed first PR#2 \n☞ Add Color Customizations to make the extension your own PR#7 \n☞ Add set custom Font Button in Preference \n☞ Add *Hide when Disconnected* button in Prefrence\n☞ Add *Use Shorten Units* button in Preference \n \nFeatures \n1. Cleaner UI \n2. Adjustable Refresh rate \n3. Supports GNOME SHELL 3.38 and Backwards compatible \n4. Add Preference \n5. Add Vertical Alignment Support \n6. Add Two Icon sets for Indicators \n Feature Highlights for Preferences \n1. Add Lock Mouse Actions button to Freeze Mouse Events \n2. Add Advance Position menu to pinpoint where to place the indicator on the Panel. \n3. Add Refresh time field by which you can change refresh rate value between 1.0 sec to 10.0 sec. \nModes \n- Total net speed in bits per second \n- Total net speed in Bytes per second \n- Up & down speed in bits per second \n- Up & down speed in Bytes per second \n- Total of downloaded in Bytes (Right click to reset counter) \n \nMouse Events \n- Left click to change modes \n- Right click to toggle total data usage visibility \n- Right click continuously for 4 times in any mode to toggle vertical alignment \n- Middle click to change font size", + "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n1☞ Completely revamped whole codebase PR#4 \n☞ Add Show Upload First button to show upload speed first PR#2 \n☞ Add Color Customizations to make the extension your own PR#7 \n☞ Add set custom Font Button in Preference \n☞ Add *Hide when Disconnected* button in Prefrence\n☞ Add *Use Shorten Units* button in Preference \n \nFeatures \n1. Cleaner UI \n2. Adjustable Refresh rate \n3. Supports GNOME SHELL 3.38 and Backwards compatible \n4. Add Preference \n5. Add Vertical Alignment Support \n6. Add Two Icon sets for Indicators \n Feature Highlights for Preferences \n1. Add Lock Mouse Actions button to Freeze Mouse Events \n2. Add Advance Position menu to pinpoint where to place the indicator on the Panel. \n3. Add Refresh time field by which you can change refresh rate value between 1.0 sec to 10.0 sec. \nModes \n- Total net speed in bits per second \n- Total net speed in Bytes per second \n- Up & down speed in bits per second \n- Up & down speed in Bytes per second \n- Total of downloaded in Bytes (Right click to reset counter) \n \nMouse Events \n- Left click to change modes \n- Right click to toggle total data usage visibility \n- Right click continuously for 4 times in any mode to toggle vertical alignment \n- Middle click to change font size", "name": "Net speed Simplified", "shell-version": [ "3.14", From 0a006dc8704a568ebf832fb79c7f4095da0f604e Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 3 Dec 2020 09:04:26 +0530 Subject: [PATCH 251/344] Update quick-install.sh --- quick-install.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/quick-install.sh b/quick-install.sh index 4d4f747..59415d4 100644 --- a/quick-install.sh +++ b/quick-install.sh @@ -5,6 +5,9 @@ set -x EXT_HOME=~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.extension PROJECT_HOME=https://raw.githubusercontent.com/prateekmedia/netspeedsimplified/main +#Remove Old files +rm -rf ${EXT_HOME} + #Create a directory structure mkdir -p ${EXT_HOME} mkdir -p ${EXT_HOME}/schemas From f6004f2d006b510cc7e2f82736a1c0dff01c3863 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 3 Dec 2020 10:25:12 +0530 Subject: [PATCH 252/344] Variable rename and general code cleanup --- extension.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/extension.js b/extension.js index 6cb6d35..a37ddf4 100644 --- a/extension.js +++ b/extension.js @@ -12,12 +12,9 @@ const Clutter = imports.gi.Clutter, rCConst=4; //Right Click 4 times to toggle Vertical Alignment let settings, timeout, - spaCe, lastCount = 0, lastSpeed = 0, lastCountUp = 0, resetNextCount=false, resetCount=0, - newLine, h=8, tTime=0; - -var extRaw; + hideCount=8; // Settings var crStng; //Initialized in enable() @@ -52,7 +49,7 @@ function pushSettings() { initNs(); } -// Helper Functions +//Helper Functions function DIcons(iNum) { return [ ["🡳","🡱","Σ"] , ["↓","↑","∑"] ][crStng.chooseIconSet][iNum]; } @@ -309,9 +306,9 @@ function parseStat() { resetCount = count; } - (speed || speedUp) ? h = 0 : h++ + (speed || speedUp) ? hideCount = 0 : hideCount++ - if(h<=8) { + if(hideCount<=8) { updateNsLabels(" " + speedToString(speedUp), " " + speedToString(speed - speedUp), " " + speedToString(speed), From 903f96f21bb6ff069a179e687bf158fdf5067b66 Mon Sep 17 00:00:00 2001 From: Prateek SU Date: Thu, 3 Dec 2020 11:14:12 +0530 Subject: [PATCH 253/344] Add Hide when disconnected and shorten units feature --- extension.js | 29 +++++++++++++++---- ....extensions.netspeedsimplified.gschema.xml | 6 ++++ 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/extension.js b/extension.js index a37ddf4..17b2528 100644 --- a/extension.js +++ b/extension.js @@ -9,7 +9,8 @@ const Clutter = imports.gi.Clutter, Convenience = Me.imports.convenience, schema = 'org.gnome.shell.extensions.netspeedsimplified', ButtonName = "ShowNetSpeedButton", - rCConst=4; //Right Click 4 times to toggle Vertical Alignment + rCConst=4, //Right Click 4 times to toggle Vertical Alignment + B_UNITS; let settings, timeout, lastCount = 0, lastSpeed = 0, lastCountUp = 0, @@ -29,6 +30,8 @@ function fetchSettings() { chooseIconSet: settings.get_int('chooseiconset'), revIndicator: settings.get_boolean('reverseindicators'), lckMuseAct: settings.get_boolean('lockmouseactions'), + hideInd: settings.get_boolean('hideindicator'), + shortenUnits: settings.get_boolean('shortenunits'), nsPos: settings.get_int('wpos'), nsPosAdv: settings.get_int('wposext'), usColor: settings.get_string('uscolor'), @@ -37,6 +40,8 @@ function fetchSettings() { tdColor: settings.get_string('tdcolor') }; + B_UNITS = (shortenUnits) ? ['B', 'K', 'M', 'G', 'T', 'P', 'E', 'Z'] : [' B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB'] ; + initNs(); } @@ -64,7 +69,7 @@ function nsPosAdv() { function speedToString(amount, rMode = 0) { - let speed_map = [" B", "KB", "MB", "GB"].map( + let speed_map = B_UNITS.map( (rMode == 1 && (crStng.mode == 1 || crStng.mode == 3 || crStng.mode == 4)) ? v => v : //KB (rMode == 1 && (crStng.mode == 0 || crStng.mode == 2)) ? v => v.toLowerCase() : //kb (crStng.mode == 0 || crStng.mode == 2) ? v => v.toLowerCase() + "/s" : //kb/s @@ -162,7 +167,7 @@ var nsButton = null, nsActor = null, nsLayout = null; function initNs() { //Destroy the existing button. - nsButton != null ? nsButton.destroy() : null; + nsDestroy(); //Initialize component Labels initNsLabels(); @@ -224,6 +229,10 @@ function initNs() { Main.panel.addToStatusArea(ButtonName, nsButton, nsPosAdv(), nsPos()); } +function nsDestroy() { + nsButton != null ? (nsButton.destroy(), nsButton = null) : null; +} + // Mouse Event Handler var startTime = null, rClickCount = 0; @@ -306,15 +315,25 @@ function parseStat() { resetCount = count; } - (speed || speedUp) ? hideCount = 0 : hideCount++ + (speed || speedUp) ? hideCount = 0 : hideCount <= 8 ? hideCount++ : null if(hideCount<=8) { + nsButton == null ? initNs() : null + updateNsLabels(" " + speedToString(speedUp), " " + speedToString(speed - speedUp), " " + speedToString(speed), " " + speedToString(count - resetCount, 1)); } - else updateNsLabels('--', '--', '--', " " + speedToString(count - resetCount, 1)); + else { + if (crStng.hideInd) { + nsDestroy(); + } + else { + nsButton == null ? initNs() : null + updateNsLabels('--', '--', '--', speedToString(count - resetCount, 1)); + } + } lastCount = count; lastCountUp = countUp; diff --git a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml index 1272de2..098175e 100644 --- a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml +++ b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml @@ -40,6 +40,12 @@ false + + true + + + false + false From d94f214d5e69dd5791e34264e7269c1e42215669 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 3 Dec 2020 06:26:04 +0000 Subject: [PATCH 254/344] Update Extension --- extension.js | 15 ++++++++------- prefs.js | 10 +++++++++- schemas/gschemas.compiled | Bin 1307 -> 1395 bytes 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/extension.js b/extension.js index 17b2528..4d85226 100644 --- a/extension.js +++ b/extension.js @@ -9,13 +9,13 @@ const Clutter = imports.gi.Clutter, Convenience = Me.imports.convenience, schema = 'org.gnome.shell.extensions.netspeedsimplified', ButtonName = "ShowNetSpeedButton", - rCConst=4, //Right Click 4 times to toggle Vertical Alignment - B_UNITS; + rCConst=4; //Right Click 4 times to toggle Vertical Alignment let settings, timeout, lastCount = 0, lastSpeed = 0, lastCountUp = 0, resetNextCount=false, resetCount=0, - hideCount=8; + hideCount=8, + B_UNITS; // Settings var crStng; //Initialized in enable() @@ -40,7 +40,7 @@ function fetchSettings() { tdColor: settings.get_string('tdcolor') }; - B_UNITS = (shortenUnits) ? ['B', 'K', 'M', 'G', 'T', 'P', 'E', 'Z'] : [' B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB'] ; + B_UNITS = (crStng.shortenUnits) ? ['B', 'K', 'M', 'G', 'T', 'P', 'E', 'Z'] : [' B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB'] ; initNs(); } @@ -87,6 +87,7 @@ function speedToString(amount, rMode = 0) { let digits = (crStng.mode==4 || rMode !=0) ? 2 /* For floats like 21.11 and total speed mode */ : 1 //For floats like 21.2 let spaceNum = 3 - Math.ceil(Math.log10(amount +1)); + spaceNum <0 ? spaceNum = 0 : null return " ".repeat(spaceNum) + amount.toFixed(digits) + " " + speed_map[unit]; } @@ -230,7 +231,8 @@ function initNs() { } function nsDestroy() { - nsButton != null ? (nsButton.destroy(), nsButton = null) : null; + nsButton != null ? nsButton.destroy() : null + nsButton = null; } // Mouse Event Handler @@ -367,7 +369,6 @@ function enable() { function disable() { Mainloop.source_remove(timeout); - nsButton.destroy(); - nsButton = null; + nsDestroy(); } diff --git a/prefs.js b/prefs.js index 7ea20ca..dfcdf76 100644 --- a/prefs.js +++ b/prefs.js @@ -181,7 +181,15 @@ Prefs.prototype = //For Lock Mouse Actions let hboxLckMuseAct = newGtkBox(); vBoxAddTgglBtn(hboxLckMuseAct, "Lock Mouse Actions", "lockmouseactions", "Enabling it will Lock Mouse Actions"); - + + //For Hide When Disconnected + let hboxHideInd = newGtkBox(); + vBoxAddTgglBtn(hboxHideInd, "Hide When Disconnected", "hideindicator", "Enabling it will Hide Indicator when disconnected"); + + //For Shorten Units + let hboxShUni = newGtkBox(); + vBoxAddTgglBtn(hboxShUni, "Shorten Units", "shortenunits", "Enabling it will result in shorten units like K instead of KB"); + //Colors let hboxColor = newGtkBox(); function onColorToggle(widget){ diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index 46379c1bd5e93b89fc4e342e7b8ccaa60397cb07..321666f2de457c08a4e6b53cc7eb1199a1ff655f 100644 GIT binary patch literal 1395 zcma)5Jxmlq7#)!lgcCtDA<@FZVlTp-KcS+4hG2xkMnaTkxt+V6xVv-i42VWeEKTf8 zF#aSGe-axj3!@fdv@s@Xp@m{$2?fT)hDv>J_m(4=7&dwP-o5)~zHer~Z)Dt!l^a=6 ze|o?Zsdkz&6P(*4#2-BAe`86^B>XGCCT}y0x=$Pv*T8SEa0^(+)nYZ$p)49-20>BI zS{WIoBU6l|H8m+cqrzICDoT2Y$K&iyIe9Zbkpo(R?RB(+^Xt$7ona?*7qF|2Zg5sR z>k?utsV~1(h*ytiTIf)>iW$)ZJ_;Kyz>;IF{Gpy@5+sk#3Wcm>FRx-(3lx&{6!xVu@1vk#VE)2Hr& z?|}P&mbQ-<=u>yX9|8{pPkO)4(WhpeC%`9x)-LmdJ~iWga0ravxR=%s&AhYV>%hRf z-wxxc>Cb~-0PhFpFVd%OhQ9z_1ol1~ze=B)d6&Q|z`%!*oAjyk@cBV=z_~#Y;i%C6Nh<`Ma)O_?<@M_iq9og@AIz55%l!v&OYQ00t_almY?Noz{#H`a~q zTI%Ev_*V0jQ(6ab@H^1uGohX~(k)w#`&!(l@_UV_|JHe~rqi9XJ50vA@tu^xIV{f4 qs*<{lj}IcF=}6i7p;F&^o4J>@*2wa0=nK|^t4We2uPkmuU;G7+;s>+< literal 1307 zcma)6Pe>I(9G=RT=2O!m2)sme*a!Na1wtTUmq^mHNO)-7o%i0*zMa?3Xn&}nW9ZqW zf+XtL$sp>IA)SKokcX&4$0Q1&4xXy-n|=GV0%_sf@7r&GznS06{$|gP`-$>nD;n2f z@I-*$AhEey65itjzL*g#5PAbJptZTApsxpd-@`{zQ zQ93roSXxt;GBm1Ik5pO75b?OY11Ye{sy|i89oj^UZZ9` ztzt$jfR}*Y=i|5OQ@6uk2EXRJzEAV?sp+qR*MLip)>r6L_rU)Q{tBFXarZiX>K6E$ z;DdWGSNrNU`qbUNbqSkJ}5_ zFwl`s7%Y;?l<%Dw9PB%?bvs@_gP4LcGcvI%@FN%LO%<%JR3bU0H61)B5)nqKI7F1y ziD4l8nhvGQNpI;)X@3b%c~?E93I${v>nFC^t&I%iyYejOO2-RLv)~=-yq6|#DmzwLYc27{vc-~a#s From d3c8c7132d3009fdaf496be9c83d5782dd14b3da Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 3 Dec 2020 06:52:00 +0000 Subject: [PATCH 255/344] Make Preferences scrollable --- prefs.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/prefs.js b/prefs.js index dfcdf76..2836adb 100644 --- a/prefs.js +++ b/prefs.js @@ -137,7 +137,7 @@ Prefs.prototype = vbox.add(new Gtk.Separator({visible : true})); } - let frame = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, border_width: 10}); + let frame = new Gtk.ScrolledWindow(); let label = new Gtk.Label({ label: "General Settings", use_markup: true, xalign:0}); let vbox = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, margin_left: 20}); let mfooter = new Gtk.Label({ label: "Pro Tip : Hover over any Label To know more about it",use_markup: true, margin_top: 20}); @@ -224,9 +224,7 @@ Prefs.prototype = let tdColorButton = newGtkBox(); vBoxAddColorButton(tdColorButton, "Total Download Color", "tdcolor", "Select the total download color"); - frame.add(label); frame.add(vbox); - frame.add(mfooter); frame.show_all(); onColorToggle(thset.get_boolean("colortggle")); From ac630ba53f4a86dedd568e58a8a4df2471a7b0b0 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 3 Dec 2020 07:26:37 +0000 Subject: [PATCH 256/344] Add custom font name and entry in prefs --- prefs.js | 27 +++++++++++++++++- schemas/gschemas.compiled | Bin 1395 -> 1467 bytes ....extensions.netspeedsimplified.gschema.xml | 3 ++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/prefs.js b/prefs.js index 2836adb..a21dcf6 100644 --- a/prefs.js +++ b/prefs.js @@ -137,11 +137,32 @@ Prefs.prototype = vbox.add(new Gtk.Separator({visible : true})); } + function vBoxAddEntry(whichHbox, getLbl, getString, getTooTip = "", func){ + boolComp = (thset.get_string(getString) == thset.get_default_value(getString).unpack()); + getLbl = boolComp ? getLbl : + `${getLbl}` + tootext = boolComp ? "" : "The Value is Changed" + whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }); + whichVlue = new Gtk.Entry({text: thset.get_string(getString), tooltip_text: tootext, placeholder_text: "Press Enter to apply" }); + whichVlue.connect('activate', (widget) => { + thset.set_string(getString, widget.get_text()); + if (func != undefined){ func(widget.active); } + else { thset.set_boolean('restartextension' , true); } + }) + + whichHbox.pack_start(whichLbl, true, true, 0); + whichHbox.add(whichVlue); + + vbox.add(whichHbox); + vbox.add(new Gtk.Separator({visible : true})); + } + let frame = new Gtk.ScrolledWindow(); let label = new Gtk.Label({ label: "General Settings", use_markup: true, xalign:0}); let vbox = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, margin_left: 20}); let mfooter = new Gtk.Label({ label: "Pro Tip : Hover over any Label To know more about it",use_markup: true, margin_top: 20}); + vbox.add(label); //For Position let hboxWPos = newGtkBox(); vBoxAddSeleCt("wpos", hboxWPos, "Position on the Panel", ["Right","Left","Center"], "Choose where to Place the extension on the Panel"); @@ -190,6 +211,10 @@ Prefs.prototype = let hboxShUni = newGtkBox(); vBoxAddTgglBtn(hboxShUni, "Shorten Units", "shortenunits", "Enabling it will result in shorten units like K instead of KB"); + //For Custom Font name + let hboxCustFont = newGtkBox(); + vBoxAddEntry(hboxCustFont, "Custom Font Name", "customfont", "Enter the font name you want, you can also write style here for all elements except indicators") + //Colors let hboxColor = newGtkBox(); function onColorToggle(widget){ @@ -223,7 +248,7 @@ Prefs.prototype = //Total Download Color let tdColorButton = newGtkBox(); vBoxAddColorButton(tdColorButton, "Total Download Color", "tdcolor", "Select the total download color"); - + vbox.add(mfooter); frame.add(vbox); frame.show_all(); onColorToggle(thset.get_boolean("colortggle")); diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index 321666f2de457c08a4e6b53cc7eb1199a1ff655f..de82611a5b7752b90516e109aa12192a61761373 100644 GIT binary patch literal 1467 zcma)6O=uHA7@gL}#QvG8g@PV>@UV+D@rUA}hxQ^B+mnY~G#GOg4qJl@k zTcP3)Sj65G4<4+FsCW`V3)+L|q1RrdAVQ&_zBkDxMJYP)^4`9g`R1FMZ!$cVi~L-u zMXmLK$E(_Ej!kf)TZmt1)xJ?PW&-}z?-REJ-K=fIk9X`{$SFQ*+&A@H%kr{>mHr z)Lrn?EkbkyuP$F{C8-=Otl5|`|5Q1^ouoZOp z)&vzM`0awv-UWSwai*%4YRca9RRLV>;zcHDS&m%+GZ`Yu2GhzmbZhM za6JipZ<2?0>bt?1&G!?zQ*NXhr=t)O4S8qEIqg-yvUtQ<^N6$N5oa5ZIQ#b_&I+L- zSLs}&>*K0%OkDk6=jJ_m(4=7&dwP-o5)~zHer~Z)Dt!l^a=6 ze|o?Zsdkz&6P(*4#2-BAe`86^B>XGCCT}y0x=$Pv*T8SEa0^(+)nYZ$p)49-20>BI zS{WIoBU6l|H8m+cqrzICDoT2Y$K&iyIe9Zbkpo(R?RB(+^Xt$7ona?*7qF|2Zg5sR z>k?utsV~1(h*ytiTIf)>iW$)ZJ_;Kyz>;IF{Gpy@5+sk#3Wcm>FRx-(3lx&{6!xVu@1vk#VE)2Hr& z?|}P&mbQ-<=u>yX9|8{pPkO)4(WhpeC%`9x)-LmdJ~iWga0ravxR=%s&AhYV>%hRf z-wxxc>Cb~-0PhFpFVd%OhQ9z_1ol1~ze=B)d6&Q|z`%!*oAjyk@cBV=z_~#Y;i%C6Nh<`Ma)O_?<@M_iq9og@AIz55%l!v&OYQ00t_almY?Noz{#H`a~q zTI%Ev_*V0jQ(6ab@H^1uGohX~(k)w#`&!(l@_UV_|JHe~rqi9XJ50vA@tu^xIV{f4 qs*<{lj}IcF=}6i7p;F&^o4J>@*2wa0=nK|^t4We2uPkmuU;G7+;s>+< diff --git a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml index 098175e..23d4adb 100644 --- a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml +++ b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml @@ -46,6 +46,9 @@ false + + "" + false From bf781bb58da4d82bf47c0b84cb974551680fbf75 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 3 Dec 2020 08:49:13 +0000 Subject: [PATCH 257/344] Add Restore Defaults Btn --- prefs.js | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/prefs.js b/prefs.js index a21dcf6..224ff54 100644 --- a/prefs.js +++ b/prefs.js @@ -28,7 +28,7 @@ Prefs.prototype = buildPrefsWidget: function() { - let thset = this.settings; + let thset = this.settings; function newGtkBox(){ return new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); @@ -160,8 +160,26 @@ Prefs.prototype = let frame = new Gtk.ScrolledWindow(); let label = new Gtk.Label({ label: "General Settings", use_markup: true, xalign:0}); let vbox = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, margin_left: 20}); + let resetBtn = new Gtk.Button ({label: "Restore Defaults"});; let mfooter = new Gtk.Label({ label: "Pro Tip : Hover over any Label To know more about it",use_markup: true, margin_top: 20}); - + + resetBtn.connect ("clicked", ()=>{ + let strArray = ["customfont", "uscolor", "dscolor", "tscolor", "tdcolor"]; + let intArray = ["wpos", "wposext", "refreshtime", "mode", "fontmode", "chooseiconset",]; + let boolArray = ["isvertical", "togglebool", "reverseindicators", "lockmouseactions", "hideindicator", "shortenunits"]; + for (i in strArray){ + thset.set_string(strArray[i], thset.get_default_value(strArray[i]).unpack()); + } + for (j in intArray){ + thset.set_int(intArray[j], thset.get_default_value(intArray[j]).unpack()); + } + for (k in boolArray){ + thset.set_boolean(boolArray[k], thset.get_default_value(boolArray[k]).unpack()); + } + thset.set_boolean('restartextension' , true); + frame.destroy(); + }); + vbox.add(label); //For Position let hboxWPos = newGtkBox(); @@ -248,6 +266,8 @@ Prefs.prototype = //Total Download Color let tdColorButton = newGtkBox(); vBoxAddColorButton(tdColorButton, "Total Download Color", "tdcolor", "Select the total download color"); + + vbox.add(resetBtn); vbox.add(mfooter); frame.add(vbox); frame.show_all(); From a476033457f32ccd26b368e01c3c11c0a9257fe1 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 3 Dec 2020 08:50:30 +0000 Subject: [PATCH 258/344] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 360f603..fdaaac1 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,7 @@ - [x] Add *Use Custom Font* button in [Preference](#Feature-Highlights-for-Preferences) - [x] Add *Hide when Disconnected* button in [Preference](#Feature-Highlights-for-Preferences) - [x] Add *Use Shorten Units* button in [Preference](#Feature-Highlights-for-Preferences) +- [x] Add *Restore Defaults* button in [Preference](#Feature-Highlights-for-Preferences) #### Features - [x] Cleaner UI From a5b16389711472730d9591016f4b9aee6e7e466a Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 3 Dec 2020 14:34:53 +0530 Subject: [PATCH 259/344] Update spacing --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index 9a56912..22edfd3 100644 --- a/metadata.json +++ b/metadata.json @@ -1,5 +1,5 @@ { - "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n1☞ Completely revamped whole codebase PR#4 \n☞ Add Show Upload First button to show upload speed first PR#2 \n☞ Add Color Customizations to make the extension your own PR#7 \n☞ Add set custom Font Button in Preference \n☞ Add *Hide when Disconnected* button in Prefrence\n☞ Add *Use Shorten Units* button in Preference \n \nFeatures \n1. Cleaner UI \n2. Adjustable Refresh rate \n3. Supports GNOME SHELL 3.38 and Backwards compatible \n4. Add Preference \n5. Add Vertical Alignment Support \n6. Add Two Icon sets for Indicators \n Feature Highlights for Preferences \n1. Add Lock Mouse Actions button to Freeze Mouse Events \n2. Add Advance Position menu to pinpoint where to place the indicator on the Panel. \n3. Add Refresh time field by which you can change refresh rate value between 1.0 sec to 10.0 sec. \nModes \n- Total net speed in bits per second \n- Total net speed in Bytes per second \n- Up & down speed in bits per second \n- Up & down speed in Bytes per second \n- Total of downloaded in Bytes (Right click to reset counter) \n \nMouse Events \n- Left click to change modes \n- Right click to toggle total data usage visibility \n- Right click continuously for 4 times in any mode to toggle vertical alignment \n- Middle click to change font size", + "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n☞ Completely revamped whole codebase PR#4 \n☞ Add Show Upload First button to show upload speed first PR#2 \n☞ Add Color Customizations to make the extension your own PR#7 \n☞ Add set custom Font Button in Preference \n☞ Add *Hide when Disconnected* button in Prefrence\n☞ Add *Use Shorten Units* button in Preference \n \nFeatures \n1. Cleaner UI \n2. Adjustable Refresh rate \n3. Supports GNOME SHELL 3.38 and Backwards compatible \n4. Add Preference \n5. Add Vertical Alignment Support \n6. Add Two Icon sets for Indicators \n\n Feature Highlights for Preferences \n1. Add Lock Mouse Actions button to Freeze Mouse Events \n2. Add Advance Position menu to pinpoint where to place the indicator on the Panel. \n3. Add Refresh time field by which you can change refresh rate value between 1.0 sec to 10.0 sec. \n\nModes \n- Total net speed in bits per second \n- Total net speed in Bytes per second \n- Up & down speed in bits per second \n- Up & down speed in Bytes per second \n- Total of downloaded in Bytes (Right click to reset counter) \n \nMouse Events \n- Left click to change modes \n- Right click to toggle total data usage visibility \n- Right click continuously for 4 times in any mode to toggle vertical alignment \n- Middle click to change font size", "name": "Net speed Simplified", "shell-version": [ "3.14", From 9e954fddc8eb93f3cc1ad4d8200d88b6bbe3bb26 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 3 Dec 2020 16:50:25 +0530 Subject: [PATCH 260/344] Replace & with and --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index 22edfd3..d248890 100644 --- a/metadata.json +++ b/metadata.json @@ -1,5 +1,5 @@ { - "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n☞ Completely revamped whole codebase PR#4 \n☞ Add Show Upload First button to show upload speed first PR#2 \n☞ Add Color Customizations to make the extension your own PR#7 \n☞ Add set custom Font Button in Preference \n☞ Add *Hide when Disconnected* button in Prefrence\n☞ Add *Use Shorten Units* button in Preference \n \nFeatures \n1. Cleaner UI \n2. Adjustable Refresh rate \n3. Supports GNOME SHELL 3.38 and Backwards compatible \n4. Add Preference \n5. Add Vertical Alignment Support \n6. Add Two Icon sets for Indicators \n\n Feature Highlights for Preferences \n1. Add Lock Mouse Actions button to Freeze Mouse Events \n2. Add Advance Position menu to pinpoint where to place the indicator on the Panel. \n3. Add Refresh time field by which you can change refresh rate value between 1.0 sec to 10.0 sec. \n\nModes \n- Total net speed in bits per second \n- Total net speed in Bytes per second \n- Up & down speed in bits per second \n- Up & down speed in Bytes per second \n- Total of downloaded in Bytes (Right click to reset counter) \n \nMouse Events \n- Left click to change modes \n- Right click to toggle total data usage visibility \n- Right click continuously for 4 times in any mode to toggle vertical alignment \n- Middle click to change font size", + "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n☞ Completely revamped whole codebase PR#4 \n☞ Add Show Upload First button to show upload speed first PR#2 \n☞ Add Color Customizations to make the extension your own PR#7 \n☞ Add set custom Font Button in Preference \n☞ Add *Hide when Disconnected* button in Prefrence\n☞ Add *Use Shorten Units* button in Preference \n \nFeatures \n1. Cleaner UI \n2. Adjustable Refresh rate \n3. Supports GNOME SHELL 3.38 and Backwards compatible \n4. Add Preference \n5. Add Vertical Alignment Support \n6. Add Two Icon sets for Indicators \n\n Feature Highlights for Preferences \n1. Add Lock Mouse Actions button to Freeze Mouse Events \n2. Add Advance Position menu to pinpoint where to place the indicator on the Panel. \n3. Add Refresh time field by which you can change refresh rate value between 1.0 sec to 10.0 sec. \n\nModes \n- Total net speed in bits per second \n- Total net speed in Bytes per second \n- Up and down speed in bits per second \n- Up and down speed in Bytes per second \n- Total of downloaded in Bytes (Right click to reset counter) \n \nMouse Events \n- Left click to change modes \n- Right click to toggle total data usage visibility \n- Right click continuously for 4 times in any mode to toggle vertical alignment \n- Middle click to change font size", "name": "Net speed Simplified", "shell-version": [ "3.14", From 581b84add74d6910330b39fc2ba5bd15a05426f4 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 3 Dec 2020 23:17:19 +0530 Subject: [PATCH 261/344] Add contributors name --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index fdaaac1..107ecec 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,9 @@ If you faced an **issue** then you can **[file an issue here](https://github.com - **Middle click to change font size** +#### *Special Thanks to* +- [biji](https://github.com/biji) for Creating this awesome Extension +- [m0hithreddy](https://github.com/m0hithreddy) for his support in rewriting extension.js with Clutter and other features..

Installing Manually

From b8c5e604c0937939023e437c63e66845404c87d5 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Fri, 4 Dec 2020 21:37:01 +0530 Subject: [PATCH 262/344] Update credits --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 107ecec..bc1cb6f 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,6 @@ [Get it on GNOME Extensions](https://extensions.gnome.org/extension/3724/net-speed-simplified/) or [Install Manually](#installing-manually) -> Forked from : [biji@gnome/simplenetspeed](https://github.com/biji/simplenetspeed) -

Screenshot *Screenshots*

@@ -56,8 +54,8 @@ If you faced an **issue** then you can **[file an issue here](https://github.com - **Middle click to change font size** #### *Special Thanks to* -- [biji](https://github.com/biji) for Creating this awesome Extension -- [m0hithreddy](https://github.com/m0hithreddy) for his support in rewriting extension.js with Clutter and other features.. +- [biji](https://github.com/biji) for Creating [simplenetspeed](https://github.com/biji/simplenetspeed) +- [m0hithreddy](https://github.com/m0hithreddy) for his support in rewriting extension.js with Clutter, Adopting Make build system and more..

Installing Manually

From cedc6e8e63bc713361c8aad9c3309cb3f513d41b Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 8 Dec 2020 00:37:21 +0530 Subject: [PATCH 263/344] Update icon --- images/icon.png | Bin 224347 -> 112102 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/images/icon.png b/images/icon.png index aff26243061b461903c1f61c4aa3f2590fd4774b..6634161f059b52d0ed147fa4b987be7a4c3cced0 100644 GIT binary patch literal 112102 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

-`g%j-`~jr&)a7*@5lhpx;Q8H=M)0I>ypQQIjqqPIA&8pg?%bQ*ZDYn7Kz{!JN1dX zoti^^cJs>BvW&VDZM=)^O|fc8DF08|wf07C9Ki&z1?OfxAqPVcBz9&62)O_M6T`0R z7bSnlofN~7_1M#`dizmbRgJHE0QYK2wHdV1D2qHxGS=G8L{0*3jj4^Shswi`7Iv$~p-EcIFmTEZ4(OM<;tmKz4G|?pZzg5K zM|d|29DYuA3>Ha&08o6*-aUJfZPWL&z;;cdV@lP9{Xqv^P~wjV-bWE>CotqOHMxmf z;IuAYd%({r(39Xx1)eD7$e~74=&ZzYc+66j+-gLm%uPArt=-hIaXA0~?w@f#T2>%4g8XO#2O)ZfS$Yg>24O~w6@piBSwfJwv_lUY)uNd{4&MLU_9g}8G)Wj z05WgH=G42CP3}YsplpMONPAdp5R{ z^4smym&>mmJkv4Tt9FS2beEFc5Q4p8?od&17gPwtD;`p!h#jB0$FT*pIi!B-0*Bhl z3@gFX7u1(;O#($!7OsGx%th|o>|{ne%uNo$7N4~xa&<$5AZA39XY&g2?q)>9rql1# zre+?erM}Zo)_hTYoG#4V&(N{&pFwBG0oR)<^Zo4`yWm~>KLsSyxw`c{(*-YE4Brkp zEa{%QvQ!BVb`{7?<~0tzG6|E7zg#X4Qhp*M zjYOY|+6wYsU-}p-Y3Uf-C1wFE%B&5a%9e`Pz4ltGDIfXpn%;Xqj*_e{sXl2fT32?j zf?&#fv#Mc;+-R~pcvU+<(+u7fA^$aNe5GD_rx#-fN!%_wQQE8idm;m_9%Rqmk9D25 zE1I|1(wdz_L&ul4P%pJ!;rIUj9USmXCn7=<9EwbB=#2To_&N{c#E34g6Zz{4ZwzwFGoBZR712m`=NrmPJD%5BzdVl>eQtYYngO(vbB}8Crfu+qUTggrwydDE(;AR z!Ffe%14$5mO2kX1@UKdl%V?cfXVLwEB0UHQ)|3QQP4^L4bOrrX!*8Gil;_CC>*4$2 zO@+T2%oP8Djq1LEY4WfZ&{V5=@_2l`(B&S0YW!gA1nXZXF$O~c=R9`$S~c1DfJbA*;KI+^>_ef+)#A^yk3n|gMT5`$_@ zrZE@0s7AsiXxki%WRFgZ{Z3T6ZHv$eWRamrjBp0fuCdi?;6_Vnod^L`K*nGhug3f! z-y&@2S|6_tq=W)0iMCQ^$0%KB@Wo{a`p1#bKy3C#z1QH_ihRJ{qtpE6IQobHM4C2Q zPhOJITUe30#B?_4C0SRY=m^ER2kDj$0js`5g;_T$kF_%XcJe5aT9cnqgDtRFT+iI_ zoqHzdpI^q})#Hyxm)^di3(l7sTn8e-X7k6HW)3^nS`tedXqYln{g$hJgFF)jHFitS z$}&Yr$MEP#t*97U4-tDo?HEEnn9}hzg`E*IwI4g?U_8)R2x7lp;^Ef&3sJ-g39(kO z1n#9{pa$~Ndl`!)FpECyK@1@i`dV zIRz?XHwnxi|G>&>9;!L+ZW*vy*DYiO^HFoyZq3Qftge!Sj4j%p=`OX|!|0K@I6f>T zcz^rOr6m3@`n}{89lNz9A5&*Fb_*DutXWW(7oUy!-c$t`!Dsn6o*de3_0AIR=t?gO z;JB*eL~GNVFX{8!EUnck5mmgZ`Ro4dcGjD%sIBVAH4R?DmZ-N5Qb%s9ZqknN-$&*9`L}w< zpM4Vct#7rdqsFRU9gs4 zO@R3#X^OMdLh`2vCq3)lRO9AS*PCG@=$v}Kd7r+T?IFT;uCD3 z@64$g&;qc`>1j)YPxZn3`uSAIYM$d-gP;Cg>c)|FAK_4b#ozPC?`J^jLAZ;{HXJd7 zP!#MHw?Ks+S82=%aLM-0INi6PkilZ}eakt-o-Krj61|pJ+1YCs#CR_13i<9I%!K}?v-88e4(LRP&~C`0g%w{LmFSOQE(3r|0} zkWN?IN2r1Gmayao@peHS&ImxE@meek0!3J=4rAjn%Zwcu_1kkRx;Kd@vsxjqvkMoQ ziVW1?#vlV$?S?Oc?6pz`yU%~J{k;Au z6eUP*Sh|bjG;!Kac&lNPdKX!4?y%nIV7c*6uL;q!5!f_w_T*IE#Z`aGGU%h|qdt;d z%UtvHpy9>4)qBo_F<0bu$7;)DzxC>kB;)V>mongApPUhrJ67CE`g%uwi9?0O&Zzqw za`<6}#biu4*jkRM5SXK~vn!dV8>1C;8p36KMOz7}uB4bI!{p;gT9ej~t!J4;wWlr} zCJQJ6wacfuhAAlc13yn22}G1fk`Gy`l>`VK35nAnPp4)uk|6%F`+hR~_$9Ntp>XwK zb#n^@)387GrrF*GRaIZIp(`R^e<+>f9?U(MQYcH>Uj{m;i@D+(4P;Z!5n6Vr8|%X3okiU zjsEa_9!-D$$U;(6xri`j6OkPGie}f;y~*L%dkR#25ot74RG4ads>!1%^Q%ai6`J6j z6-Ay?Hi!ddEW)qG46MBy8#*UrP4<}FwdlVk7mnLoHxy8wsOgr2l#80qsQTpaxX%@T zr{!9x5^Q-!6NxY4x0))1lCN5e?X|wdtMA}83(eD7Km^kjF51C8qnsv&G)uLADo@2u zAf&~mz4QFV40tcW-1!Fmba5*55_LC$E9}^$E7Ut(LvN(V=c9vM*Qa)VCF%nP14Fcl zAr6ek{t~VnMIY@@5V0AyuSrn$xl_&hdmlv-EjdqE^@(Z;l8;&0jp8#4GptO)Xb!o) zlTb?OS)xxPP)jiKU`l-kLu1Lu^#F$Q*Gpaso3LB6q|GFvhB50sZhH2bolw=Io%P|2 zW|gOU7Tm&g&J~vi#BlXn?nM~PM0`RGiF9qYa89>> zznfb=H&-tk9k8XTcLx5axJ)|(W!9917<{V4C>c|(0WR-*L};9(K{@tm#2ze{;D7y} zQ}7>o6LO}ztmz_>H+VLSBy*TJ%v!>voIuRE9J{|Z_IObiKm^5T39>CIX0DH6btXoF zK?-;Y>kBEdz)mPQkA?Es#7|c0A`l3U`&zqOcnuH!{@f#3~;(Zp? zR)US{8*wPF>LZ~oRzh#FwMM>M*V}^Q_C>~3&|%saaaRET`_Es^fPehw&np1;H64F& zYlFou1G`7+>BhU}#i1}Xe!JM|Izt98sl)Q~&VXCI3@^5tFUxX7QSVEi8b%pLoqE%N zPbEH$7L>DdIjMv%P#MjtN+TuQfIou(6cWxtW(-*|!+up#ss}rEwg+_%n?C>x4y6Wa z;r&#D5nIlck{>P!doMZk#f_VtQr>9S+KncKaFN+@vdEg+dfw?gH)RAM$9vp;Z z;LSm~+=_EL%YNT?KuV$^D!Ik7UZop@5RIIo!C6&kEuVP&8u@+{kN`Xxciiecs*|7i zZEO_QHdRG@2XbYfCNYJvcUp{%Ug3=;q*U2c598$rH?VQ+0D4F&0?^NOT^3rm)sV-j zeLA;lx7*d}duMg8>pyO8C6f4HE^-T{Ks^Uw!mj+4#S19UqW-{xIAHcOWuo&OIM3(g z=S6z{!=zU!{R}{TgZ1NIGN8gRPZEI7Kfis=0eC)H?Hv3#J~+7!*!a*8Be_}rYK%ob zKl)!dS!YH<5^1U9VAM^pS2%PBVs)gNZ0<$`#v-^6E}l7zcjDdpO0&P@=v-xkf;I4v zou9OuHN;1n^VEZ_RpWgf+9D2@uL~R_pVkdcH{jaP8}8!PWm)a0I?zS7Vwv^~_; z&z~fSc?Y(?1(vE{q!?AMsI5@c5q;Q|QmS$x;ji@4uoBVDM(L|=V1=F|d0D^7Py-2z~VVI!5__?xbnY}s~J&rP8h#2EU!+4I`AWP+8Y zL&W&=8dAqhQvS;$MI(%Pi14`1-gF zQM+ALl;B^LGRV0GhHORA3T@)igK7%YT^#UdNrMB=jQkR9VE+#V0b?*3HuUYPc6yOx zuadE9GIXI8QF0gpfwaN5(m{ZmI|tYFDO(!1_D327m)vmqKCSR&?^5fgrmt{`0YnLXkI8mM4hL{V}AQGpM zR%l2CF50#r>o9|N3}tBel#U<{8+yoEhvB1!LcJPtKoPLuCPyo}_&`|%Ik4jv-K1nt zz4{T=yoVdV&>xhBk3mFYy+Qxv4z@rubmfcEta~^KxUif11hegllc15`vxGIbR) z%NX1+hE!LKr)!0w1i3le&ukE{re62nF1L4y-^YzmHP0;r3j(ytU7)qungLbLw%dWE z*-ES5n#t4_0)J^5o&)~l@dle=36|TME=McsU*J^d2zb&zYVug;yYd ze>z3$lm70~`%TA!=H&E)-QZ!wz@x7WqryWohfbyv~)u1nkHiLpm=bFX=*r$&Hi005|!o+ypkmw=y`aE1{F4N8-sBu5* zmguII$eLxj5o9W-_uX=uyEz5lOkKwZO`!2Ukk#eM-+a-#kbsaF2TSS(c~N~o(VaCH z`s&R9HpU?KAaC>YX=qy2)%n#)3_$q0f04VrWQd{#7vP(`H&`WfzL zH9u(wCGDL8Bl?uvq{eVSp1YBo+FL!w@!Hky<5tuD+Cm&}J5P+qn!Ry+mX(OeI1=JLm_J-|eSqL+rQvNK= zmf4dEv!sv8`}`h&Up4+T|NSKdPbK*K*GPe|!8*lX9A=FziPzt{m9=whmTdQfs9RaPYd78a34uw=AP#AHILqbqZ_+FlG*1sGFuD@2t)! zI@63qpu3$?OrC`B@6)wOIjFsoB+B^1zfcqLw#?%-U4n4Txi;5dUTFnm^K9aK2haJT z4z%V9-{ANpKA?^2t(``X*vYXfmo2Nw_jx{Pf#ysc%Dw)!CbO(e5Cb3_K@ zi>cj=L#_C;GS-t4JyY}Ji0f&>-5qD%_cUyLj&;F#WLWRr%%E#2*8(wH0Gn& z+=tK{&@WYk9|N$D!|rZ2zf5^S>(+10jAKrxt&B5f0Bk|~#6BkDBgCUDV}aOh7^`1C zD_j<3VsE&SEiuu@@v6#Tg1O)eJ430IqNP8Sixliqt!C@sRMWsrP~I04;Gmm_f;2>< zyNu#feYNy=z$@Q8HmgZMX!Tdaf|%G~`0heqP9_0;?(1WQ_OQ#De0;PD@nk-oQ0R~z z%_oUS4nW_e?rA;Z)rrxwUo`8}*9OS94vd zuM#TpM)3@n?_b){`qAB=8COD7=6Q>ztF=soQ2uJ~1RtRTHAe;6sc0LhNc3xhp*;Y@ zzdjQH!wEGXmN7_@_;}5?<}BDojkX~XHk^!KKHkMOvJJ8yM_j6Tm_rPI#wzQ6$381p z--key_et62QNjN+9?k;Vd0IxStp|VmI1R@T8Mpa#k zLeod(qGa&2!Oh>}+Rke*E&ijBeh&bBfM^H>9Ts!C0BUyRwaMjcLz>O@lz;u54Ncwq ziu>M&9dAN!3^iivV;}gCv#oilr-?*67x)9NOKjdSdCd6}sR7)h`wP~L!+!e*75MFk zWxy|=o`N+43L$3M=e+FO;x@@*CV?i4mmfh}J(rN$s)pu=!gkEak+g=<5Z5-mrKZ-y zA6F&od&w+EJ0>o_s5!EPsIvwCNYK3k1JzXx;EqDdjC-V@Wxv&NYZ*(cwE3l;%$HoQ zBkp9uPSPZwEErVANB_K(`WhxofcTL%1V3;1Mg1owMs~X*RF|0n)8e6R8EPn2j&&$m z19DjsYVij5`liIG=CREpa(h@tL$3#O}|) z@;$L~@^CLzSPzPATW|@gQT;OQr4B061D`=GDaflMZXan7lmOO{1PxV!PcX%T!fZB| zcK6E&PE}0@s{^=-c^DxoHT$XK7vn4`xg;wh57QKhf=x!Is#y=5X3spo-*MJAF{G=X zlCwZ;zMrdEY2K`rpli`^Yt&kAiH6@!>+KYOPBLG&#Caxc>zO3cVHTfsPXQM6h5wfU zzdkz*^X2K2WCU#jfBb+$7Jj@HlLTZA$rybP?wF*yyME}Xj(;?Uq6PowG8k-I1){YV zsl3+!i5l$k75T04AUE9!4+wtNuJ!|lRCBhwwPI=x4G-l|!GpEGRxUa`u~a|k7iU@F z(rSh(<7dw-`fBMzINXOF9!oZ88c7KG`mpUE^9 z489;F=XP~5#oI{Yq>v{CLw`z&H=L(j+^8c>xZHv`@Urg-gn5X-IVV7Y0e^iu114Dr zC|NJu5pI4{af_j8zT?7sR9ndKq&?vOI4V)aEK$d!@L0*g{cq@^qO~zu`(@2m>5fVh zX^}S`dQDc~emKnyFFEJYu1ce>b2F|LdgGVgyyogO(^Tlu%H|el!^^KXg2=+%sEYhJ z21jFRiLnt>WMEa-w%604>EGAi!27P@H|ZuY)oyURBX2B8(!ul^Oz3KPuqKQ!DSVo9=pp=II zBTN;r!1)LQm{k!Ny=s257fszLk|43e%xo_R>RX8@`@ zO!J-c|2Vta-MEb;7|E6qc{V(9K!PAK9P^Lv{U0%!uIi8Bt^jRxhr1YtW7%p=cURX( z#b8u5_E6pGJ;~mp=yDYV&}qdQbzY`oV;ghM=S^09^gG1K7ALzh0%k@CJ z9qxj+%=W;8-4=Ic3t{kvP7hAc;(9!&3v|8`0&@Ujk}e{9urtL?*9&mpC-Y1&WWyNw zs-X*Ax#LTt0H?PnMnGpH$P4&cfUjm14X0EzUVnxuPig;MQCJ*4_3bNxo5OF6wJlIs zpEwGWGu=c);#Y-psRTpPRaRa*^9z?g9RrbT1@}{eJAGphGzFZ(eD*k~4|sMz z@WH$;G&*q6io*+(mmF^lRSdA|!Pjqw6clWPR)&ofwux6~YC|C6YLs<)Q@T~4BPbzD zV}PSsYWBDpwVSjlb@796&4Xu&4H1RO#)1iph>8>T&QJF&k%{W9nT|sd2rOQJh6t9v zC7)b^e?IX5dIi1*BxZ8?dl)k(2f|CE&4v@riLUGA$Z_yg&5AsfrM-ShH&$V#jOK9; zN};GMtC-Jbkz8^InU(wsF5o~8L)$sFLp(9%Fw5;hf!tptr^bDD>d9dcDDORKu<-Xb}r$_;+LoMv2MkjkIOFt=UK-yLU z>;V!02rMbtjymKSjL>ZzaeY%Htdor`&dM|1@oiDEiRpvL2_QcJFUf!djM!j;iN#&G zrkVTC0UJ(9LuqY{I1H?Y7W2Q-Pz5*DSYkx0irt0~Fm3GAnhkHkB9{%#q|j4BM>^xD zZ~}2KaO+HUwcYM(SSxG|nMz!VODAH#r|bWh5%98wy!~o>$Qj1U(!FwCjnmp!8qt^{ z4z0yj5e}~eFiU~)%ZLIal^Q;nlIAMq$2X?V;5oMl%0%XWV>HhyX*cy3kUw&vo86^3 zLFu-VdD|ZV4a?4vhrlNpqNB2UPRX%GtlruYPM8S1hHyMcM#^vgth9AbbF~o5gVuY91PX~uNc`#;BBf0NE0enWO zQJDAp`R~z3?7-i<1m6vT4GVmIIr(0l4!4|kjkW@m^#i@vD^Tg&YcX8LO1J&6wO6s= zXl1yi(X9uizSP-#!(ku5GR_;@ffLwx%z?-NRYwxFXKD+K{N&KdB6LkOZMZ!&2B~o; zfom?*NPW0KyzB%xHae4oYGggQY+W3e@UFcsaf^@PBg;$g4vc58X3QWrpDE?xCT!H>4>lVVw*1R2^eqtmZnthWwc9nbI|lyxL&`9YT>|s}57w=qz9>IbrYS{Z>P*FhNfxowebhnW91pfN* zyL_DX2zG*F%FByllxNp~PyZE44lCS>@%?n3=O)DmM;S7@8f;;ff-FH=zA+73kU}|# z)Op++&5v9{-tq7Za6t1zXmFFs78;~7Twdzsi?>uH9p=2b84Z!11%X~-Y3UMl`Bd19 zffb1^YHyFYOjGFqDZ0fIE2JZaH8H`%{Z7>qI>eDRa4X{uAk*m8`eAAvmN+)3uzVjIRtWo^A7B7v=};h`u=;ye@3U~ z^_mPazK)X!g78g=Tuo*QClwUaCJUeo%#Myj_vVU`U*VVD{~ebKbvB)~I#tR(7~Hnx zo9>G_FWSEvNyhad!{DQopgUqyiBOvZ7H_cipt=9b_tD4R5h#Ne_ z9SrP}-)O;$z&i~)H%X?|B_#Mr9q;JPc5Z zjPg8HET>gA66eDZeUp$TGk?sU<>m{dvE5|`!~{sMM^aKrz5ziRZ($O9F3`qH*(fYw zT1XW&eU?n$+u{_lH0J0>Ih z0|~*Nz0%nqT$nIZu?O%a6yP@-u+(4JLf+ore*FIUIPGoIVer%kj=L}#tzUxu&GSMv zGPf6?nF_+%lDSL!mNak}2mKB1zOt7@B^^1IDH*96LBF_;wP$d^z9&L*_5E{4D#B)l zVUUNngxRm>cg__CzwGlfHxL-S2@s=5CDP)O^s^mTWYDEyCnLA+*$tavR&?`_ts&4& zNiI;qoPJXbOIH1`p1kqraH77I-(`kC;g;bA24?!N9*B7^<4j0=0Me`!r0| zL=R%MJ2um+_RDlLg+r2j@dIfXFIQ4y7gIXLlE=fay&5|on=+yt{(jT;&r6r_6esk!z%RI5XK0XLli zOTW*SyN240eY%8{>B_(A>+j{#fuDK-`2@ZRFYx3OXs=(<*H2dt|Dj(x&W;z;PlNJg zPOvWmFt0&M(RgcgXb@(9GseMWrdqZeG>}DP>4T7^Nf7YZuvwg*s|v^T7@`4^l``Fb zRI*l`DoYbqBoiO#!wPwW5R)v}Nq<|h^h)qioTh1%vG0#WImxHc-oj=R42pp7!!+y| zOghYv8Zr^ohccL=dJ-4ev)Yks;GpU)F1&#JzF*5lRe2fb?w_}EuZ?@aM3o2dJ%TXL zynvS`{QB91Kh8jc?fS4?JVcQ6R)We7igCXNAza@H&>?{4wPreYH6-p8oTQrEUrcuf=lzOrWuW&SINMh8HtQl zBpo1(9pg4llZ1r~lGf1juMZMu!Y5?$i*}YC80ZkA-a5;Tpc9BLm9;a3(aOWIDcKIf z48QHGI=ZKs`XM;NFJFs6nk}1=QNR5FIuaOqu@y)EavX*3+3@nX?*Z zs%HayDua7yV3Wugx#&vjg3Un@m^$Pnw_muiRZ}K+H?B%w_5>hC?IW6MCe7yJE3`qT zbIz%YFRH=wWiZ1(TRMh&OtbDs?FCXz+JS8<)ZTV=EwBquaNq)2K>|n zcoApX82Exs`0T_e+J@JnvtNJ-!w~47D6~T)D$_^u`raBXb z;V>wdxP*w|2EXwZ#;i`}#A@iKXSML5t0sJ_flfE@ILrG;79o0*Aj7jiteFttK_Dzk z5Z}M{2NSFGiAzYcL2vJ5#Tr~^H@-3Jub>B3+>d#L!HnGXQ86fGh}krmpo{u^di#ZU z?a0gLzJ4vMjJ&_E2fjO$4f7uwaKK=mD#7~-eEt35H(@*O#^02=OsAjdh`{LdclI1c z6kyU}*t|UmyjV7;CglK=Ve3^EwK03EUh0~8I^MrTi$1jZLj|0ANzIm3q@V_!S{5~N zBtL<#q|i-Uqcs}`%Ic8}F+&0hf)=78=61c_1qd9eQxVS&@N^D3ZDlq7vH+Rk!3SN} zTul|@X2R=tfuQvOBL5jd(lCn0Lm1}kN6-bCT``{5ClvMf^8TM1utCumB&JoMusPu1m0&X1MDhT77d@b1}ah&G2XpsfdZ$uiQG-XDpLV2v_oPTsNU2%MXN* zC;x(({-~Pg(6&*HpdMn%(4v?|<>o8?Y_e4_{aPppOnc}`AIouSroZXHIt=1$0|KFD zL1rSo(F7XGfkQy2SJGcuahgGMbEg&5&f_v}BzpHY1TV&w03?Ln6(+wa{2 z$nyKFzp#P){mkokw}`y61b=j0*vNo!a}WD(x#&V{S~NxiPH|f>wG6v2fMl_AB$u{I;9QIUlH04ua1(}n_;h`K{C^+emMM zY{0l78YTYm{a^9Wxldd0x+gi&;<|_h3VuvG)0uCKD>O~juwC$ICQMQQTDLCrPUw|p z6$gDb8!S2{w4CaTb>%&HqUwzeeG5s+=FkP9itP8{ANAyzfDW_W2qy*U1S#X*H)e2G zdOZxsgE_YyMn(-b?a;t_5jvXSG$808s04>WV2``+Lv-kAk8OY~H%!KE$PtBiQvG6? zS6bsnjZ+{?z1uTRTX`D$<0>69y$< z*TvX7->MChg-s@9FF5=wD(ryo^8}nSMvFNb?15c0yP$fj zv~@qSO|Qe5?RLOg2{spcVwyIn!SooQq71D-W-Z$TZ>1al5liIO=ZJ%G!eG2ztkZ#n zd)NtIGqXe!>}J3XDta%m+jHYsQOSyEN26$&YRThDU=|n7zjmM?#dNst=2>Gv>K7MX zK>F1Nf2#*I;Mf*ZuFNb_ju(Yo!hz!m z63Mmffq*iG^qqmMjx9baI0WSJ1f)r!5EqVPYBaT30}eiz)sb8*c1pJ-21m!Wp?$WH z1gml@hE*bP>}N`sk$#uFG#tN>PWM70PXr%;Z!GJ|bikYPVfkl8VClwz*bxH;>$>lv z5ku~QVUTtdkEsHXEz}biY`hOGgu~Pe8z6f#9Z5_K!2Q;DX1bb!;Wd@$u~&KRX`b-fr{*DmgkFaIK!H&dJ(o;w-$3hAv9%mI` zN}hwzcGD#|PJ7R!OV7KReD8Q7spPtSb`A@yU`0b$9Y^SO#x`sl(Fx{o(ba%>#sZZ{9Pk?< zy5s3;M+DV#kl{gS*pZy)cucsuiGhjeYms*|d^j^Z4jVJhHgd2#Tb7bz;Bo4D^C0kp zf=9;FDj~QM!!zt?jMC|P*B>H&)6Nab<4DP2#pI#=PIW9F*Y zey#SW&RvJU#5%q}f1rHZ|6!?fFVniI#<^|Fb>Y$Xg#JOM7&8pC5M(JBa9FGfi=#07 zly@tk3tWDMw-J2>Nk7#;9x?&ut${oabR)qCf}iqErNBi>WjbHP-=h}53D-apfh+_o zMIhtv1H*TMA3#tL7=)6DKRW~W1o(2s7$XFY99%ODi>EH=Q~nKb%$sg47*zVVcI$HarWMWiEM83Y0ftKtL2H^Q9^`c(ME z=I7_7Uo;M+fgmd*P6}2!4yatiUS5iu&QMHmF5E#1Up+p0arKZ7Ucvm=H(p|Hp#7ZazMu8;+?sU9EQtyY;6 zWlx?~v7ctHt+0>6+>(KxYtSRFd#YAh;pe*FKQ}T$-(!(h1WHGo0pX{-O#$RpZt(YF z@t0ySLLfB&9|LHT{?mou%xb(be%V8qn!Z-NB-N4%dh7Tk`pKR+IwbEKw4~F5^1gA4vM0~fNIp$oTjiTLweVd}FT9$+uUBvR&9zq+eOCE+z5I(H zXhG;?;eS%9)u+6yi0F&p_i_l5GD0>%gWG1$haxYl zGP}%eUO(3_H0aifrAHnO{6zl!YJu5hf#4!#b?~1=@at4O~vtt9+F@m*j?$SW-h2zOy4C}nc$Yc*#YII%-{_4rYZc!x6A!g6z46P~&~b3fZ-b^bhvzP~t7 VIoKzA%ZdO1002ovPDHLkV1m72P51x+ literal 224347 zcmeEtWl&sQ5akR5gIfrJ0fGkC;O;I#f(LhZcMSx0cXxM}Ai>==xVzhuZ{^?q-yb_w zQ&VqdUe$fwr*C(kKKGa0H!)-c90ULWfGi;{tN;K&P5gVqf#1JrRuM~k|A4j^lu(3w ze|f+e1Oots0106MMHj8(c8OSA;{@9KX08H$LNwptjW6F6#D_{osHEJLM+|>7s^ONF zCt8!dK+nEf=4EEBTx&hTC#Nn+wKlLGos!2pc6!CDB~!-y9U;_589C1$Z_d;X0-<*c zd?AgowI+k<+O%P>aQE1Qh^_S67dCcpppyuzppaNX)=aN?}?4>P_hQ9#rj9?Rb5A(_4VHmEMVm5~~FewM_C zjT)8n_y+j@Fm>K<{C*d%cd!L4?LVA#rAGVOi7a(prrJtd(Es0{_wO#M3F~K~n$LCr zA#|+zv31_r8#_XDJ}FW{A+|0+i7$+;$AK-RCsiWGDvqFeOt05-bb!!7u(}A`-KZ|p zAj!z2r~4nkwP--#ENvR?hKBzh`F@e9$}#Hr*h$lvTUx_At@-O~-^C!ZSn{z{?rG4a zWIk`L^=#Iz-(jAra=B9IUVdQ(jv?T$?uC|TOA1YB)_k3YW2g0;KfO^$m)3vb6vpB1~mZ-2cMFjMwl-AM@2-A6HledJYdLtc0`HV7x561k!y#XHF~FZ zqgB>&_Cw|lrmCL#W5>f{9nb%?P$k{Jht#CAl={!Z8}WuZjftLjI`(!aYewrYH`dFi zbCIo9)&!XQyl))y1lKDj+;L~6^Ej7jk(VtQpPs5Gin8?DH_YmNOBFvExYj~+(>W7d zv)Wr~_W9;jVRY7P;}6wT%1=4>xm(RV*U?SpONU{)lxw(V+sHL;cY2@U6q>0V5vHn54cw$|`(PEDatvIDp3@=~in+y~Auh zPNb%@i!we$>a`TwL`)Yos|CI#*q+6P8|OxKu6Wig0@K3pO5O1|$3$LhUcTN6$Pp_# zRn&ivU$)$J+2+^2GWfaxMf#inCc4)E@gJre3E!=_?&ojNYVr=9wkJrEK{9r{#c8WG zJ}*wI`UIt7uM1vczZ6ua*s$zY3E!dBHj-r@Lu zP!$QbB9ZRn@V!=hOp`ob^F+A3V}yovOjFS#`X_-^))F=X5 zcdc^$vJ}g_hDo#XaC2ZmVQ>^<4;8DgW2uret(^$k=p*)Wq^9GfN0FhLF(st#4M?T3eH!hP4S0U0#Q^@A3|x4agmOZ8ykl zKR<6J`0UvtXxX_uqj^oax1>eJ&s^nfRjG5M`cuN~2?R@KagT}uTC+SAc`O6YFm%kB zef~-y>N4YIj7^T1E+SMs-~$_!tCyt!bAVZ?awlMgIT7Gi61)?I1mJd1E~Znkko{*? zHVV){WQX+x%2LI@fH|`QQ{)?czkj_yji^0qXqYl*vnFVHdp$#4^?o{w%)9iMu>7We2UAl02 z^ipf~*J+i{RUe$7jk{k6%`l_Yuq@Z2r~7GT=?G8Qa^VP^^~aYTN(sE z!%qc+oY%79?ap#DduTT5DdpPn@Zz~zd4lJ)3TZg`0bUzH!uIiEiVQu8f8RlDh8S(w zrQd9}e4n;uy;~v=uL_ZMMj+zTm0cS%K0J(Q=;ffLydt{4Ipb~ETj{vg;*`8C2I>WS}Lh^U_%Z^t! zXq!Rq)tLAt1sl&g@~UAwo7%Cx1W3WF@TJ`2_z^*?G_9`o+pptqPjk{Yu4s*#QBcCh zMRdlsP@}p@YzRg^p&K7su{=kdiDY=PJm=th&ZsMYAQsB}+8Ot=Af_Mqx-EzXJ$tn@ zrJhgcZH2FT#iPJGSZm~%;^Wq#pjjH;-6>kDhpA+_B1XeX*x3k}MdM}_DA&?R8!D#roY`8MRB`(sXo{KcZfWaZv0IOVUXD|SFwdN( zD~CQ90~Wv*mrPL)Ev@kad#=#!dmYP5`2Mc|UfU|bgoaQcM4SOx1L0v8VZSerF;DGp z544a=o*6FQ*n>upV_9reXqc#g2}fe$Q)QnUyblwrD)5G+RA=jAGDQ-}wMFtnmc&;O zS_D9`nxICriAXf6>PipKE4B}jA^;FKZ;nVOrSD<&_rozL^)t)DHG6R3tT`(KioNO4 zW*%t?F)!o37MD#o>PmX+h6+6z!`Yu7+sf2M1&nYUvt^2vPB;qrS|WWd%Yz-wjfu^( zFn3SdA-i8+X4m9n*dkxg7!p#4u^yJGtcNpxyvIkU1~?)jp>w5Uf$iUAB@qa^t2k9- z0QyBVp%2&P^@o=XsmY6VcBx?Moq^6XjTgBo>{IUshTrxigZ<(cryze{T;1IaI@cH8 zaK3_{1kY6G^!p?w?0mtd5f5~<^@x3&$UjJIl z(}2__2X>jnCtn0#NJE4{+;7wc+ty?UJ)<@a=WsT$mQ_IWH-?wqFGyU_BiAEEoZH{~&5cj_{DmK~p-K=W@|Acg?R ztvomVBf>>ZYq3)LYtXuHyl-?Sd|sDN!l8W>*K0J6fSYKF3n2~_)bAvI-2n9Cy)6oVsxXQ-H6V(+ z`!(*%`EI8dl+S3APmco3#_3ik)gsm&Uw+IP7a0!%?Ge%GY)FV>h5l+0s)jLSX@(=q zC@^I#bf#EK>ze@lFS%kZDyo^*(AjZo?mxW7fo|3CSbc+@nxTG`dv}vs|3a^j3p7rr znRfcTP}zvo#srZ&WvUu>e5I&Y7KM3~QsB_@!3U09rY-hA(K;XKEx+_uj<>8oAJR0HDmBgocb?JA zdZ}1!eB{>cB}GzZaGiD0?_zzA7sW%)xu&Ij}FQE%jhEx zWehW^QBk?`HLZyu-IAN8Fg7z4X3a&VtELh!mP`=s*q<2ViIgG0@XMPz(f%SmdD3Lj=4X2 z|K(99eWrD2(!n2H7a`+=8B&Uk%_@+A<;J(YSBokR#V%K9-f43&(EOo)?E!WK$)o>} zOo=$FhiJuSs6pP*Pw9En#mCHUn^*xy&J_kmodPdUzN%`NLM7`#L!g=l)|rGy;d6$J zImDx|%nAb$%K-^+42j~>HXXYo(l&0`J)x&p^8<@m#qtqV#ss+rCVxEG;%DO%TKIuX zZRPiYt$9WOY6&(0Mv_YapO{&7C>bWx2J

bB01Dv`F3mOuLEJuD)GpyD(2)My=h+ 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

-F&0qXR<4!8 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�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 PxJye-U$sv8dBpz!^d}QF From 558cf48892557d7eaf0a4ef8f1aa698443f22d7e Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 8 Dec 2020 00:40:05 +0530 Subject: [PATCH 264/344] update icon 2 --- images/icon.png | Bin 112102 -> 168639 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/images/icon.png b/images/icon.png index 6634161f059b52d0ed147fa4b987be7a4c3cced0..66fa1e0f22a7598dbd06cd9e50129a53e76e6833 100644 GIT binary patch literal 168639 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�}7hdEzQ=4XSuLlO-_}Df36a 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
    QueQFvW%P;tnKusdLh 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
      QueQFvW%P;tnKusdLh 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 Date: Tue, 8 Dec 2020 09:04:42 +0000 Subject: [PATCH 266/344] Update schemas and remove colortoggle --- schemas/gschemas.compiled | Bin 1467 -> 1395 bytes ....extensions.netspeedsimplified.gschema.xml | 3 --- 2 files changed, 3 deletions(-) diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index de82611a5b7752b90516e109aa12192a61761373..57746059f50e70154de39dbe0dc60255cfa1bd92 100644 GIT binary patch literal 1395 zcma)5J7^S96n*AnVzP;e9|)*mVKIYo*AI(Dilhk&qrUL099?RNRi58#@Xs@FaoLhx%=nR{odx0%=Yz1ev zvo0aV()x1ELOg#k&9s8LT}+EU@F8H~+0q<+>Mr<0;FExBpID|(-3i|Z&jRxoE_Sjv z)UEKZgI@zX!=_h^r)Hi{;IBaL!|h@E)NSw=!Ob}2>3d5r=u`K??*s1w+B)8!qfgxf ze?Pbg9DZne=u>yV9|8{pkNUq|rB6-&82C8Q-m8Dmr)C}>908-(?xyFWW<4|DSzzGJ zZ;SEN^yk1&fwu#5=jl_oz@G;%06QL!U#3sZeHX#sfq{1;H|SI6;G;>R75GxT|B*g5 z^Y?)F0!N?RO!HGS|9D)7jz2X2Uoi z9RO!&Bf#0=oJ^_MM9Pzp=}PL1vN4%~b=C?3+qPX_DJ=sRb1c()lf`lGRdI=&N~HEp z5Upff9?W7HD#Xvh8t)krmWTYFhy3}9WBdXxPa(ZLh4k_i8keW=@8v0=5q{vwAoc>+ zF)BeHtdd>Tt_tx3D=C*8>tM0izq|1`V53}ZCvsXQI8gSkuGNJ1QND2!v$A#i2Yk1x zjf&VVILKgBxg5%pQXzkr>`=Le5XL; uTn7DMRcT$?S2#^vjRR9ZWX(6;diu078rgnp=7RO0Rq1BwBa2%z7k>d}5CyCN literal 1467 zcma)6O=uHA7@gL}#QvG8g@PV>@UV+D@rUA}hxQ^B+mnY~G#GOg4qJl@k zTcP3)Sj65G4<4+FsCW`V3)+L|q1RrdAVQ&_zBkDxMJYP)^4`9g`R1FMZ!$cVi~L-u zMXmLK$E(_Ej!kf)TZmt1)xJ?PW&-}z?-REJ-K=fIk9X`{$SFQ*+&A@H%kr{>mHr z)Lrn?EkbkyuP$F{C8-=Otl5|`|5Q1^ouoZOp z)&vzM`0awv-UWSwai*%4YRca9RRLV>;zcHDS&m%+GZ`Yu2GhzmbZhM za6JipZ<2?0>bt?1&G!?zQ*NXhr=t)O4S8qEIqg-yvUtQ<^N6$N5oa5ZIQ#b_&I+L- zSLs}&>*K0%OkDk6=j "" - - false - "rgba(255, 255, 255, 1)" From e0aa9ae2052b39f3f0f2996ced7d4bb070c50e99 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 8 Dec 2020 09:05:30 +0000 Subject: [PATCH 267/344] Update Preferences --- prefs.js | 66 ++++++++++++++++++++++++++++++-------------------------- 1 file changed, 36 insertions(+), 30 deletions(-) diff --git a/prefs.js b/prefs.js index 224ff54..05f8b4d 100644 --- a/prefs.js +++ b/prefs.js @@ -89,17 +89,24 @@ Prefs.prototype = } function vBoxAddTgglBtn(whichHbox, getLbl, getBool, getTooTip = "", func){ - boolComp = (thset.get_boolean(getBool) == thset.get_default_value(getBool).unpack()); - getLbl = boolComp ? getLbl : - `${getLbl}` + boolComp = true; + if (func ==undefined){ + boolComp = (thset.get_boolean(getBool) == thset.get_default_value(getBool).unpack()); + getLbl = boolComp ? getLbl : + `${getLbl}` + } tootext = boolComp ? "" : "The Value is Changed" whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }); - whichVlue = new Gtk.Switch({active: thset.get_boolean(getBool), tooltip_text: tootext }); + whichVlue = new Gtk.Switch({ + active: getBool ? thset.get_boolean(getBool) : false, tooltip_text: tootext + }); whichVlue.connect('notify::active', (widget) => { - thset.set_boolean(getBool, widget.active); if (func != undefined){ func(widget.active); } - else { thset.set_boolean('restartextension' , true); } - }) + else { + thset.set_boolean(getBool, widget.active); + thset.set_boolean('restartextension' , true); + } + }) whichHbox.pack_start(whichLbl, true, true, 0); whichHbox.add(whichVlue); @@ -213,14 +220,6 @@ Prefs.prototype = let hboxIconset = newGtkBox(); vBoxAddSeleCt("chooseiconset", hboxIconset, "Choose Icons Set", [" 🡳, 🡱, Σ ", " ↓, ↑, ∑ "], "Choose which icon set to display"); - //For Reversing the download and upload indicators - let hboxRevInd = newGtkBox(); - vBoxAddTgglBtn(hboxRevInd, "Show Upload First", "reverseindicators", "Enabling it will reverse the upload and download speed indicators"); - - //For Lock Mouse Actions - let hboxLckMuseAct = newGtkBox(); - vBoxAddTgglBtn(hboxLckMuseAct, "Lock Mouse Actions", "lockmouseactions", "Enabling it will Lock Mouse Actions"); - //For Hide When Disconnected let hboxHideInd = newGtkBox(); vBoxAddTgglBtn(hboxHideInd, "Hide When Disconnected", "hideindicator", "Enabling it will Hide Indicator when disconnected"); @@ -229,27 +228,34 @@ Prefs.prototype = let hboxShUni = newGtkBox(); vBoxAddTgglBtn(hboxShUni, "Shorten Units", "shortenunits", "Enabling it will result in shorten units like K instead of KB"); - //For Custom Font name - let hboxCustFont = newGtkBox(); - vBoxAddEntry(hboxCustFont, "Custom Font Name", "customfont", "Enter the font name you want, you can also write style here for all elements except indicators") - //Colors let hboxColor = newGtkBox(); - function onColorToggle(widget){ + function showOrHide(widget){ + let advWidgets = [hboxRevInd, hboxLckMuseAct, hboxCustFont, usColorButton, dsColorButton, tsColorButton, tdColorButton]; if (widget){ - usColorButton.show(); - dsColorButton.show(); - tsColorButton.show(); - tdColorButton.show(); + for (i in advWidgets){ + advWidgets[i].show(); + } } else { - usColorButton.hide(); - dsColorButton.hide(); - tsColorButton.hide(); - tdColorButton.hide(); + for (i in advWidgets){ + advWidgets[i].hide(); + } } } + + vBoxAddTgglBtn(hboxColor, "Show Advanced Options", "", "Enabling it will Show all Color customizations", showOrHide); - vBoxAddTgglBtn(hboxColor, "Show Color Customization", "colortggle", "Enabling it will Show all Color customizations", onColorToggle); + //For Reversing the download and upload indicators + let hboxRevInd = newGtkBox(); + vBoxAddTgglBtn(hboxRevInd, "Show Upload First", "reverseindicators", "Enabling it will reverse the upload and download speed indicators"); + + //For Lock Mouse Actions + let hboxLckMuseAct = newGtkBox(); + vBoxAddTgglBtn(hboxLckMuseAct, "Lock Mouse Actions", "lockmouseactions", "Enabling it will Lock Mouse Actions"); + + //For Custom Font name + let hboxCustFont = newGtkBox(); + vBoxAddEntry(hboxCustFont, "Custom Font Name", "customfont", "Enter the font name you want, you can also write style here for all elements except indicators"); //Upload Speed Color let usColorButton = newGtkBox(); @@ -271,7 +277,7 @@ Prefs.prototype = vbox.add(mfooter); frame.add(vbox); frame.show_all(); - onColorToggle(thset.get_boolean("colortggle")); + showOrHide(false); return frame; } From 5bfc431e5b7436cf0c0eea5569a0c915ae22156d Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Fri, 11 Dec 2020 22:08:22 +0530 Subject: [PATCH 268/344] Update prefs, beta --- prefs.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/prefs.js b/prefs.js index 05f8b4d..d7b8a5a 100644 --- a/prefs.js +++ b/prefs.js @@ -57,9 +57,9 @@ Prefs.prototype = }); whichHbox.pack_start(whichLbl, true, true, 0); whichHbox.add(whichSpinBtn); + whichHbox.add(new Gtk.Separator({visible : true})); vbox.add(whichHbox); - vbox.add(new Gtk.Separator({visible : true})); } function vBoxAddSeleCt(getInt, whichHbox, getLbl, aRray = [], getTooTip = ""){ @@ -83,9 +83,9 @@ Prefs.prototype = }) whichHbox.add(whichLbl); whichHbox.pack_end(whichVlue, true, true, 0); + whichHbox.add(new Gtk.Separator({visible : true})); vbox.add(whichHbox); - vbox.add(new Gtk.Separator({visible : true})); } function vBoxAddTgglBtn(whichHbox, getLbl, getBool, getTooTip = "", func){ @@ -110,9 +110,9 @@ Prefs.prototype = whichHbox.pack_start(whichLbl, true, true, 0); whichHbox.add(whichVlue); + whichHbox.add(new Gtk.Separator({visible : true})); vbox.add(whichHbox); - vbox.add(new Gtk.Separator({visible : true})); } function vBoxAddColorButton(whichHbox, getLbl, getColor, getToolTip = "") { @@ -139,9 +139,9 @@ Prefs.prototype = whichHbox.pack_start(whichLbl, true, true, 0); whichHbox.add(colorButton); + whichHbox.add(new Gtk.Separator({visible : true})); vbox.add(whichHbox); - vbox.add(new Gtk.Separator({visible : true})); } function vBoxAddEntry(whichHbox, getLbl, getString, getTooTip = "", func){ @@ -159,9 +159,9 @@ Prefs.prototype = whichHbox.pack_start(whichLbl, true, true, 0); whichHbox.add(whichVlue); + whichHbox.add(new Gtk.Separator({visible : true})); vbox.add(whichHbox); - vbox.add(new Gtk.Separator({visible : true})); } let frame = new Gtk.ScrolledWindow(); @@ -277,6 +277,8 @@ Prefs.prototype = vbox.add(mfooter); frame.add(vbox); frame.show_all(); + frame.connect('destroy', main_quit); + showOrHide(false); return frame; From c70d10c729c9e9d1c0117fbbab9a1b418a1dc409 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Fri, 11 Dec 2020 18:20:03 +0000 Subject: [PATCH 269/344] Fix errors caused by 5bfc431 --- prefs.js | 282 +++++++++++++++++++++++++++---------------------------- 1 file changed, 139 insertions(+), 143 deletions(-) diff --git a/prefs.js b/prefs.js index d7b8a5a..57da71e 100644 --- a/prefs.js +++ b/prefs.js @@ -30,139 +30,135 @@ Prefs.prototype = { let thset = this.settings; - function newGtkBox(){ - return new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); - } - - function vBoxSpinBtn(getDouble, whichHbox, getLbl = "", getTooTip = "", lwer , uper, stpInc = 1, digs = 0, nume = true, pgeInc = 1, pgeSiz = 0, clmrate = 1){ - boolComp = (thset.get_double(getDouble) === thset.get_default_value(getDouble).unpack()); - getLbl = boolComp ? getLbl : - `${getLbl}` - whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }); - whichSpinBtn = new Gtk.SpinButton({ - adjustment: new Gtk.Adjustment({ - lower: lwer, upper: uper, step_increment: stpInc, page_increment: pgeInc, page_size: pgeSiz - }), - climb_rate: clmrate, - digits: digs, - numeric: nume, - }); - whichSpinBtn.set_value(thset.get_double(getDouble)); - whichSpinBtn.connect('value-changed', () => { - this.rTValue = parseFloat(whichSpinBtn.get_value().toFixed(1)); - if(thset.get_double(getDouble) !== this.rTValue){ - thset.set_double(getDouble , this.rTValue); - thset.set_boolean('restartextension' , true); - } - }); - whichHbox.pack_start(whichLbl, true, true, 0); - whichHbox.add(whichSpinBtn); - whichHbox.add(new Gtk.Separator({visible : true})); - - vbox.add(whichHbox); - } + function newGtkBox(){ + return new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); + } + + function vBoxSpinBtn(getDouble, whichHbox, getLbl = "", getTooTip = "", lwer , uper, stpInc = 1, digs = 0, nume = true, pgeInc = 1, pgeSiz = 0, clmrate = 1){ + boolComp = (thset.get_double(getDouble) === thset.get_default_value(getDouble).unpack()); + getLbl = boolComp ? getLbl : + `${getLbl}` + whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }); + whichSpinBtn = new Gtk.SpinButton({ + adjustment: new Gtk.Adjustment({ + lower: lwer, upper: uper, step_increment: stpInc, page_increment: pgeInc, page_size: pgeSiz + }), + climb_rate: clmrate, + digits: digs, + numeric: nume, + }); + whichSpinBtn.set_value(thset.get_double(getDouble)); + whichSpinBtn.connect('value-changed', () => { + this.rTValue = parseFloat(whichSpinBtn.get_value().toFixed(1)); + if(thset.get_double(getDouble) !== this.rTValue){ + thset.set_double(getDouble , this.rTValue); + thset.set_boolean('restartextension' , true); + } + }); + whichHbox.pack_start(whichLbl, true, true, 0); + whichHbox.add(whichSpinBtn); + + vbox.add(whichHbox); + } - function vBoxAddSeleCt(getInt, whichHbox, getLbl, aRray = [], getTooTip = ""){ - boolComp = (thset.get_int(getInt) == thset.get_default_value(getInt).unpack()); - getLbl = boolComp ? getLbl : - `${getLbl}` - tootext = boolComp ? "" : "The Value is Changed" - - whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0,tooltip_text: getTooTip}); - whichVlue = new Gtk.ComboBoxText({halign: Gtk.Align.END, tooltip_text: tootext }); - - for (i in aRray){ - whichVlue.append_text(aRray[i]); - } - - whichVlue.set_active(Math.round(thset.get_int(getInt))); - whichVlue.connect('changed', (widget) => { - let valueMode = widget.get_active(); - thset.set_int(getInt, valueMode); - thset.set_boolean('restartextension' , true); - }) - whichHbox.add(whichLbl); - whichHbox.pack_end(whichVlue, true, true, 0); - whichHbox.add(new Gtk.Separator({visible : true})); - - vbox.add(whichHbox); - } - - function vBoxAddTgglBtn(whichHbox, getLbl, getBool, getTooTip = "", func){ - boolComp = true; - if (func ==undefined){ - boolComp = (thset.get_boolean(getBool) == thset.get_default_value(getBool).unpack()); + function vBoxAddSeleCt(getInt, whichHbox, getLbl, aRray = [], getTooTip = ""){ + boolComp = (thset.get_int(getInt) == thset.get_default_value(getInt).unpack()); + getLbl = boolComp ? getLbl : + `${getLbl}` + tootext = boolComp ? "" : "The Value is Changed" + + whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0,tooltip_text: getTooTip}); + whichVlue = new Gtk.ComboBoxText({halign: Gtk.Align.END, tooltip_text: tootext }); + + for (i in aRray){ + whichVlue.append_text(aRray[i]); + } + + whichVlue.set_active(Math.round(thset.get_int(getInt))); + whichVlue.connect('changed', (widget) => { + let valueMode = widget.get_active(); + thset.set_int(getInt, valueMode); + thset.set_boolean('restartextension' , true); + }) + whichHbox.add(whichLbl); + whichHbox.pack_end(whichVlue, true, true, 0); + + vbox.add(whichHbox); + } + + function vBoxAddTgglBtn(whichHbox, getLbl, getBool, getTooTip = "", func){ + boolComp = true; + if (func ==undefined){ + boolComp = (thset.get_boolean(getBool) == thset.get_default_value(getBool).unpack()); + getLbl = boolComp ? getLbl : + `${getLbl}` + } + tootext = boolComp ? "" : "The Value is Changed" + whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }); + whichVlue = new Gtk.Switch({ + active: getBool ? thset.get_boolean(getBool) : false, tooltip_text: tootext + }); + whichVlue.connect('notify::active', (widget) => { + if (func != undefined){ func(widget.active); } + else { + thset.set_boolean(getBool, widget.active); + thset.set_boolean('restartextension' , true); + } + }) + + whichHbox.pack_start(whichLbl, true, true, 0); + whichHbox.add(whichVlue); + + vbox.add(whichHbox); + } + + function vBoxAddColorButton(whichHbox, getLbl, getColor, getToolTip = "") { + //Deterime whether the option value is changed from default value + boolComp = (thset.get_string(getColor) == thset.get_default_value(getColor).unpack()); + getLbl = boolComp ? getLbl : `${getLbl}` + tootext = boolComp ? "" : "The Value is Changed" + + //Create the option name + whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getToolTip}); + + //Create RGBA + rgba = new Gdk.RGBA(); + rgba.parse(thset.get_string(getColor)); + + //Create ColorButton + colorButton = new Gtk.ColorButton({tooltip_text: tootext}); + colorButton.set_rgba(rgba); + colorButton.connect('notify::color', (widget) => { //On the event of modification + rgba = widget.get_rgba(); + thset.set_string(getColor, rgba.to_string()); + thset.set_boolean('restartextension', true); + }); + + whichHbox.pack_start(whichLbl, true, true, 0); + whichHbox.add(colorButton); + + vbox.add(whichHbox); + } + + function vBoxAddEntry(whichHbox, getLbl, getString, getTooTip = "", func){ + boolComp = (thset.get_string(getString) == thset.get_default_value(getString).unpack()); getLbl = boolComp ? getLbl : `${getLbl}` - } - tootext = boolComp ? "" : "The Value is Changed" - whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }); - whichVlue = new Gtk.Switch({ - active: getBool ? thset.get_boolean(getBool) : false, tooltip_text: tootext - }); - whichVlue.connect('notify::active', (widget) => { - if (func != undefined){ func(widget.active); } - else { - thset.set_boolean(getBool, widget.active); - thset.set_boolean('restartextension' , true); - } - }) - - whichHbox.pack_start(whichLbl, true, true, 0); - whichHbox.add(whichVlue); - whichHbox.add(new Gtk.Separator({visible : true})); - - vbox.add(whichHbox); - } - - function vBoxAddColorButton(whichHbox, getLbl, getColor, getToolTip = "") { - //Deterime whether the option value is changed from default value - boolComp = (thset.get_string(getColor) == thset.get_default_value(getColor).unpack()); - getLbl = boolComp ? getLbl : `${getLbl}` - tootext = boolComp ? "" : "The Value is Changed" - - //Create the option name - whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getToolTip}); - - //Create RGBA - rgba = new Gdk.RGBA(); - rgba.parse(thset.get_string(getColor)); - - //Create ColorButton - colorButton = new Gtk.ColorButton({tooltip_text: tootext}); - colorButton.set_rgba(rgba); - colorButton.connect('notify::color', (widget) => { //On the event of modification - rgba = widget.get_rgba(); - thset.set_string(getColor, rgba.to_string()); - thset.set_boolean('restartextension', true); - }); - - whichHbox.pack_start(whichLbl, true, true, 0); - whichHbox.add(colorButton); - whichHbox.add(new Gtk.Separator({visible : true})); - - vbox.add(whichHbox); - } - - function vBoxAddEntry(whichHbox, getLbl, getString, getTooTip = "", func){ - boolComp = (thset.get_string(getString) == thset.get_default_value(getString).unpack()); - getLbl = boolComp ? getLbl : - `${getLbl}` - tootext = boolComp ? "" : "The Value is Changed" - whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }); - whichVlue = new Gtk.Entry({text: thset.get_string(getString), tooltip_text: tootext, placeholder_text: "Press Enter to apply" }); - whichVlue.connect('activate', (widget) => { - thset.set_string(getString, widget.get_text()); - if (func != undefined){ func(widget.active); } - else { thset.set_boolean('restartextension' , true); } - }) - - whichHbox.pack_start(whichLbl, true, true, 0); - whichHbox.add(whichVlue); - whichHbox.add(new Gtk.Separator({visible : true})); - - vbox.add(whichHbox); - } + tootext = boolComp ? "" : "The Value is Changed" + whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }); + whichVlue = new Gtk.Entry({text: thset.get_string(getString), tooltip_text: tootext, placeholder_text: "Press Enter to apply" }); + whichVlue.connect('activate', (widget) => { + thset.set_string(getString, widget.get_text()); + if (func != undefined){ func(widget.active); } + else { thset.set_boolean('restartextension' , true); } + }) + + whichHbox.pack_start(whichLbl, true, true, 0); + whichHbox.add(whichVlue); + whichHbox.add(new Gtk.Separator({visible : true})); + + vbox.add(whichHbox); + } let frame = new Gtk.ScrolledWindow(); let label = new Gtk.Label({ label: "General Settings", use_markup: true, xalign:0}); @@ -228,20 +224,20 @@ Prefs.prototype = let hboxShUni = newGtkBox(); vBoxAddTgglBtn(hboxShUni, "Shorten Units", "shortenunits", "Enabling it will result in shorten units like K instead of KB"); - //Colors + //Colors let hboxColor = newGtkBox(); function showOrHide(widget){ let advWidgets = [hboxRevInd, hboxLckMuseAct, hboxCustFont, usColorButton, dsColorButton, tsColorButton, tdColorButton]; - if (widget){ - for (i in advWidgets){ - advWidgets[i].show(); - } - } else { - for (i in advWidgets){ - advWidgets[i].hide(); - } - } - } + if (widget){ + for (i in advWidgets){ + advWidgets[i].show(); + } + } else { + for (i in advWidgets){ + advWidgets[i].hide(); + } + } + } vBoxAddTgglBtn(hboxColor, "Show Advanced Options", "", "Enabling it will Show all Color customizations", showOrHide); @@ -277,10 +273,10 @@ Prefs.prototype = vbox.add(mfooter); frame.add(vbox); frame.show_all(); - frame.connect('destroy', main_quit); + frame.connect('destroy', Gtk.main_quit); showOrHide(false); return frame; - } + } } From a09ff62f80d59c15daf98edb9bf137fe44ab6474 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Fri, 11 Dec 2020 18:22:10 +0000 Subject: [PATCH 270/344] Add Sleep 5 so giving busctl time to restart --- quick-install.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/quick-install.sh b/quick-install.sh index 59415d4..a2f3995 100644 --- a/quick-install.sh +++ b/quick-install.sh @@ -27,5 +27,7 @@ curl ${PROJECT_HOME}/LICENSE -o ${EXT_HOME}/LICENSE #Reloading shell; Sending SIGHUP signal to gnome-shell (equivalent to alt + f2 ; r ; enter) busctl --user call org.gnome.Shell /org/gnome/Shell org.gnome.Shell Eval s 'Meta.restart("Restarting…")' +sleep 5 + #Enabling Gnome extension. gnome-extensions enable netspeedsimplified@prateekmedia.extension From 074b79dd402f2335deedaade6a93995320dfe7c8 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Fri, 11 Dec 2020 18:23:47 +0000 Subject: [PATCH 271/344] Fix naming of tooltip --- prefs.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prefs.js b/prefs.js index 57da71e..f892de7 100644 --- a/prefs.js +++ b/prefs.js @@ -239,7 +239,7 @@ Prefs.prototype = } } - vBoxAddTgglBtn(hboxColor, "Show Advanced Options", "", "Enabling it will Show all Color customizations", showOrHide); + vBoxAddTgglBtn(hboxColor, "Show Advanced Options", "", "Enabling it will Show all Advanced customizations", showOrHide); //For Reversing the download and upload indicators let hboxRevInd = newGtkBox(); From d2596bc22ab64cb7993f99a4f76a1656c466f3fc Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Fri, 11 Dec 2020 18:40:06 +0000 Subject: [PATCH 272/344] Update stylesheet.css --- stylesheet.css | 2 -- 1 file changed, 2 deletions(-) diff --git a/stylesheet.css b/stylesheet.css index 59703bf..3732fb9 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -1,9 +1,7 @@ /* For all elements */ .forall{ text-align: right; - min-width: 7em; margin: 0 8px; - font-family : 'Monospace'; } /* Font change on middle click*/ From 3caf6950b6ed96bd84a05ae7699af5a62df7246f Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Fri, 11 Dec 2020 18:44:43 +0000 Subject: [PATCH 273/344] Add Custom Font Option --- extension.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/extension.js b/extension.js index 39b0127..a2570ea 100644 --- a/extension.js +++ b/extension.js @@ -30,6 +30,7 @@ function fetchSettings() { chooseIconSet: settings.get_int('chooseiconset'), revIndicator: settings.get_boolean('reverseindicators'), lckMuseAct: settings.get_boolean('lockmouseactions'), + cusFont: settings.get_string('customfont'), hideInd: settings.get_boolean('hideindicator'), shortenUnits: settings.get_boolean('shortenunits'), nsPos: settings.get_int('wpos'), @@ -103,28 +104,28 @@ function initNsLabels() { text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "color: " + crStng.usColor + style: "min-width: 6.5em;color: " + crStng.usColor + "; font-family: " + crStng.cusFont }); dsLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "color: " + crStng.dsColor + style: "min-width: 6.5em;color: " + crStng.dsColor + "; font-family: " + crStng.cusFont }); tsLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "color: " + crStng.tsColor + style: "min-width: 6.5em;color: " + crStng.tsColor + "; font-family: " + crStng.cusFont }); tdLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "color: " + crStng.tdColor + style: "min-width: 6.5em;color: " + crStng.tdColor + "; font-family: " + crStng.cusFont }); usIcon = new St.Label({ text: DIcons(1), From ccdd4acb5f79da4a39b31537deb0750c07e003ea Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Fri, 11 Dec 2020 18:55:11 +0000 Subject: [PATCH 274/344] Update extension.js --- extension.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/extension.js b/extension.js index a2570ea..1caed0e 100644 --- a/extension.js +++ b/extension.js @@ -104,55 +104,55 @@ function initNsLabels() { text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "min-width: 6.5em;color: " + crStng.usColor + "; font-family: " + crStng.cusFont + style: "color: " + crStng.usColor + "; font-family: " + crStng.cusFont }); dsLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "min-width: 6.5em;color: " + crStng.dsColor + "; font-family: " + crStng.cusFont + style: "color: " + crStng.dsColor + "; font-family: " + crStng.cusFont }); tsLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "min-width: 6.5em;color: " + crStng.tsColor + "; font-family: " + crStng.cusFont + style: "color: " + crStng.tsColor + "; font-family: " + crStng.cusFont }); tdLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "min-width: 6.5em;color: " + crStng.tdColor + "; font-family: " + crStng.cusFont + style: "color: " + crStng.tdColor + "; font-family: " + crStng.cusFont }); usIcon = new St.Label({ text: DIcons(1), y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(true), - style: "color: " + crStng.usColor + style: "color: " + crStng.usColor + "; font-family: " + crStng.cusFont }); dsIcon = new St.Label({ text: DIcons(0), y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(true), - style: "color: " + crStng.dsColor + style: "color: " + crStng.dsColor + "; font-family: " + crStng.cusFont }); tsIcon = new St.Label({ text: "⇅", y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(true), - style: "color: " + crStng.tsColor + style: "color: " + crStng.tsColor + "; font-family: " + crStng.cusFont }); tdIcon = new St.Label({ text: DIcons(2), y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(true), - style: "color: " + crStng.tdColor + style: "color: " + crStng.tdColor + "; font-family: " + crStng.cusFont }); } From 8735e3f0543bb563d8111a16cedb3f3d777473b9 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Fri, 11 Dec 2020 18:56:55 +0000 Subject: [PATCH 275/344] Update stylesheet.css --- stylesheet.css | 1 + 1 file changed, 1 insertion(+) diff --git a/stylesheet.css b/stylesheet.css index 3732fb9..174113d 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -2,6 +2,7 @@ .forall{ text-align: right; margin: 0 8px; + min-width: 6.5em; } /* Font change on middle click*/ From f5dcb917ea4980804c8c30cc499cdedee12eb579 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 12 Dec 2020 00:40:55 +0530 Subject: [PATCH 276/344] Bump version to 23 --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index d248890..0d9384d 100644 --- a/metadata.json +++ b/metadata.json @@ -26,5 +26,5 @@ ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 22 + "version": 23 } From daf8e49187f7db4a8040ff7d7cac5eb04daaa3aa Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 12 Dec 2020 00:51:51 +0530 Subject: [PATCH 277/344] Add know more button to Contributors section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bc1cb6f..b3f6ee4 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,7 @@ If you faced an **issue** then you can **[file an issue here](https://github.com #### *Special Thanks to* - [biji](https://github.com/biji) for Creating [simplenetspeed](https://github.com/biji/simplenetspeed) - [m0hithreddy](https://github.com/m0hithreddy) for his support in rewriting extension.js with Clutter, Adopting Make build system and more.. +[Know More](https://github.com/prateekmedia/netspeedsimplified/graphs/contributors)

      Installing Manually

      From 84978c45fd314f66b1603639dc6f8212d0fda22b Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 12 Dec 2020 20:29:56 +0530 Subject: [PATCH 278/344] Update README.md --- README.md | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index b3f6ee4..7efad31 100644 --- a/README.md +++ b/README.md @@ -16,10 +16,10 @@ - [x] Completely revamped whole codebase PR#4 - [x] Add Show Upload First button to show upload speed first PR#2 - [x] Add Color Customizations to make the extension your own PR#7 -- [x] Add *Use Custom Font* button in [Preference](#Feature-Highlights-for-Preferences) -- [x] Add *Hide when Disconnected* button in [Preference](#Feature-Highlights-for-Preferences) -- [x] Add *Use Shorten Units* button in [Preference](#Feature-Highlights-for-Preferences) -- [x] Add *Restore Defaults* button in [Preference](#Feature-Highlights-for-Preferences) +- [x] Add *Use Custom Font* button in Preference +- [x] Add *Hide when Disconnected* button in Preference +- [x] Add *Use Shorten Units* button in Preference +- [x] Add *Restore Defaults* button in Preference #### Features - [x] Cleaner UI @@ -38,24 +38,22 @@ If you faced an **issue** then you can **[file an issue here](https://github.com/prateekmedia/netspeedsimplified/issues)** #### Modes -- Total net speed in bits per second -- Total net speed in Bytes per second -- Up & down speed in bits per second -- Up & down speed in Bytes per second -- Total of downloaded in Bytes (Right click to reset counter) +1. `Total net speed in b/s, kb/s, ...` +1. `Total net speed in B/s, KB/s, ...` +1. `Up & down speed in b/s, kb/s, ...` +1. `Up & down speed in B/s, KB/s, ...` +1. `Total downloads in B, KB, ... (Right click to reset counter)` #### Mouse Events -- **Left click to change [modes](#modes)** - -- **Right click to toggle total data usage visibility** - -- **Right click continuously for 4 times in any mode to toggle vertical alignment** - -- **Middle click to change font size** +- **Left click**: Cycle through the [modes](#modes). +- **Right click(in first four modes)**: Toggle the visibility of total downloaded. +- **Right click(in fifth mode)**: Reset total downloaded. +- **Right Click(Four consecutive times)**: Toggle through horizantal/vertical alignment. +- **Middle click**: Cycle through the font sizes. #### *Special Thanks to* - [biji](https://github.com/biji) for Creating [simplenetspeed](https://github.com/biji/simplenetspeed) -- [m0hithreddy](https://github.com/m0hithreddy) for his support in rewriting extension.js with Clutter, Adopting Make build system and more.. +- [m0hithreddy](https://github.com/m0hithreddy) for his support in rewriting extension.js with Clutter and rewritjng readme.md, Adopting Make build system and more.. [Know More](https://github.com/prateekmedia/netspeedsimplified/graphs/contributors)

      Installing Manually

      @@ -63,7 +61,7 @@ If you faced an **issue** then you can **[file an issue here](https://github.com ### Quick install For quick install use below command: - $ /bin/bash -c "$(curl -sL https://git.io/Jk28b)" + $ bash -c "$(curl -sL https://git.io/Jk28b)" ### Installing using Make From 71e926518ce601802a7a704e438483555bc1301e Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 14 Dec 2020 13:12:01 +0530 Subject: [PATCH 279/344] Bump version to 23 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7efad31..b33911d 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ *Screenshots*

      -**Current Version** : ***22*** +**Current Version** : ***23*** ***Tested on GNOME 3.36 and 3.38*** From 5fe56ceb1e8102136c22ca25f6ba42cf7bd7e4bc Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Wed, 16 Dec 2020 19:13:05 +0530 Subject: [PATCH 280/344] Update README.md --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index b33911d..6167ce4 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@

      NSS Logo

      Net speed Simplified

      A Net Speed extension With Loads of Customization.

      +

      +GitHub release License +

      [Get it on GNOME Extensions](https://extensions.gnome.org/extension/3724/net-speed-simplified/) or [Install Manually](#installing-manually)

      Screenshot - -*Screenshots*

      - -**Current Version** : ***23*** +

      ***Tested on GNOME 3.36 and 3.38*** @@ -53,7 +53,7 @@ If you faced an **issue** then you can **[file an issue here](https://github.com #### *Special Thanks to* - [biji](https://github.com/biji) for Creating [simplenetspeed](https://github.com/biji/simplenetspeed) -- [m0hithreddy](https://github.com/m0hithreddy) for his support in rewriting extension.js with Clutter and rewritjng readme.md, Adopting Make build system and more.. +- [m0hithreddy](https://github.com/m0hithreddy) for his support in rewriting extension.js with Clutter and rewriting readme.md, Adopting Make build system and more.. [Know More](https://github.com/prateekmedia/netspeedsimplified/graphs/contributors)

      Installing Manually

      From 5abef58764d987b423e691f77ab8df8aebb229e5 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 7 Jan 2021 12:34:24 +0530 Subject: [PATCH 281/344] Fix color not applying bug and space in Prefs --- extension.js | 3 +++ prefs.js | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/extension.js b/extension.js index 1caed0e..6f94775 100644 --- a/extension.js +++ b/extension.js @@ -100,6 +100,9 @@ function getStyle(isIcon = false) { return (isIcon) ? 'size-' + (String(crStng.fontmode)) : ('forall size-' + String(crStng.fontmode)) } function initNsLabels() { + if(!crStng.cusFont){ + crStng.cusFont = "inherit"; + } usLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, diff --git a/prefs.js b/prefs.js index f892de7..657376d 100644 --- a/prefs.js +++ b/prefs.js @@ -162,8 +162,8 @@ Prefs.prototype = let frame = new Gtk.ScrolledWindow(); let label = new Gtk.Label({ label: "General Settings", use_markup: true, xalign:0}); - let vbox = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, margin_left: 20}); - let resetBtn = new Gtk.Button ({label: "Restore Defaults"});; + let vbox = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, margin_left: 25, margin_right: 25}); + let resetBtn = new Gtk.Button ({label: "Restore Defaults"}); let mfooter = new Gtk.Label({ label: "Pro Tip : Hover over any Label To know more about it",use_markup: true, margin_top: 20}); resetBtn.connect ("clicked", ()=>{ From 359d25bb4faa5bb60fa63d37c5fc23d108931504 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 7 Jan 2021 12:38:40 +0530 Subject: [PATCH 282/344] Fix wrong font when no font family is specified --- extension.js | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/extension.js b/extension.js index 6f94775..d00aeca 100644 --- a/extension.js +++ b/extension.js @@ -100,62 +100,60 @@ function getStyle(isIcon = false) { return (isIcon) ? 'size-' + (String(crStng.fontmode)) : ('forall size-' + String(crStng.fontmode)) } function initNsLabels() { - if(!crStng.cusFont){ - crStng.cusFont = "inherit"; - } + let extraInfo = crStng.cusFont ? "; font-family: " + crStng.cusFont : ""; usLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "color: " + crStng.usColor + "; font-family: " + crStng.cusFont + style: "color: " + crStng.usColor + extraInfo }); dsLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "color: " + crStng.dsColor + "; font-family: " + crStng.cusFont + style: "color: " + crStng.dsColor + extraInfo }); tsLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "color: " + crStng.tsColor + "; font-family: " + crStng.cusFont + style: "color: " + crStng.tsColor + extraInfo }); tdLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "color: " + crStng.tdColor + "; font-family: " + crStng.cusFont + style: "color: " + crStng.tdColor + extraInfo }); usIcon = new St.Label({ text: DIcons(1), y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(true), - style: "color: " + crStng.usColor + "; font-family: " + crStng.cusFont + style: "color: " + crStng.usColor + extraInfo }); dsIcon = new St.Label({ text: DIcons(0), y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(true), - style: "color: " + crStng.dsColor + "; font-family: " + crStng.cusFont + style: "color: " + crStng.dsColor + extraInfo }); tsIcon = new St.Label({ text: "⇅", y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(true), - style: "color: " + crStng.tsColor + "; font-family: " + crStng.cusFont + style: "color: " + crStng.tsColor + extraInfo }); tdIcon = new St.Label({ text: DIcons(2), y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(true), - style: "color: " + crStng.tdColor + "; font-family: " + crStng.cusFont + style: "color: " + crStng.tdColor + extraInfo }); } From e5afc9d97e6121a7e3d150412710a81525754d7a Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 7 Jan 2021 13:08:02 +0530 Subject: [PATCH 283/344] Add Min Width option and remove Restart extension --- extension.js | 22 ++++++++++-------- prefs.js | 22 +++++++----------- schemas/gschemas.compiled | Bin 1395 -> 1427 bytes ....extensions.netspeedsimplified.gschema.xml | 11 +++++---- 4 files changed, 27 insertions(+), 28 deletions(-) diff --git a/extension.js b/extension.js index d00aeca..f94292f 100644 --- a/extension.js +++ b/extension.js @@ -30,6 +30,7 @@ function fetchSettings() { chooseIconSet: settings.get_int('chooseiconset'), revIndicator: settings.get_boolean('reverseindicators'), lckMuseAct: settings.get_boolean('lockmouseactions'), + minWidth: settings.get_double('minwidth'), cusFont: settings.get_string('customfont'), hideInd: settings.get_boolean('hideindicator'), shortenUnits: settings.get_boolean('shortenunits'), @@ -101,32 +102,33 @@ function getStyle(isIcon = false) { } function initNsLabels() { let extraInfo = crStng.cusFont ? "; font-family: " + crStng.cusFont : ""; + let extraLabelInfo = extraInfo + "; min-width: " + crStng.minWidth +"em"; usLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "color: " + crStng.usColor + extraInfo + style: "color: " + crStng.usColor + extraLabelInfo }); dsLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "color: " + crStng.dsColor + extraInfo + style: "color: " + crStng.dsColor + extraLabelInfo }); tsLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "color: " + crStng.tsColor + extraInfo + style: "color: " + crStng.tsColor + extraLabelInfo }); tdLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "color: " + crStng.tdColor + extraInfo + style: "color: " + crStng.tdColor + extraLabelInfo }); usIcon = new St.Label({ text: DIcons(1), @@ -280,7 +282,6 @@ function mouseEventHandler(widget, event) { } function parseStat() { - let toRestart = settings.get_boolean('restartextension'); try { let input_file = Gio.file_new_for_path('/proc/net/dev'); let fstream = input_file.read(null); @@ -343,11 +344,6 @@ function parseStat() { lastCountUp = countUp; lastSpeed = speed; - if (toRestart == true){ - settings.set_boolean('restartextension', false); - disable(); - enable(); - } } catch (e) { usLabel.set_text(e.message); tsLabel.set_text(e.message); @@ -359,6 +355,12 @@ function parseStat() { function init() { settings = Convenience.getSettings(schema); + this._settingsChangedId = this.settings.connect('changed', this._settingsChanged); +} + +function _settingsChanged(){ + disable(); + enable(); } function enable() { diff --git a/prefs.js b/prefs.js index 657376d..f26d8af 100644 --- a/prefs.js +++ b/prefs.js @@ -52,7 +52,6 @@ Prefs.prototype = this.rTValue = parseFloat(whichSpinBtn.get_value().toFixed(1)); if(thset.get_double(getDouble) !== this.rTValue){ thset.set_double(getDouble , this.rTValue); - thset.set_boolean('restartextension' , true); } }); whichHbox.pack_start(whichLbl, true, true, 0); @@ -78,7 +77,6 @@ Prefs.prototype = whichVlue.connect('changed', (widget) => { let valueMode = widget.get_active(); thset.set_int(getInt, valueMode); - thset.set_boolean('restartextension' , true); }) whichHbox.add(whichLbl); whichHbox.pack_end(whichVlue, true, true, 0); @@ -99,11 +97,8 @@ Prefs.prototype = active: getBool ? thset.get_boolean(getBool) : false, tooltip_text: tootext }); whichVlue.connect('notify::active', (widget) => { - if (func != undefined){ func(widget.active); } - else { - thset.set_boolean(getBool, widget.active); - thset.set_boolean('restartextension' , true); - } + if (func != undefined) func(widget.active); + else thset.set_boolean(getBool, widget.active); }) whichHbox.pack_start(whichLbl, true, true, 0); @@ -131,7 +126,6 @@ Prefs.prototype = colorButton.connect('notify::color', (widget) => { //On the event of modification rgba = widget.get_rgba(); thset.set_string(getColor, rgba.to_string()); - thset.set_boolean('restartextension', true); }); whichHbox.pack_start(whichLbl, true, true, 0); @@ -149,8 +143,7 @@ Prefs.prototype = whichVlue = new Gtk.Entry({text: thset.get_string(getString), tooltip_text: tootext, placeholder_text: "Press Enter to apply" }); whichVlue.connect('activate', (widget) => { thset.set_string(getString, widget.get_text()); - if (func != undefined){ func(widget.active); } - else { thset.set_boolean('restartextension' , true); } + if (func != undefined){ func(widget.active); } }) whichHbox.pack_start(whichLbl, true, true, 0); @@ -178,8 +171,7 @@ Prefs.prototype = } for (k in boolArray){ thset.set_boolean(boolArray[k], thset.get_default_value(boolArray[k]).unpack()); - } - thset.set_boolean('restartextension' , true); + } frame.destroy(); }); @@ -227,7 +219,7 @@ Prefs.prototype = //Colors let hboxColor = newGtkBox(); function showOrHide(widget){ - let advWidgets = [hboxRevInd, hboxLckMuseAct, hboxCustFont, usColorButton, dsColorButton, tsColorButton, tdColorButton]; + let advWidgets = [hboxRevInd, hboxLckMuseAct, hboxMinWidth, hboxCustFont, usColorButton, dsColorButton, tsColorButton, tdColorButton]; if (widget){ for (i in advWidgets){ advWidgets[i].show(); @@ -249,6 +241,10 @@ Prefs.prototype = let hboxLckMuseAct = newGtkBox(); vBoxAddTgglBtn(hboxLckMuseAct, "Lock Mouse Actions", "lockmouseactions", "Enabling it will Lock Mouse Actions"); + //Minimum Width + let hboxMinWidth = newGtkBox(); + vBoxSpinBtn("minwidth", hboxMinWidth, "Minimum Width", "Change Minimum Width value from anywhere b/w 3em to 10em", 3.0, 10.0, .1, 1); + //For Custom Font name let hboxCustFont = newGtkBox(); vBoxAddEntry(hboxCustFont, "Custom Font Name", "customfont", "Enter the font name you want, you can also write style here for all elements except indicators"); diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index 57746059f50e70154de39dbe0dc60255cfa1bd92..2188a4bcf33a75d0c8a7adc8169dd45e53d80a40 100644 GIT binary patch delta 644 zcmXw$KS&!<0EeG3X|Bmd6Gf1k!9gK`f`UkgKnWBP%#x)QoC=&fGU=klNdoGigV@2<4qaRXA@=)S+k@|Zzx&?1d&zq@Ave6V(a~&-5dpB^ zq4@kgQ~BCh+o2nqQOlG~C;1G1d@Bd#)#bBf4lehvtMcj*`~vC1cyjDkUOkMjl65$E z_da~jr5?bal0LsN@mIbhrdPZNeJG0T0Q+oXNFP!U;=9QdyxF=wlvj`8v*dGlvQvu6 ztB3F}$qA@EzFL-7mw!#pffbwmEw3Imm9qIj`2?AjP46G5YvEP02B~@@p%>KU56DY6 zPF3H^tNZa+B9W9 zQ<|dwyB?)y{#P%p^xwyxv`ILL#f0M|lgY_qp_DH=6B=^+0&#bs`B!bw|Fr23gJff5 delta 599 zcmW-ePbfoi0LS0{8QbtiN|`%xP+AVV?1D1Ng~Ulrlx^8wYY98M(aOJ+C61DI!T~v< zaG+?E<96WU;)Kt4uRibleV_Mx@AuyCm-Bvm)^?lhhG7UNxS?9CpG2}(M`>LfK8Ix5 zXePU%cu~&FtJmVgv{n;RvhgU?$yC|~OVbw9qDYz4RHaZz5~#CMTF=sC7bd36syO!h*d^J7C^U4EDx zfogy1OJ3bHvit!h29eGE%Acw0gEC|eLU+GydO%%1PoBelD8D4H?!;e`MQAx4U6ohY z#3k|*LJ$4h^6EZ3%VfB+oZf 0 - + 0 - + 1.5 @@ -27,9 +27,6 @@ false - - false - 0 @@ -37,6 +34,10 @@ false + + + 6.5 + false From a4ae9716e3de3820bcd02712b483280a36184e9e Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 7 Jan 2021 13:11:02 +0530 Subject: [PATCH 284/344] Min Width update gap --- prefs.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prefs.js b/prefs.js index f26d8af..7bdb4f1 100644 --- a/prefs.js +++ b/prefs.js @@ -243,7 +243,7 @@ Prefs.prototype = //Minimum Width let hboxMinWidth = newGtkBox(); - vBoxSpinBtn("minwidth", hboxMinWidth, "Minimum Width", "Change Minimum Width value from anywhere b/w 3em to 10em", 3.0, 10.0, .1, 1); + vBoxSpinBtn("minwidth", hboxMinWidth, "Minimum Width", "Change Minimum Width value from anywhere b/w 3em to 10em", 3.0, 10.0, .5, 1); //For Custom Font name let hboxCustFont = newGtkBox(); From 1e2c93d5915eb113d75e9462db2be43f682d2db1 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 7 Jan 2021 13:17:12 +0530 Subject: [PATCH 285/344] Update to v24 --- metadata.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/metadata.json b/metadata.json index 0d9384d..b55b4c6 100644 --- a/metadata.json +++ b/metadata.json @@ -1,5 +1,5 @@ { - "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n☞ Completely revamped whole codebase PR#4 \n☞ Add Show Upload First button to show upload speed first PR#2 \n☞ Add Color Customizations to make the extension your own PR#7 \n☞ Add set custom Font Button in Preference \n☞ Add *Hide when Disconnected* button in Prefrence\n☞ Add *Use Shorten Units* button in Preference \n \nFeatures \n1. Cleaner UI \n2. Adjustable Refresh rate \n3. Supports GNOME SHELL 3.38 and Backwards compatible \n4. Add Preference \n5. Add Vertical Alignment Support \n6. Add Two Icon sets for Indicators \n\n Feature Highlights for Preferences \n1. Add Lock Mouse Actions button to Freeze Mouse Events \n2. Add Advance Position menu to pinpoint where to place the indicator on the Panel. \n3. Add Refresh time field by which you can change refresh rate value between 1.0 sec to 10.0 sec. \n\nModes \n- Total net speed in bits per second \n- Total net speed in Bytes per second \n- Up and down speed in bits per second \n- Up and down speed in Bytes per second \n- Total of downloaded in Bytes (Right click to reset counter) \n \nMouse Events \n- Left click to change modes \n- Right click to toggle total data usage visibility \n- Right click continuously for 4 times in any mode to toggle vertical alignment \n- Middle click to change font size", + "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n☞ Completely revamped whole codebase \n☞ Add Show Upload First button to show upload speed first \n☞ Add Color Customizations to make the extension your own \n☞ Add set custom Font Button in Preference \n☞ Add Hide when Disconnected button in Prefrence\n☞ Add Use Shorten Units button in Preference \n \nFeatures \n1. Cleaner UI \n2. Adjustable Refresh rate \n3. Supports GNOME SHELL 3.38 and Backwards compatible \n4. Add Preference \n5. Add Vertical Alignment Support \n6. Add Two Icon sets for Indicators \n\n Feature Highlights for Preferences \n1. Add Lock Mouse Actions button to Freeze Mouse Events \n2. Add Advance Position menu to pinpoint where to place the indicator on the Panel. \n3. Add Refresh time option by which you can change refresh rate value between 1.0 sec to 10.0 sec. \n\nModes \n- Total net speed in bits per second \n- Total net speed in Bytes per second \n- Up and down speed in bits per second \n- Up and down speed in Bytes per second \n- Total of downloaded in Bytes (Right click to reset counter) \n\nMouse Events \n- Left click to change modes \n- Right click to toggle total data usage visibility \n- Right click continuously for 4 times in any mode to toggle vertical alignment \n- Middle click to change font size", "name": "Net speed Simplified", "shell-version": [ "3.14", @@ -26,5 +26,5 @@ ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 23 + "version": 24 } From 8bb6bc85c2f0293bd5ad36620a186b8cbf75215f Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 7 Jan 2021 13:41:11 +0530 Subject: [PATCH 286/344] Revert toRestart change --- extension.js | 5 +++-- prefs.js | 18 +++++++++++++----- schemas/gschemas.compiled | Bin 1427 -> 1499 bytes ....extensions.netspeedsimplified.gschema.xml | 3 +++ 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/extension.js b/extension.js index f94292f..a56bada 100644 --- a/extension.js +++ b/extension.js @@ -282,6 +282,7 @@ function mouseEventHandler(widget, event) { } function parseStat() { + let toRestart = settings.get_boolean('restartextension'); try { let input_file = Gio.file_new_for_path('/proc/net/dev'); let fstream = input_file.read(null); @@ -349,16 +350,16 @@ function parseStat() { tsLabel.set_text(e.message); tdLabel.set_text(e.message); } - + toRestart ? _settingsChanged() : null; return true; } function init() { settings = Convenience.getSettings(schema); - this._settingsChangedId = this.settings.connect('changed', this._settingsChanged); } function _settingsChanged(){ + settings.set_boolean('restartextension', false); disable(); enable(); } diff --git a/prefs.js b/prefs.js index 7bdb4f1..02d0c87 100644 --- a/prefs.js +++ b/prefs.js @@ -52,6 +52,7 @@ Prefs.prototype = this.rTValue = parseFloat(whichSpinBtn.get_value().toFixed(1)); if(thset.get_double(getDouble) !== this.rTValue){ thset.set_double(getDouble , this.rTValue); + thset.set_boolean('restartextension' , true); } }); whichHbox.pack_start(whichLbl, true, true, 0); @@ -75,8 +76,9 @@ Prefs.prototype = whichVlue.set_active(Math.round(thset.get_int(getInt))); whichVlue.connect('changed', (widget) => { - let valueMode = widget.get_active(); - thset.set_int(getInt, valueMode); + let valueMode = widget.get_active(); + thset.set_int(getInt, valueMode); + thset.set_boolean('restartextension' , true); }) whichHbox.add(whichLbl); whichHbox.pack_end(whichVlue, true, true, 0); @@ -98,7 +100,10 @@ Prefs.prototype = }); whichVlue.connect('notify::active', (widget) => { if (func != undefined) func(widget.active); - else thset.set_boolean(getBool, widget.active); + else { + thset.set_boolean(getBool, widget.active); + thset.set_boolean('restartextension' , true); + } }) whichHbox.pack_start(whichLbl, true, true, 0); @@ -124,8 +129,9 @@ Prefs.prototype = colorButton = new Gtk.ColorButton({tooltip_text: tootext}); colorButton.set_rgba(rgba); colorButton.connect('notify::color', (widget) => { //On the event of modification - rgba = widget.get_rgba(); - thset.set_string(getColor, rgba.to_string()); + rgba = widget.get_rgba(); + thset.set_string(getColor, rgba.to_string()); + thset.set_boolean('restartextension' , true); }); whichHbox.pack_start(whichLbl, true, true, 0); @@ -144,6 +150,7 @@ Prefs.prototype = whichVlue.connect('activate', (widget) => { thset.set_string(getString, widget.get_text()); if (func != undefined){ func(widget.active); } + else { thset.set_boolean('restartextension' , true); } }) whichHbox.pack_start(whichLbl, true, true, 0); @@ -172,6 +179,7 @@ Prefs.prototype = for (k in boolArray){ thset.set_boolean(boolArray[k], thset.get_default_value(boolArray[k]).unpack()); } + thset.set_boolean('restartextension' , true); frame.destroy(); }); diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index 2188a4bcf33a75d0c8a7adc8169dd45e53d80a40..9376701a85cc73d1091a7585edb430992f979c36 100644 GIT binary patch literal 1499 zcma)6O=uHA7@gL}#QvH317baR@UV+*qC!yUp}9!K_9hgO9!z$($>3%;?rd8B!CM8r zYO8`p^x#2y=t(bD#Df&ngF;1xUVD*3DR`>BH=9kWB0BK$-oBmrzHer}&CqBekOeOk z^|1$hI?_gKY=RTJh4_IHy&KVU#^7IH8@tD8)cxXwxCvgy!WOU}lrkmHuQ(Z1c3d~( zTnHUcN#9c$&k0r4acm_kRacHn$HsgN18MZ&dSXi*ZQw*5Tfs?S8_*7P0Np^kjvjD~ z9niageQxU;#$at-VnVEf*MXyRVVXX5JA5Wg0G%K1AJ;jdlkn5vgTTq>cdyW=Zi9aa zJPgF=LoLLJ7y(ZMPc~-eIG;L&`Lp0f;N{baBz=~FZQGjmcfmT%LiW_$zO54;_i z)#pjg^E?JV1q>{17@SYdIA_6^0n0q2>!ITv1i$H>`{(RpbJ1Lx|er?*|RBtJtPm=2R9FbY#=I!1jvM~hJxGPRLfohu*W>!uxr$#?PQeQK z_Y(W6>?4s^^JG{rKB|AR>MP`rGsow|yW4zDeyQX-Mc;4a;ktMcI9|tl+qBMZ?&2Tk qJC3s`hq4m26@q*pjAJsS5UYa`|8mb(*+==(!bTmvhj`6z_5TD{dKUTs literal 1427 zcma)6J!lj`7#(9`&irVi27+3oP}qfdr$Vr}A_0+zNs-1NlES;)$=#6MopX0DiJ*d= zf>r@FDi}ly3rUem8zb6CKrOV8SfouOf=xh(zBhZDixDIPZ{FLt-^_eF^UV&97D81B zVo__|;0uYi8d4M7)Fs4kwB+5ei5Y``29|2DQ%dc1G=u@}Dp9aqWj(u^B zK6NYnIq(v&c^T6e&t8eL3 zcfub5p9fCO#~t*kTi{;;OJJdQwETv zJ~ih*4jux|y?S8gr{?@4;0fUI9{(%jsTn^Fo&m6}rZ(EaJmOsd>wtB_I%F*%B~wG( zFxE#4z#8H~vvyb~z6z$48vJ6UIB$DAqpr1r{P>T`GC9sI|xEqU~vC!q?SE7Mz&B12YhQysdTJdendO zo2uw!=5+7O^{=0YijaSd?`Bpeuc)j;{GzIXifbQ}__4d4{n)61biFO-&wOwiW--&H Iaa+#+4+*{oz5oCK diff --git a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml index 4a55889..c9b7a36 100644 --- a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml +++ b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml @@ -27,6 +27,9 @@ false + + false + 0 From ecda55c2d5e30de6552f3ca3835ec273b3fb0a31 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 25 Mar 2021 17:16:08 +0530 Subject: [PATCH 287/344] Support for GNOME 40 --- README.md | 34 ++--- extension.js | 9 +- metadata.json | 57 ++++---- prefs.js | 127 ++++++++---------- schemas/gschemas.compiled | Bin 1499 -> 1581 bytes ....extensions.netspeedsimplified.gschema.xml | 6 +- 6 files changed, 115 insertions(+), 118 deletions(-) diff --git a/README.md b/README.md index 6167ce4..3b20346 100644 --- a/README.md +++ b/README.md @@ -10,30 +10,30 @@

      Screenshot

      -***Tested on GNOME 3.36 and 3.38*** +***Tested on GNOME 40*** #### What's new -- [x] Completely revamped whole codebase PR#4 -- [x] Add Show Upload First button to show upload speed first PR#2 -- [x] Add Color Customizations to make the extension your own PR#7 -- [x] Add *Use Custom Font* button in Preference -- [x] Add *Hide when Disconnected* button in Preference -- [x] Add *Use Shorten Units* button in Preference -- [x] Add *Restore Defaults* button in Preference +- [x] Add Limit Unit option +- [x] Add Gnome 40 Support +- [x] Fix a bug where refresh time was getting reset to 6.5 +- [x] Used Min Width 3.0 by default #### Features - [x] Cleaner UI - [x] Adjustable Refresh rate -- [x] Supports GNOME SHELL 3.38 and Backwards compatible -- [x] Add [Preference](#Feature-Highlights-for-Preferences) Menu for extension customization -- [x] Add *Vertical Alignment* Support -- [x] Add *Two Icon sets* for Indicators +- [x] [Preference](#Feature-Highlights-for-Preferences) Menu for extension customization +- [x] *Vertical Alignment* Support +- [x] *Two Icon sets* for Indicators #### Feature Highlights for Preferences -- [x] Add *Lock Mouse Actions* button to Freeze [Mouse Events](#mouse-events) -- [x] Add *Advance Position* menu to pinpoint where to place the indicator on the Panel. -- [x] Add *Refresh time* field by which you can change refresh rate value between 1.0 sec to 10.0 sec. - +- [x] *Lock Mouse Actions* button to Freeze [Mouse Events](#mouse-events) +- [x] *Advance Position* options to pinpoint where to place the indicator on the Panel +- [x] *Refresh time* field by which you can change refresh rate value between 1.0 sec to 10.0 sec +- [x] Show Upload First button to show upload speed first +- [x] Color Customizations to make the extension your own +- [x] *Hide when Disconnected* button in Preference +- [x] *Use Shorten Units* button in Preference +and more... If you faced an **issue** then you can **[file an issue here](https://github.com/prateekmedia/netspeedsimplified/issues)** @@ -56,7 +56,7 @@ If you faced an **issue** then you can **[file an issue here](https://github.com - [m0hithreddy](https://github.com/m0hithreddy) for his support in rewriting extension.js with Clutter and rewriting readme.md, Adopting Make build system and more.. [Know More](https://github.com/prateekmedia/netspeedsimplified/graphs/contributors) -

      Installing Manually

      +

      Installing Manually

      ### Quick install For quick install use below command: diff --git a/extension.js b/extension.js index a56bada..c0916a8 100644 --- a/extension.js +++ b/extension.js @@ -28,6 +28,7 @@ function fetchSettings() { showTotalDwnld: settings.get_boolean('togglebool'), isVertical: settings.get_boolean('isvertical'), chooseIconSet: settings.get_int('chooseiconset'), + limitunit: settings.get_int('limitunit'), revIndicator: settings.get_boolean('reverseindicators'), lckMuseAct: settings.get_boolean('lockmouseactions'), minWidth: settings.get_double('minwidth'), @@ -75,15 +76,19 @@ function speedToString(amount, rMode = 0) { (rMode == 1 && (crStng.mode == 1 || crStng.mode == 3 || crStng.mode == 4)) ? v => v : //KB (rMode == 1 && (crStng.mode == 0 || crStng.mode == 2)) ? v => v.toLowerCase() : //kb (crStng.mode == 0 || crStng.mode == 2) ? v => v.toLowerCase() + "/s" : //kb/s - (crStng.mode == 1 || crStng.mode == 3) ? v => v + "/s" : v=>v); //KB/s + (crStng.mode == 1 || crStng.mode == 3) ? v => v + "/s" : //KB/s + v=>v); // Others if (amount === 0) return " 0.0 " + speed_map[0]; if (crStng.mode == 0 || crStng.mode == 2) amount = amount * 8; let unit = 0; while (amount >= 1000) { // 1M=1024K, 1MB/s=1000MB/s + if (crStng.limitunit != 0 && unit >= crStng.limitunit) { + break; + } amount /= 1000; - ++unit; + unit++; } let digits = (crStng.mode==4 || rMode !=0) ? 2 /* For floats like 21.11 and total speed mode */ : 1 //For floats like 21.2 diff --git a/metadata.json b/metadata.json index b55b4c6..29a4715 100644 --- a/metadata.json +++ b/metadata.json @@ -1,30 +1,31 @@ { - "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n☞ Completely revamped whole codebase \n☞ Add Show Upload First button to show upload speed first \n☞ Add Color Customizations to make the extension your own \n☞ Add set custom Font Button in Preference \n☞ Add Hide when Disconnected button in Prefrence\n☞ Add Use Shorten Units button in Preference \n \nFeatures \n1. Cleaner UI \n2. Adjustable Refresh rate \n3. Supports GNOME SHELL 3.38 and Backwards compatible \n4. Add Preference \n5. Add Vertical Alignment Support \n6. Add Two Icon sets for Indicators \n\n Feature Highlights for Preferences \n1. Add Lock Mouse Actions button to Freeze Mouse Events \n2. Add Advance Position menu to pinpoint where to place the indicator on the Panel. \n3. Add Refresh time option by which you can change refresh rate value between 1.0 sec to 10.0 sec. \n\nModes \n- Total net speed in bits per second \n- Total net speed in Bytes per second \n- Up and down speed in bits per second \n- Up and down speed in Bytes per second \n- Total of downloaded in Bytes (Right click to reset counter) \n\nMouse Events \n- Left click to change modes \n- Right click to toggle total data usage visibility \n- Right click continuously for 4 times in any mode to toggle vertical alignment \n- Middle click to change font size", - "name": "Net speed Simplified", - "shell-version": [ - "3.14", - "3.15", - "3.16", - "3.17", - "3.18", - "3.19", - "3.20", - "3.21", - "3.22", - "3.23", - "3.24", - "3.25", - "3.26", - "3.27", - "3.28", - "3.29", - "3.30", - "3.32", - "3.34", - "3.36", - "3.38" - ], - "url": "https://github.com/prateekmedia/netspeedsimplified", - "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 24 + "_generated": "Generated by SweetTooth, do not edit", + "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n\u261e Completely revamped whole codebase \n\u261e Add Show Upload First button to show upload speed first \n\u261e Add Color Customizations to make the extension your own \n\u261e Add set custom Font Button in Preference \n\u261e Add Hide when Disconnected button in Prefrence\n\u261e Add Use Shorten Units button in Preference \n \nFeatures \n1. Cleaner UI \n2. Adjustable Refresh rate \n3. Supports GNOME SHELL 40 \n4. Add Preference \n5. Add Vertical Alignment Support \n6. Add Two Icon sets for Indicators \n\n Feature Highlights for Preferences \n1. Add Lock Mouse Actions button to Freeze Mouse Events \n2. Add Advance Position menu to pinpoint where to place the indicator on the Panel. \n3. Add Refresh time option by which you can change refresh rate value between 1.0 sec to 10.0 sec. \n\nModes \n- Total net speed in bits per second \n- Total net speed in Bytes per second \n- Up and down speed in bits per second \n- Up and down speed in Bytes per second \n- Total of downloaded in Bytes (Right click to reset counter) \n\nMouse Events \n- Left click to change modes \n- Right click to toggle total data usage visibility \n- Right click continuously for 4 times in any mode to toggle vertical alignment \n- Middle click to change font size", + "name": "Net speed Simplified", + "shell-version": [ + "40", + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55", + "56", + "57", + "58", + "59", + "60" + ], + "url": "https://github.com/prateekmedia/netspeedsimplified", + "uuid": "netspeedsimplified@prateekmedia.extension", + "version": 25 } diff --git a/prefs.js b/prefs.js index 02d0c87..1ed4880 100644 --- a/prefs.js +++ b/prefs.js @@ -35,11 +35,11 @@ Prefs.prototype = } function vBoxSpinBtn(getDouble, whichHbox, getLbl = "", getTooTip = "", lwer , uper, stpInc = 1, digs = 0, nume = true, pgeInc = 1, pgeSiz = 0, clmrate = 1){ - boolComp = (thset.get_double(getDouble) === thset.get_default_value(getDouble).unpack()); + let boolComp = (thset.get_double(getDouble) === thset.get_default_value(getDouble).unpack()); getLbl = boolComp ? getLbl : `${getLbl}` - whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }); - whichSpinBtn = new Gtk.SpinButton({ + let whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }); + let whichSpinBtn = new Gtk.SpinButton({ adjustment: new Gtk.Adjustment({ lower: lwer, upper: uper, step_increment: stpInc, page_increment: pgeInc, page_size: pgeSiz }), @@ -55,116 +55,120 @@ Prefs.prototype = thset.set_boolean('restartextension' , true); } }); - whichHbox.pack_start(whichLbl, true, true, 0); - whichHbox.add(whichSpinBtn); + whichLbl.set_hexpand(true); + whichHbox.append(whichLbl); + whichHbox.append(whichSpinBtn); - vbox.add(whichHbox); + vbox.append(whichHbox); } function vBoxAddSeleCt(getInt, whichHbox, getLbl, aRray = [], getTooTip = ""){ - boolComp = (thset.get_int(getInt) == thset.get_default_value(getInt).unpack()); + let boolComp = (thset.get_int(getInt) == thset.get_default_value(getInt).unpack()); getLbl = boolComp ? getLbl : `${getLbl}` - tootext = boolComp ? "" : "The Value is Changed" + let tootext = boolComp ? "" : "The Value is Changed" - whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0,tooltip_text: getTooTip}); - whichVlue = new Gtk.ComboBoxText({halign: Gtk.Align.END, tooltip_text: tootext }); + let whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0,tooltip_text: getTooTip}); + let whichVlue = new Gtk.ComboBoxText({halign: Gtk.Align.END, tooltip_text: tootext }); for (i in aRray){ whichVlue.append_text(aRray[i]); } - whichVlue.set_active(Math.round(thset.get_int(getInt))); + whichVlue.set_active(Math.round(thset.get_int(getInt))); whichVlue.connect('changed', (widget) => { let valueMode = widget.get_active(); thset.set_int(getInt, valueMode); thset.set_boolean('restartextension' , true); }) - whichHbox.add(whichLbl); - whichHbox.pack_end(whichVlue, true, true, 0); + whichLbl.set_hexpand(true); + whichHbox.append(whichLbl); + whichHbox.append(whichVlue); - vbox.add(whichHbox); + vbox.append(whichHbox); } function vBoxAddTgglBtn(whichHbox, getLbl, getBool, getTooTip = "", func){ - boolComp = true; + let boolComp = true; if (func ==undefined){ boolComp = (thset.get_boolean(getBool) == thset.get_default_value(getBool).unpack()); getLbl = boolComp ? getLbl : `${getLbl}` } - tootext = boolComp ? "" : "The Value is Changed" - whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }); - whichVlue = new Gtk.Switch({ + let tootext = boolComp ? "" : "The Value is Changed" + let whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }); + let whichVlue = new Gtk.Switch({ active: getBool ? thset.get_boolean(getBool) : false, tooltip_text: tootext }); whichVlue.connect('notify::active', (widget) => { - if (func != undefined) func(widget.active); + if (func != undefined) func(widget.active); else { thset.set_boolean(getBool, widget.active); thset.set_boolean('restartextension' , true); } }) - whichHbox.pack_start(whichLbl, true, true, 0); - whichHbox.add(whichVlue); + whichLbl.set_hexpand(true); + whichHbox.append(whichLbl); + whichHbox.append(whichVlue); - vbox.add(whichHbox); + vbox.append(whichHbox); } function vBoxAddColorButton(whichHbox, getLbl, getColor, getToolTip = "") { //Deterime whether the option value is changed from default value - boolComp = (thset.get_string(getColor) == thset.get_default_value(getColor).unpack()); + let boolComp = (thset.get_string(getColor) == thset.get_default_value(getColor).unpack()); getLbl = boolComp ? getLbl : `${getLbl}` - tootext = boolComp ? "" : "The Value is Changed" + let tootext = boolComp ? "" : "The Value is Changed" //Create the option name - whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getToolTip}); + let whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getToolTip}); //Create RGBA - rgba = new Gdk.RGBA(); + let rgba = new Gdk.RGBA(); rgba.parse(thset.get_string(getColor)); //Create ColorButton - colorButton = new Gtk.ColorButton({tooltip_text: tootext}); + let colorButton = new Gtk.ColorButton({tooltip_text: tootext}); colorButton.set_rgba(rgba); - colorButton.connect('notify::color', (widget) => { //On the event of modification + colorButton.connect('color-set', (widget) => { //On the event of modification rgba = widget.get_rgba(); thset.set_string(getColor, rgba.to_string()); thset.set_boolean('restartextension' , true); }); - whichHbox.pack_start(whichLbl, true, true, 0); - whichHbox.add(colorButton); + whichLbl.set_hexpand(true); + whichHbox.append(whichLbl); + whichHbox.append(colorButton); - vbox.add(whichHbox); + vbox.append(whichHbox); } function vBoxAddEntry(whichHbox, getLbl, getString, getTooTip = "", func){ - boolComp = (thset.get_string(getString) == thset.get_default_value(getString).unpack()); + let boolComp = (thset.get_string(getString) == thset.get_default_value(getString).unpack()); getLbl = boolComp ? getLbl : `${getLbl}` - tootext = boolComp ? "" : "The Value is Changed" - whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }); - whichVlue = new Gtk.Entry({text: thset.get_string(getString), tooltip_text: tootext, placeholder_text: "Press Enter to apply" }); + let tootext = boolComp ? "" : "The Value is Changed" + let whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }); + let whichVlue = new Gtk.Entry({text: thset.get_string(getString), tooltip_text: tootext, placeholder_text: "Press Enter to apply" }); whichVlue.connect('activate', (widget) => { thset.set_string(getString, widget.get_text()); if (func != undefined){ func(widget.active); } else { thset.set_boolean('restartextension' , true); } }) - whichHbox.pack_start(whichLbl, true, true, 0); - whichHbox.add(whichVlue); - whichHbox.add(new Gtk.Separator({visible : true})); + whichLbl.set_hexpand(true); + whichHbox.append(whichLbl); + whichHbox.append(whichVlue); + whichHbox.append(new Gtk.Separator({visible : true})); - vbox.add(whichHbox); + vbox.append(whichHbox); } let frame = new Gtk.ScrolledWindow(); - let label = new Gtk.Label({ label: "General Settings", use_markup: true, xalign:0}); - let vbox = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, margin_left: 25, margin_right: 25}); - let resetBtn = new Gtk.Button ({label: "Restore Defaults"}); - let mfooter = new Gtk.Label({ label: "Pro Tip : Hover over any Label To know more about it",use_markup: true, margin_top: 20}); + let label = new Gtk.Label({ label: "General Settings", use_markup: true, xalign:0, margin_top: 15}); + let vbox = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, margin_start: 25, margin_end: 25}); + let resetBtn = new Gtk.Button ({label: "Restore Defaults", margin_bottom: 15}); resetBtn.connect ("clicked", ()=>{ let strArray = ["customfont", "uscolor", "dscolor", "tscolor", "tdcolor"]; @@ -183,7 +187,7 @@ Prefs.prototype = frame.destroy(); }); - vbox.add(label); + vbox.append(label); //For Position let hboxWPos = newGtkBox(); vBoxAddSeleCt("wpos", hboxWPos, "Position on the Panel", ["Right","Left","Center"], "Choose where to Place the extension on the Panel"); @@ -194,7 +198,7 @@ Prefs.prototype = //Refresh time let hboxRTime = newGtkBox(); - vBoxSpinBtn("refreshtime", hboxRTime, "Refresh Time", "Change Refresh time value from anywhere b/w 1 to 10", 1.0, 10.0, .1, 1); + vBoxSpinBtn("refreshtime", hboxRTime, "Refresh Time", "Change Refresh time value from anywhere b/w 1 to 10", 1.0, 10.0, .1, 1); //For Modes let hboxMode = newGtkBox(); @@ -215,6 +219,10 @@ Prefs.prototype = //For Toggling Old Icons let hboxIconset = newGtkBox(); vBoxAddSeleCt("chooseiconset", hboxIconset, "Choose Icons Set", [" 🡳, 🡱, Σ ", " ↓, ↑, ∑ "], "Choose which icon set to display"); + + //For Limiting upper limit of speed + let hboxLimitUnit = newGtkBox(); + vBoxAddSeleCt("limitunit", hboxLimitUnit, "Limit Unit", ["(None)", 'K', 'M', 'G', 'T', 'P', 'E', 'Z'], "Choose unit limitation set to display"); //For Hide When Disconnected let hboxHideInd = newGtkBox(); @@ -224,23 +232,6 @@ Prefs.prototype = let hboxShUni = newGtkBox(); vBoxAddTgglBtn(hboxShUni, "Shorten Units", "shortenunits", "Enabling it will result in shorten units like K instead of KB"); - //Colors - let hboxColor = newGtkBox(); - function showOrHide(widget){ - let advWidgets = [hboxRevInd, hboxLckMuseAct, hboxMinWidth, hboxCustFont, usColorButton, dsColorButton, tsColorButton, tdColorButton]; - if (widget){ - for (i in advWidgets){ - advWidgets[i].show(); - } - } else { - for (i in advWidgets){ - advWidgets[i].hide(); - } - } - } - - vBoxAddTgglBtn(hboxColor, "Show Advanced Options", "", "Enabling it will Show all Advanced customizations", showOrHide); - //For Reversing the download and upload indicators let hboxRevInd = newGtkBox(); vBoxAddTgglBtn(hboxRevInd, "Show Upload First", "reverseindicators", "Enabling it will reverse the upload and download speed indicators"); @@ -251,7 +242,7 @@ Prefs.prototype = //Minimum Width let hboxMinWidth = newGtkBox(); - vBoxSpinBtn("minwidth", hboxMinWidth, "Minimum Width", "Change Minimum Width value from anywhere b/w 3em to 10em", 3.0, 10.0, .5, 1); + vBoxSpinBtn("minwidth", hboxMinWidth, "Minimum Width", "Change Minimum Width value from anywhere b/w 3em to 10em", 3.0, 10.0, .5, 1); //For Custom Font name let hboxCustFont = newGtkBox(); @@ -273,13 +264,9 @@ Prefs.prototype = let tdColorButton = newGtkBox(); vBoxAddColorButton(tdColorButton, "Total Download Color", "tdcolor", "Select the total download color"); - vbox.add(resetBtn); - vbox.add(mfooter); - frame.add(vbox); - frame.show_all(); - frame.connect('destroy', Gtk.main_quit); - - showOrHide(false); + vbox.append(resetBtn); + frame.child = vbox; + // frame.connect('destroy', Gtk.main_quit); return frame; } diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index 9376701a85cc73d1091a7585edb430992f979c36..68e8f0829a595887141119f4ff1f5ec0903d05f9 100644 GIT binary patch literal 1581 zcma)6J!lj`7@cThENc_IAB9ia7A@y?Z?kt?5PnYUChU@wpBQOpZSUU1na=7(FiXCGy%;(3$Q-HMsPc@ z8Nl+z4sXp9&g1&li!sr*7Cvx&ga4L3btC*va4&H9@{MKs)bt0z4shb;(gJHh2NJvobSBpPK7@ z3H}On+#fzqpSqcO8}J_B*hk~~P`AL}4&Dzunmp6OvqIefe-JzYWZLy7#-ZkSO@XI@ z-lr=TeQK_A7CaB!>-unsJ~i_$f}a709$bm*K+QV50e=Aw?7i@q^QoKQ^RRRP`{qm= zeQL(Bz}-Mexl#qLa`GmO@SLMgSOxoJIn+3;6-S8bGdPyAPFYIXwr#W%dg+T%v5>d+ z^z?LfR)2Qen6B+ej>$+@GwDiP6iO{kMp_jFLAQvyeZ{y+2!KPE*D>RxnJehxj!$v zoDkXzo#TEus%73Wyb~*t@nHqqt?ukU>SMxU(UXNR{I&j?Gs9@<+E<+$Px;F5%%vIA UdEC32x;mrUgg(z=JP{}PC&Nu5y#N3J literal 1499 zcma)6O=uHA7@gL}#QvH317baR@UV+*qC!yUp}9!K_9hgO9!z$($>3%;?rd8B!CM8r zYO8`p^x#2y=t(bD#Df&ngF;1xUVD*3DR`>BH=9kWB0BK$-oBmrzHer}&CqBekOeOk z^|1$hI?_gKY=RTJh4_IHy&KVU#^7IH8@tD8)cxXwxCvgy!WOU}lrkmHuQ(Z1c3d~( zTnHUcN#9c$&k0r4acm_kRacHn$HsgN18MZ&dSXi*ZQw*5Tfs?S8_*7P0Np^kjvjD~ z9niageQxU;#$at-VnVEf*MXyRVVXX5JA5Wg0G%K1AJ;jdlkn5vgTTq>cdyW=Zi9aa zJPgF=LoLLJ7y(ZMPc~-eIG;L&`Lp0f;N{baBz=~FZQGjmcfmT%LiW_$zO54;_i z)#pjg^E?JV1q>{17@SYdIA_6^0n0q2>!ITv1i$H>`{(RpbJ1Lx|er?*|RBtJtPm=2R9FbY#=I!1jvM~hJxGPRLfohu*W>!uxr$#?PQeQK z_Y(W6>?4s^^JG{rKB|AR>MP`rGsow|yW4zDeyQX-Mc;4a;ktMcI9|tl+qBMZ?&2Tk qJC3s`hq4m26@q*pjAJsS5UYa`|8mb(*+==(!bTmvhj`6z_5TD{dKUTs diff --git a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml index c9b7a36..00bf02d 100644 --- a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml +++ b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml @@ -34,12 +34,16 @@ 0
      + + + 0 + false - 6.5 + 3.0 false From 5e3edd4561722380562895f2c24de018b40dccd3 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Thu, 25 Mar 2021 17:21:20 +0530 Subject: [PATCH 288/344] Update metadata.json --- metadata.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/metadata.json b/metadata.json index 29a4715..7be55d8 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,6 @@ { "_generated": "Generated by SweetTooth, do not edit", - "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n\u261e Completely revamped whole codebase \n\u261e Add Show Upload First button to show upload speed first \n\u261e Add Color Customizations to make the extension your own \n\u261e Add set custom Font Button in Preference \n\u261e Add Hide when Disconnected button in Prefrence\n\u261e Add Use Shorten Units button in Preference \n \nFeatures \n1. Cleaner UI \n2. Adjustable Refresh rate \n3. Supports GNOME SHELL 40 \n4. Add Preference \n5. Add Vertical Alignment Support \n6. Add Two Icon sets for Indicators \n\n Feature Highlights for Preferences \n1. Add Lock Mouse Actions button to Freeze Mouse Events \n2. Add Advance Position menu to pinpoint where to place the indicator on the Panel. \n3. Add Refresh time option by which you can change refresh rate value between 1.0 sec to 10.0 sec. \n\nModes \n- Total net speed in bits per second \n- Total net speed in Bytes per second \n- Up and down speed in bits per second \n- Up and down speed in Bytes per second \n- Total of downloaded in Bytes (Right click to reset counter) \n\nMouse Events \n- Left click to change modes \n- Right click to toggle total data usage visibility \n- Right click continuously for 4 times in any mode to toggle vertical alignment \n- Middle click to change font size", + "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n\u261e Add Limit Unit option \n\u261e Add Gnome 40 Support \n\u261e Fix a bug where refresh time was getting reset to 6.5 \n\u261e Used Min Width 3.0 by default \n \nFeatures \n1. Cleaner UI \n2. Adjustable Refresh rate \n3. Supports GNOME SHELL 40 \n4. Preference \n5. Vertical Alignment Support \n6. Two Icon sets for Indicators \n\n Feature Highlights for Preferences \n1. Lock Mouse Actions button to Freeze Mouse Events \n2. Advance Position options to pinpoint where to place the indicator on the Panel. \n3. Refresh time option by which you can change refresh rate value between 1.0 sec to 10.0 sec. \n\nModes \n- Total net speed in bits per second \n- Total net speed in Bytes per second \n- Up and down speed in bits per second \n- Up and down speed in Bytes per second \n- Total of downloaded in Bytes (Right click to reset counter) \n\nMouse Events \n- Left click to change modes \n- Right click to toggle total data usage visibility \n- Right click continuously for 4 times in any mode to toggle vertical alignment \n- Middle click to change font size", "name": "Net speed Simplified", "shell-version": [ "40", @@ -27,5 +27,5 @@ ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 25 + "version": 26 } From 757323d302a720df7f912b5c5226c6a0c0aa16fa Mon Sep 17 00:00:00 2001 From: Prateek SU Date: Fri, 26 Mar 2021 19:11:35 +0530 Subject: [PATCH 289/344] Unified Extension for both GNOME40 and other previous shells like 3.38, 3.36 --- README.md | 2 +- metadata.json | 25 +++++++++++++++++++-- prefs.js | 61 ++++++++++++++++++++++++++++++++------------------- 3 files changed, 62 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 3b20346..aae1a89 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@

      Screenshot

      -***Tested on GNOME 40*** +***Tested on GNOME 40, 3.38 and 3.36*** #### What's new - [x] Add Limit Unit option diff --git a/metadata.json b/metadata.json index 7be55d8..7989964 100644 --- a/metadata.json +++ b/metadata.json @@ -1,8 +1,29 @@ { "_generated": "Generated by SweetTooth, do not edit", - "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n\u261e Add Limit Unit option \n\u261e Add Gnome 40 Support \n\u261e Fix a bug where refresh time was getting reset to 6.5 \n\u261e Used Min Width 3.0 by default \n \nFeatures \n1. Cleaner UI \n2. Adjustable Refresh rate \n3. Supports GNOME SHELL 40 \n4. Preference \n5. Vertical Alignment Support \n6. Two Icon sets for Indicators \n\n Feature Highlights for Preferences \n1. Lock Mouse Actions button to Freeze Mouse Events \n2. Advance Position options to pinpoint where to place the indicator on the Panel. \n3. Refresh time option by which you can change refresh rate value between 1.0 sec to 10.0 sec. \n\nModes \n- Total net speed in bits per second \n- Total net speed in Bytes per second \n- Up and down speed in bits per second \n- Up and down speed in Bytes per second \n- Total of downloaded in Bytes (Right click to reset counter) \n\nMouse Events \n- Left click to change modes \n- Right click to toggle total data usage visibility \n- Right click continuously for 4 times in any mode to toggle vertical alignment \n- Middle click to change font size", + "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n\u261e Add Limit Unit option \n\u261e Tested on GNOME 40, 3.38 and 3.36 \n\u261e Fix a bug where refresh time was getting reset to 6.5 \n\u261e Used Min Width 3.0 by default \n \nFeatures \n1. Cleaner UI \n2. Adjustable Refresh rate \n3. Preferences to manage extension \n4. Vertical Alignment Support \n5. Two Icon sets for Indicators \n\n Feature Highlights for Preferences \n1. Lock Mouse Actions button to Freeze Mouse Events \n2. Advance Position options to pinpoint where to place the indicator on the Panel. \n3. Refresh time option by which you can change refresh rate value between 1.0 sec to 10.0 sec. \n\nModes \n- Total net speed in bits per second \n- Total net speed in Bytes per second \n- Up and down speed in bits per second \n- Up and down speed in Bytes per second \n- Total of downloaded in Bytes (Right click to reset counter) \n\nMouse Events \n- Left click to change modes \n- Right click to toggle total data usage visibility \n- Right click continuously for 4 times in any mode to toggle vertical alignment \n- Middle click to change font size", "name": "Net speed Simplified", "shell-version": [ + "3.14", + "3.15", + "3.16", + "3.17", + "3.18", + "3.19", + "3.20", + "3.21", + "3.22", + "3.23", + "3.24", + "3.25", + "3.26", + "3.27", + "3.28", + "3.29", + "3.30", + "3.32", + "3.34", + "3.36", + "3.38", "40", "41", "42", @@ -27,5 +48,5 @@ ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 26 + "version": 25 } diff --git a/prefs.js b/prefs.js index 1ed4880..eab552d 100644 --- a/prefs.js +++ b/prefs.js @@ -1,5 +1,8 @@ const Gtk = imports.gi.Gtk, Gdk = imports.gi.Gdk; + +const Config = imports.misc.config; +const ShellVersion = parseFloat(Config.PACKAGE_VERSION); const Me = imports.misc.extensionUtils.getCurrentExtension(), Convenience = Me.imports.convenience, @@ -28,8 +31,17 @@ Prefs.prototype = buildPrefsWidget: function() { - let thset = this.settings; - + let thset = this.settings; + let isGnome40 = ShellVersion >= 40; + + function addIt(element, child){ + if(isGnome40){ + element.append(child); + } else { + element.add(child); + } + } + function newGtkBox(){ return new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); } @@ -56,10 +68,10 @@ Prefs.prototype = } }); whichLbl.set_hexpand(true); - whichHbox.append(whichLbl); - whichHbox.append(whichSpinBtn); + addIt(whichHbox, whichLbl); + addIt(whichHbox, whichSpinBtn); - vbox.append(whichHbox); + addIt(vbox, whichHbox); } function vBoxAddSeleCt(getInt, whichHbox, getLbl, aRray = [], getTooTip = ""){ @@ -82,10 +94,10 @@ Prefs.prototype = thset.set_boolean('restartextension' , true); }) whichLbl.set_hexpand(true); - whichHbox.append(whichLbl); - whichHbox.append(whichVlue); + addIt(whichHbox, whichLbl); + addIt(whichHbox, whichVlue); - vbox.append(whichHbox); + addIt(vbox, whichHbox); } function vBoxAddTgglBtn(whichHbox, getLbl, getBool, getTooTip = "", func){ @@ -109,10 +121,10 @@ Prefs.prototype = }) whichLbl.set_hexpand(true); - whichHbox.append(whichLbl); - whichHbox.append(whichVlue); + addIt(whichHbox, whichLbl); + addIt(whichHbox, whichVlue); - vbox.append(whichHbox); + addIt(vbox, whichHbox); } function vBoxAddColorButton(whichHbox, getLbl, getColor, getToolTip = "") { @@ -138,10 +150,10 @@ Prefs.prototype = }); whichLbl.set_hexpand(true); - whichHbox.append(whichLbl); - whichHbox.append(colorButton); + addIt(whichHbox, whichLbl); + addIt(whichHbox, colorButton); - vbox.append(whichHbox); + addIt(vbox, whichHbox); } function vBoxAddEntry(whichHbox, getLbl, getString, getTooTip = "", func){ @@ -158,11 +170,10 @@ Prefs.prototype = }) whichLbl.set_hexpand(true); - whichHbox.append(whichLbl); - whichHbox.append(whichVlue); - whichHbox.append(new Gtk.Separator({visible : true})); + addIt(whichHbox, whichLbl); + addIt(whichHbox, whichVlue); - vbox.append(whichHbox); + addIt(vbox, whichHbox); } let frame = new Gtk.ScrolledWindow(); @@ -187,7 +198,7 @@ Prefs.prototype = frame.destroy(); }); - vbox.append(label); + addIt(vbox, label); //For Position let hboxWPos = newGtkBox(); vBoxAddSeleCt("wpos", hboxWPos, "Position on the Panel", ["Right","Left","Center"], "Choose where to Place the extension on the Panel"); @@ -264,10 +275,14 @@ Prefs.prototype = let tdColorButton = newGtkBox(); vBoxAddColorButton(tdColorButton, "Total Download Color", "tdcolor", "Select the total download color"); - vbox.append(resetBtn); - frame.child = vbox; - // frame.connect('destroy', Gtk.main_quit); - + addIt(vbox, resetBtn); + if (isGnome40) {frame.child = vbox;} + else { + frame.add(vbox); + frame.show_all(); + frame.connect('destroy', Gtk.main_quit); + } + return frame; } } From 264fca10275bccfe269db8f9ec2f3efe4e8ed0a4 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 28 Mar 2021 13:22:41 +0530 Subject: [PATCH 290/344] Update Screenshot GIF --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index aae1a89..db721ef 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ [Get it on GNOME Extensions](https://extensions.gnome.org/extension/3724/net-speed-simplified/) or [Install Manually](#installing-manually) -

      Screenshot +

      Screenshot

      ***Tested on GNOME 40, 3.38 and 3.36*** From ab5d4a966e49e17332a7f7a894fa862d7de648e5 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sun, 28 Mar 2021 13:24:02 +0530 Subject: [PATCH 291/344] Remove screenshot.png from repository --- images/screenshoot.png | Bin 81751 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 images/screenshoot.png diff --git a/images/screenshoot.png b/images/screenshoot.png deleted file mode 100644 index c4ff46180e56a4e82df2dd0817797e8a1639db57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81751 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%0DX4C-?*yr!#^+oxzYVMX( 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 Date: Mon, 29 Mar 2021 06:59:17 +0530 Subject: [PATCH 292/344] Bump version to 27 to comply with EGO --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index 7989964..8380f85 100644 --- a/metadata.json +++ b/metadata.json @@ -48,5 +48,5 @@ ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 25 + "version": 27 } From 94dcda77957254793f568e266661fd5d5a94eb76 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 8 May 2021 09:48:50 +0530 Subject: [PATCH 293/344] Add System colors option, fix preferences, ... --- extension.js | 173 +++--- metadata.json | 12 +- prefs.js | 525 +++++++++--------- schemas/gschemas.compiled | Bin 1581 -> 1628 bytes ....extensions.netspeedsimplified.gschema.xml | 3 + 5 files changed, 356 insertions(+), 357 deletions(-) diff --git a/extension.js b/extension.js index c0916a8..9be0381 100644 --- a/extension.js +++ b/extension.js @@ -1,21 +1,21 @@ //Imports const Clutter = imports.gi.Clutter, - St = imports.gi.St, - Main = imports.ui.main, - Gio = imports.gi.Gio, - PanelMenu = imports.ui.panelMenu, - Mainloop = imports.mainloop, - Me = imports.misc.extensionUtils.getCurrentExtension(), - Convenience = Me.imports.convenience, - schema = 'org.gnome.shell.extensions.netspeedsimplified', - ButtonName = "ShowNetSpeedButton", - rCConst=4; //Right Click 4 times to toggle Vertical Alignment + St = imports.gi.St, + Main = imports.ui.main, + Gio = imports.gi.Gio, + PanelMenu = imports.ui.panelMenu, + Mainloop = imports.mainloop, + Me = imports.misc.extensionUtils.getCurrentExtension(), + Convenience = Me.imports.convenience, + schema = 'org.gnome.shell.extensions.netspeedsimplified', + ButtonName = "ShowNetSpeedButton", + rCConst = 4; //Right Click 4 times to toggle Vertical Alignment let settings, timeout, - lastCount = 0, lastSpeed = 0, lastCountUp = 0, - resetNextCount=false, resetCount=0, - hideCount=8, - B_UNITS; + lastCount = 0, lastSpeed = 0, lastCountUp = 0, + resetNextCount = false, resetCount = 0, + hideCount = 8, + B_UNITS; // Settings var crStng; //Initialized in enable() @@ -36,6 +36,7 @@ function fetchSettings() { hideInd: settings.get_boolean('hideindicator'), shortenUnits: settings.get_boolean('shortenunits'), nsPos: settings.get_int('wpos'), + systemColr: settings.get_boolean('systemcolr'), nsPosAdv: settings.get_int('wposext'), usColor: settings.get_string('uscolor'), dsColor: settings.get_string('dscolor'), @@ -43,14 +44,14 @@ function fetchSettings() { tdColor: settings.get_string('tdcolor') }; - B_UNITS = (crStng.shortenUnits) ? ['B', 'K', 'M', 'G', 'T', 'P', 'E', 'Z'] : [' B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB'] ; + B_UNITS = (crStng.shortenUnits) ? ['B', 'K', 'M', 'G', 'T', 'P', 'E', 'Z'] : [' B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB']; initNs(); } function pushSettings() { settings.set_int('mode', crStng.mode); - settings.set_int('fontmode', crStng.fontmode); + settings.set_int('fontmode', crStng.fontmode); settings.set_boolean('togglebool', crStng.showTotalDwnld); settings.set_boolean('isvertical', crStng.isVertical); @@ -59,7 +60,7 @@ function pushSettings() { //Helper Functions function DIcons(iNum) { - return [ ["🡳","🡱","Σ"] , ["↓","↑","∑"] ][crStng.chooseIconSet][iNum]; + return [["🡳", "🡱", "Σ"], ["↓", "↑", "∑"]][crStng.chooseIconSet][iNum]; } function nsPos() { @@ -74,12 +75,12 @@ function speedToString(amount, rMode = 0) { let speed_map = B_UNITS.map( (rMode == 1 && (crStng.mode == 1 || crStng.mode == 3 || crStng.mode == 4)) ? v => v : //KB - (rMode == 1 && (crStng.mode == 0 || crStng.mode == 2)) ? v => v.toLowerCase() : //kb - (crStng.mode == 0 || crStng.mode == 2) ? v => v.toLowerCase() + "/s" : //kb/s - (crStng.mode == 1 || crStng.mode == 3) ? v => v + "/s" : //KB/s - v=>v); // Others - - if (amount === 0) return " 0.0 " + speed_map[0]; + (rMode == 1 && (crStng.mode == 0 || crStng.mode == 2)) ? v => v.toLowerCase() : //kb + (crStng.mode == 0 || crStng.mode == 2) ? v => v.toLowerCase() + "/s" : //kb/s + (crStng.mode == 1 || crStng.mode == 3) ? v => v + "/s" : //KB/s + v => v); // Others + + if (amount === 0) return " 0.0 " + speed_map[0]; if (crStng.mode == 0 || crStng.mode == 2) amount = amount * 8; let unit = 0; @@ -91,10 +92,10 @@ function speedToString(amount, rMode = 0) { unit++; } - let digits = (crStng.mode==4 || rMode !=0) ? 2 /* For floats like 21.11 and total speed mode */ : 1 //For floats like 21.2 + let digits = (crStng.mode == 4 || rMode != 0) ? 2 /* For floats like 21.11 and total speed mode */ : 1 //For floats like 21.2 - let spaceNum = 3 - Math.ceil(Math.log10(amount +1)); - spaceNum <0 ? spaceNum = 0 : null + let spaceNum = 3 - Math.ceil(Math.log10(amount + 1)); + spaceNum < 0 ? spaceNum = 0 : null return " ".repeat(spaceNum) + amount.toFixed(digits) + " " + speed_map[unit]; } @@ -103,68 +104,69 @@ function speedToString(amount, rMode = 0) { var usLabel, dsLabel, tsLabel, tdLabel, usIcon, dsIcon, tsIcon, tdIcon; function getStyle(isIcon = false) { - return (isIcon) ? 'size-' + (String(crStng.fontmode)) : ('forall size-' + String(crStng.fontmode)) + return (isIcon) ? 'size-' + (String(crStng.fontmode)) : ('forall size-' + String(crStng.fontmode)) } function initNsLabels() { - let extraInfo = crStng.cusFont ? "; font-family: " + crStng.cusFont : ""; - let extraLabelInfo = extraInfo + "; min-width: " + crStng.minWidth +"em"; + let extraInfo = crStng.cusFont ? "font-family: " + crStng.cusFont + "; " : ""; + let extraLabelInfo = extraInfo + "min-width: " + crStng.minWidth + "em; "; + usLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "color: " + crStng.usColor + extraLabelInfo + style: extraLabelInfo + (crStng.systemColr ? "color: " + crStng.usColor : "") }); dsLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "color: " + crStng.dsColor + extraLabelInfo + style: extraLabelInfo + (crStng.systemColr ? "" : "color: " + crStng.dsColor) }); tsLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "color: " + crStng.tsColor + extraLabelInfo + style: extraLabelInfo + (crStng.systemColr ? "" : "color: " + crStng.tsColor) }); tdLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: "color: " + crStng.tdColor + extraLabelInfo + style: extraLabelInfo + (crStng.systemColr ? "" : "color: " + crStng.tdColor) }); usIcon = new St.Label({ text: DIcons(1), y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(true), - style: "color: " + crStng.usColor + extraInfo + style: extraInfo + (crStng.systemColr ? "" : "color: " + crStng.usColor) }); dsIcon = new St.Label({ text: DIcons(0), y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(true), - style: "color: " + crStng.dsColor + extraInfo + style: extraInfo + (crStng.systemColr ? "" : "color: " + crStng.dsColor) }); tsIcon = new St.Label({ text: "⇅", y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(true), - style: "color: " + crStng.tsColor + extraInfo + style: extraInfo + (crStng.systemColr ? "" : "color: " + crStng.tsColor) }); tdIcon = new St.Label({ text: DIcons(2), y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(true), - style: "color: " + crStng.tdColor + extraInfo + style: extraInfo + (crStng.systemColr ? "" : "color: " + crStng.tdColor) }); } -function updateNsLabels(up, down, up_down, total) { //UpSpeed, DownSpeed, UpSpeed + DownSpeed, TotalDownloaded +function updateNsLabels(up, down, up_down, total) { usLabel.set_text(up); dsLabel.set_text(down); tsLabel.set_text(up_down); @@ -183,7 +185,7 @@ function initNs() { initNsLabels(); //Allocate 3 * 3 grid (suited for all modes) - nsLayout = new Clutter.GridLayout(); + nsLayout = new Clutter.GridLayout(); nsLayout.insert_row(1); nsLayout.insert_row(2); nsLayout.insert_column(1); @@ -193,8 +195,10 @@ function initNs() { layout_manager: nsLayout, y_align: Clutter.ActorAlign.CENTER }) - - let verticalConstant = (crStng.isVertical) ? 1 : 0 ; + + let verticalConstant = (crStng.isVertical) ? 1 : 0; + let heightConstant = 1 + verticalConstant; + let widthConstant = 2 * (1 - verticalConstant); //Attach the components to the grid. if (crStng.mode == 0 || crStng.mode == 1) { @@ -202,31 +206,31 @@ function initNs() { nsLayout.attach(tsLabel, 1, 1, 1, 1); if (crStng.showTotalDwnld) { - nsLayout.attach(tdIcon, 2 - 2*verticalConstant, 1 + verticalConstant, 1, 1); - nsLayout.attach(tdLabel, 3 - 2*verticalConstant, 1 + verticalConstant, 1, 1); + nsLayout.attach(tdIcon, widthConstant, heightConstant, 1, 1); + nsLayout.attach(tdLabel, 1 + widthConstant, heightConstant, 1, 1); } } else if (crStng.mode == 2 || crStng.mode == 3) { if (crStng.revIndicator) { - nsLayout.attach(usIcon, 0, 1, 1, 1); + nsLayout.attach(usIcon, 0, 1, 1, 1); nsLayout.attach(usLabel, 1, 1, 1, 1); - nsLayout.attach(dsIcon, 2 - 2*verticalConstant, 1 + verticalConstant, 1, 1); - nsLayout.attach(dsLabel, 3 - 2*verticalConstant, 1 + verticalConstant, 1, 1); + nsLayout.attach(dsIcon, widthConstant, heightConstant, 1, 1); + nsLayout.attach(dsLabel, 1 + widthConstant, heightConstant, 1, 1); } else { - nsLayout.attach(dsIcon, 0, 1, 1, 1); + nsLayout.attach(dsIcon, 0, 1, 1, 1); nsLayout.attach(dsLabel, 1, 1, 1, 1); - nsLayout.attach(usIcon, 2 - 2*verticalConstant, 1 + verticalConstant, 1, 1); - nsLayout.attach(usLabel, 3 - 2*verticalConstant, 1 + verticalConstant, 1, 1); + nsLayout.attach(usIcon, widthConstant, heightConstant, 1, 1); + nsLayout.attach(usLabel, 1 + widthConstant, heightConstant, 1, 1); } if (crStng.showTotalDwnld) { - nsLayout.attach(tdIcon, 5 - 2*verticalConstant, 1 + verticalConstant, 1, 1); - nsLayout.attach(tdLabel, 6 - 2*verticalConstant, 1 + verticalConstant, 1, 1); + nsLayout.attach(tdIcon, 2 + widthConstant, heightConstant, 1, 1); + nsLayout.attach(tdLabel, 3 + widthConstant, heightConstant, 1, 1); } } else { - nsLayout.attach(tdIcon, 0, 1, 1, 1); + nsLayout.attach(tdIcon, 0, 1, 1, 1); nsLayout.attach(tdLabel, 1, 1, 1, 1); } @@ -252,27 +256,25 @@ function mouseEventHandler(widget, event) { if (crStng.mode == 4) resetNextCount = true; // right click: reset downloaded sum else - crStng.showTotalDwnld = !(crStng.showTotalDwnld); // right click on other modes brings total downloaded sum - - // Logic to toggle crStng.isVertical after rCConstant consequent right clicks. - if (startTime == null) { - startTime = new Date(); - } - - if (((new Date() - startTime) / 1000) <= crStng.refreshTime * 2) { - if (rClickCount == rCConst - 1) { - crStng.isVertical = !(crStng.isVertical); - startTime = null; - rClickCount = 0; - } - else { - rClickCount++; - } - } - else { - startTime = new Date(); - rClickCount = 1; - } + crStng.showTotalDwnld = !(crStng.showTotalDwnld); // right click on other modes brings total downloaded sum + + // Logic to toggle crStng.isVertical after rCConstant consequent right clicks. + if (startTime == null) { + startTime = new Date(); + } + + if (((new Date() - startTime) / 1000) <= crStng.refreshTime * 2) { + if (rClickCount == rCConst - 1) { + crStng.isVertical = !(crStng.isVertical); + startTime = null; + rClickCount = 0; + } + else rClickCount++; + } + else { + startTime = new Date(); + rClickCount = 1; + } } else if (event.get_button() == 2) { // change font crStng.fontmode++; @@ -296,22 +298,22 @@ function parseStat() { let count = 0; let countUp = 0; let line; - + while (line = dstream.read_line(null)) { line = String(line); line = line.trim(); let fields = line.split(/\W+/); - if (fields.length<=2) break; + if (fields.length <= 2) break; - if (fields[0] != "lo" && + if (fields[0] != "lo" && !fields[0].match(/^virbr[0-9]+/) && !fields[0].match(/^br[0-9]+/) && !fields[0].match(/^vnet[0-9]+/) && !fields[0].match(/^tun[0-9]+/) && !fields[0].match(/^tap[0-9]+/) && !isNaN(parseInt(fields[1]))) { - count = count + parseInt(fields[1]) + parseInt(fields[9]); - countUp = countUp + parseInt(fields[9]); + count = count + parseInt(fields[1]) + parseInt(fields[9]); + countUp = countUp + parseInt(fields[9]); } } fstream.close(null); @@ -325,16 +327,16 @@ function parseStat() { resetNextCount = false; resetCount = count; } - + (speed || speedUp) ? hideCount = 0 : hideCount <= 8 ? hideCount++ : null - if(hideCount<=8) { + if (hideCount <= 8) { nsButton == null ? initNs() : null updateNsLabels(" " + speedToString(speedUp), - " " + speedToString(speed - speedUp), - " " + speedToString(speed), - " " + speedToString(count - resetCount, 1)); + " " + speedToString(speed - speedUp), + " " + speedToString(speed), + " " + speedToString(count - resetCount, 1)); } else { if (crStng.hideInd) { @@ -363,16 +365,17 @@ function init() { settings = Convenience.getSettings(schema); } -function _settingsChanged(){ +function _settingsChanged() { settings.set_boolean('restartextension', false); disable(); enable(); + parseStat(); } function enable() { fetchSettings(); // Automatically creates the netSpeed Button. - + //Run infinite loop. timeout = Mainloop.timeout_add_seconds(crStng.refreshTime, parseStat); } diff --git a/metadata.json b/metadata.json index 8380f85..8d0183c 100644 --- a/metadata.json +++ b/metadata.json @@ -4,24 +4,16 @@ "name": "Net speed Simplified", "shell-version": [ "3.14", - "3.15", "3.16", - "3.17", "3.18", - "3.19", "3.20", - "3.21", "3.22", - "3.23", "3.24", - "3.25", "3.26", - "3.27", "3.28", - "3.29", "3.30", - "3.32", "3.34", + "3.32", "3.36", "3.38", "40", @@ -49,4 +41,4 @@ "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", "version": 27 -} +} \ No newline at end of file diff --git a/prefs.js b/prefs.js index eab552d..3652d19 100644 --- a/prefs.js +++ b/prefs.js @@ -1,288 +1,289 @@ const Gtk = imports.gi.Gtk, - Gdk = imports.gi.Gdk; - -const Config = imports.misc.config; -const ShellVersion = parseFloat(Config.PACKAGE_VERSION); + Gdk = imports.gi.Gdk + +const Config = imports.misc.config +const ShellVersion = parseFloat(Config.PACKAGE_VERSION) const Me = imports.misc.extensionUtils.getCurrentExtension(), - Convenience = Me.imports.convenience, - schema = "org.gnome.shell.extensions.netspeedsimplified"; + Convenience = Me.imports.convenience, + schema = "org.gnome.shell.extensions.netspeedsimplified" -function init(){} +function init() { } -function buildPrefsWidget(){ - let prefs = new Prefs(schema); +function buildPrefsWidget() { + let prefs = new Prefs(schema) - return prefs.buildPrefsWidget(); + return prefs.buildPrefsWidget() } -function Prefs(schema){ - this.init(schema); +function Prefs(schema) { + this.init(schema) } Prefs.prototype = { - settings: null, - init: function(schema) - { - let settings = new Convenience.getSettings(schema); - this.settings = settings; - }, - - buildPrefsWidget: function() - { - let thset = this.settings; - let isGnome40 = ShellVersion >= 40; - - function addIt(element, child){ - if(isGnome40){ - element.append(child); - } else { - element.add(child); + settings: null, + init: function (schema) { + let settings = new Convenience.getSettings(schema) + this.settings = settings + }, + + buildPrefsWidget: function () { + let thset = this.settings + let isGnome40 = ShellVersion >= 40 + + function addIt(element, child) { + if (isGnome40) element.append(child) + else element.add(child) + } - } - - function newGtkBox(){ - return new Gtk.Box({orientation: Gtk.Orientation.HORIZONTAL, margin_top : 10, margin_bottom : 10}); - } - function vBoxSpinBtn(getDouble, whichHbox, getLbl = "", getTooTip = "", lwer , uper, stpInc = 1, digs = 0, nume = true, pgeInc = 1, pgeSiz = 0, clmrate = 1){ - let boolComp = (thset.get_double(getDouble) === thset.get_default_value(getDouble).unpack()); - getLbl = boolComp ? getLbl : - `${getLbl}` - let whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }); - let whichSpinBtn = new Gtk.SpinButton({ - adjustment: new Gtk.Adjustment({ - lower: lwer, upper: uper, step_increment: stpInc, page_increment: pgeInc, page_size: pgeSiz - }), - climb_rate: clmrate, - digits: digs, - numeric: nume, - }); - whichSpinBtn.set_value(thset.get_double(getDouble)); - whichSpinBtn.connect('value-changed', () => { - this.rTValue = parseFloat(whichSpinBtn.get_value().toFixed(1)); - if(thset.get_double(getDouble) !== this.rTValue){ - thset.set_double(getDouble , this.rTValue); - thset.set_boolean('restartextension' , true); - } - }); - whichLbl.set_hexpand(true); - addIt(whichHbox, whichLbl); - addIt(whichHbox, whichSpinBtn); - - addIt(vbox, whichHbox); - } - - function vBoxAddSeleCt(getInt, whichHbox, getLbl, aRray = [], getTooTip = ""){ - let boolComp = (thset.get_int(getInt) == thset.get_default_value(getInt).unpack()); - getLbl = boolComp ? getLbl : - `${getLbl}` - let tootext = boolComp ? "" : "The Value is Changed" - - let whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0,tooltip_text: getTooTip}); - let whichVlue = new Gtk.ComboBoxText({halign: Gtk.Align.END, tooltip_text: tootext }); - - for (i in aRray){ - whichVlue.append_text(aRray[i]); - } - - whichVlue.set_active(Math.round(thset.get_int(getInt))); - whichVlue.connect('changed', (widget) => { - let valueMode = widget.get_active(); - thset.set_int(getInt, valueMode); - thset.set_boolean('restartextension' , true); - }) - whichLbl.set_hexpand(true); - addIt(whichHbox, whichLbl); - addIt(whichHbox, whichVlue); + function newGtkBox() { + return new Gtk.Box({ orientation: Gtk.Orientation.HORIZONTAL, margin_top: 10, margin_bottom: 10 }) + } - addIt(vbox, whichHbox); - } + function vBoxSpinBtn(getDouble, whichHbox, getLbl = "", getTooTip = "", lwer, uper, stpInc = 1, digs = 0, nume = true, pgeInc = 1, pgeSiz = 0, clmrate = 1) { + let boolComp = (thset.get_double(getDouble) === thset.get_default_value(getDouble).unpack()) + getLbl = boolComp ? getLbl : + `${getLbl}` + let whichLbl = new Gtk.Label({ label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }) + let whichSpinBtn = new Gtk.SpinButton({ + adjustment: new Gtk.Adjustment({ + lower: lwer, upper: uper, step_increment: stpInc, page_increment: pgeInc, page_size: pgeSiz + }), + climb_rate: clmrate, + digits: digs, + numeric: nume, + }) + whichSpinBtn.set_value(thset.get_double(getDouble)) + whichSpinBtn.connect('value-changed', () => { + this.rTValue = parseFloat(whichSpinBtn.get_value().toFixed(1)) + if (thset.get_double(getDouble) !== this.rTValue) { + thset.set_double(getDouble, this.rTValue) + thset.set_boolean('restartextension', true) + } + }) + whichLbl.set_hexpand(true) + addIt(whichHbox, whichLbl) + addIt(whichHbox, whichSpinBtn) + + addIt(vbox, whichHbox) + } - function vBoxAddTgglBtn(whichHbox, getLbl, getBool, getTooTip = "", func){ - let boolComp = true; - if (func ==undefined){ - boolComp = (thset.get_boolean(getBool) == thset.get_default_value(getBool).unpack()); - getLbl = boolComp ? getLbl : - `${getLbl}` + function vBoxAddSeleCt(getInt, whichHbox, getLbl, aRray = [], getTooTip = "") { + let boolComp = (thset.get_int(getInt) == thset.get_default_value(getInt).unpack()) + getLbl = boolComp ? getLbl : + `${getLbl}` + let tootext = boolComp ? "" : "The Value is Changed" + + let whichLbl = new Gtk.Label({ label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }) + let whichVlue = new Gtk.ComboBoxText({ halign: Gtk.Align.END, tooltip_text: tootext }) + + for (i in aRray) { + whichVlue.append_text(aRray[i]) + } + + whichVlue.set_active(Math.round(thset.get_int(getInt))) + whichVlue.connect('changed', (widget) => { + let valueMode = widget.get_active() + thset.set_int(getInt, valueMode) + thset.set_boolean('restartextension', true) + }) + whichLbl.set_hexpand(true) + addIt(whichHbox, whichLbl) + addIt(whichHbox, whichVlue) + + addIt(vbox, whichHbox) } - let tootext = boolComp ? "" : "The Value is Changed" - let whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }); - let whichVlue = new Gtk.Switch({ - active: getBool ? thset.get_boolean(getBool) : false, tooltip_text: tootext - }); - whichVlue.connect('notify::active', (widget) => { - if (func != undefined) func(widget.active); - else { - thset.set_boolean(getBool, widget.active); - thset.set_boolean('restartextension' , true); - } - }) - whichLbl.set_hexpand(true); - addIt(whichHbox, whichLbl); - addIt(whichHbox, whichVlue); + function vBoxAddTgglBtn(whichHbox, getLbl, getBool, getTooTip = "", func) { + let boolComp = true + if (func == undefined) { + boolComp = (thset.get_boolean(getBool) == thset.get_default_value(getBool).unpack()) + getLbl = boolComp ? getLbl : + `${getLbl}` + } + let tootext = boolComp ? "" : "The Value is Changed" + let whichLbl = new Gtk.Label({ label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }) + let whichVlue = new Gtk.Switch({ + active: getBool ? thset.get_boolean(getBool) : false, tooltip_text: tootext + }) + whichVlue.connect('notify::active', (widget) => { + if (func != undefined) func(widget.active) + else { + thset.set_boolean(getBool, widget.active) + thset.set_boolean('restartextension', true) + } + }) + + whichLbl.set_hexpand(true) + addIt(whichHbox, whichLbl) + addIt(whichHbox, whichVlue) + + addIt(vbox, whichHbox) + } - addIt(vbox, whichHbox); - } + function vBoxAddColorButton(whichHbox, getLbl, getColor, getToolTip = "") { + //Deterime whether the option value is changed from default value + let boolComp = (thset.get_string(getColor) == thset.get_default_value(getColor).unpack()) + getLbl = boolComp ? getLbl : `${getLbl}` + let tootext = boolComp ? "" : "The Value is Changed" + + //Create the option name + let whichLbl = new Gtk.Label({ label: getLbl, use_markup: true, xalign: 0, tooltip_text: getToolTip }) + + //Create RGBA + let rgba = new Gdk.RGBA() + rgba.parse(thset.get_string(getColor)) + + //Create ColorButton + let colorButton = new Gtk.ColorButton({ tooltip_text: tootext }) + colorButton.set_rgba(rgba) + colorButton.connect('color-set', (widget) => { //On the event of modification + rgba = widget.get_rgba() + thset.set_string(getColor, rgba.to_string()) + thset.set_boolean('restartextension', true) + }) + + whichLbl.set_hexpand(true) + addIt(whichHbox, whichLbl) + addIt(whichHbox, colorButton) + + addIt(vbox, whichHbox) + } - function vBoxAddColorButton(whichHbox, getLbl, getColor, getToolTip = "") { - //Deterime whether the option value is changed from default value - let boolComp = (thset.get_string(getColor) == thset.get_default_value(getColor).unpack()); - getLbl = boolComp ? getLbl : `${getLbl}` - let tootext = boolComp ? "" : "The Value is Changed" - - //Create the option name - let whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getToolTip}); - - //Create RGBA - let rgba = new Gdk.RGBA(); - rgba.parse(thset.get_string(getColor)); - - //Create ColorButton - let colorButton = new Gtk.ColorButton({tooltip_text: tootext}); - colorButton.set_rgba(rgba); - colorButton.connect('color-set', (widget) => { //On the event of modification - rgba = widget.get_rgba(); - thset.set_string(getColor, rgba.to_string()); - thset.set_boolean('restartextension' , true); - }); - - whichLbl.set_hexpand(true); - addIt(whichHbox, whichLbl); - addIt(whichHbox, colorButton); - - addIt(vbox, whichHbox); - } + function vBoxAddEntry(whichHbox, getLbl, getString, getTooTip = "", func) { + let boolComp = (thset.get_string(getString) == thset.get_default_value(getString).unpack()) + getLbl = boolComp ? getLbl : + `${getLbl}` + let tootext = boolComp ? "" : "The Value is Changed" + let whichLbl = new Gtk.Label({ label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }) + let whichVlue = new Gtk.Entry({ text: thset.get_string(getString), tooltip_text: tootext, placeholder_text: "Press Enter to apply" }) + whichVlue.connect('activate', (widget) => { + thset.set_string(getString, widget.get_text()) + if (func != undefined) { func(widget.active) } + else { thset.set_boolean('restartextension', true) } + }) + + whichLbl.set_hexpand(true) + addIt(whichHbox, whichLbl) + addIt(whichHbox, whichVlue) + + addIt(vbox, whichHbox) + } - function vBoxAddEntry(whichHbox, getLbl, getString, getTooTip = "", func){ - let boolComp = (thset.get_string(getString) == thset.get_default_value(getString).unpack()); - getLbl = boolComp ? getLbl : - `${getLbl}` - let tootext = boolComp ? "" : "The Value is Changed" - let whichLbl = new Gtk.Label({label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }); - let whichVlue = new Gtk.Entry({text: thset.get_string(getString), tooltip_text: tootext, placeholder_text: "Press Enter to apply" }); - whichVlue.connect('activate', (widget) => { - thset.set_string(getString, widget.get_text()); - if (func != undefined){ func(widget.active); } - else { thset.set_boolean('restartextension' , true); } + let frame = new Gtk.ScrolledWindow() + let label = new Gtk.Label({ label: "General Settings", use_markup: true, xalign: 0, margin_top: 15 }) + let vbox = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, margin_start: 25, margin_end: 25 }) + let resetBtn = new Gtk.Button({ label: "Restore Defaults", margin_bottom: 15 }) + + resetBtn.connect("clicked", () => { + let strArray = ["customfont", "uscolor", "dscolor", "tscolor", "tdcolor"] + let intArray = ["wpos", "wposext", "refreshtime", "mode", "fontmode", "chooseiconset",] + let boolArray = ["isvertical", "togglebool", "reverseindicators", "lockmouseactions", "hideindicator", "shortenunits"] + for (i in strArray) { + thset.set_string(strArray[i], thset.get_default_value(strArray[i]).unpack()) + } + for (j in intArray) { + thset.set_int(intArray[j], thset.get_default_value(intArray[j]).unpack()) + } + for (k in boolArray) { + thset.set_boolean(boolArray[k], thset.get_default_value(boolArray[k]).unpack()) + } + thset.set_boolean('restartextension', true) + frame.destroy() }) - whichLbl.set_hexpand(true); - addIt(whichHbox, whichLbl); - addIt(whichHbox, whichVlue); + addIt(vbox, label) + //For Position + let hboxWPos = newGtkBox() + vBoxAddSeleCt("wpos", hboxWPos, "Position on the Panel", ["Right", "Left", "Center"], "Choose where to Place the extension on the Panel") - addIt(vbox, whichHbox); - } - - let frame = new Gtk.ScrolledWindow(); - let label = new Gtk.Label({ label: "General Settings", use_markup: true, xalign:0, margin_top: 15}); - let vbox = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, margin_start: 25, margin_end: 25}); - let resetBtn = new Gtk.Button ({label: "Restore Defaults", margin_bottom: 15}); - - resetBtn.connect ("clicked", ()=>{ - let strArray = ["customfont", "uscolor", "dscolor", "tscolor", "tdcolor"]; - let intArray = ["wpos", "wposext", "refreshtime", "mode", "fontmode", "chooseiconset",]; - let boolArray = ["isvertical", "togglebool", "reverseindicators", "lockmouseactions", "hideindicator", "shortenunits"]; - for (i in strArray){ - thset.set_string(strArray[i], thset.get_default_value(strArray[i]).unpack()); - } - for (j in intArray){ - thset.set_int(intArray[j], thset.get_default_value(intArray[j]).unpack()); - } - for (k in boolArray){ - thset.set_boolean(boolArray[k], thset.get_default_value(boolArray[k]).unpack()); - } - thset.set_boolean('restartextension' , true); - frame.destroy(); - }); - - addIt(vbox, label); - //For Position - let hboxWPos = newGtkBox(); - vBoxAddSeleCt("wpos", hboxWPos, "Position on the Panel", ["Right","Left","Center"], "Choose where to Place the extension on the Panel"); - - //For Position Extras - let hboxWPosExt = newGtkBox(); - vBoxAddSeleCt("wposext", hboxWPosExt, "Position(Advanced)", ["Prefer Right Side", "Prefer Left Side"], "Choose further where to Place the extension"); - - //Refresh time - let hboxRTime = newGtkBox(); - vBoxSpinBtn("refreshtime", hboxRTime, "Refresh Time", "Change Refresh time value from anywhere b/w 1 to 10", 1.0, 10.0, .1, 1); - - //For Modes - let hboxMode = newGtkBox(); - vBoxAddSeleCt("mode", hboxMode, "Mode", ["Mode 1", "Mode 2", "Mode 3", "Mode 4", "Mode 5"], "Choose which mode to load"); - - //For FontModes - let hboxFontMode = newGtkBox(); - vBoxAddSeleCt("fontmode", hboxFontMode, "Font Mode", ["Default", "Smallest","Smaller","Small","Large"], "Choose which font to display"); - - //For Vertical Alignment - let hboxVertical = newGtkBox(); - vBoxAddTgglBtn(hboxVertical, "Vertical Align", "isvertical", "Changing it will toggle Vertical Alignment"); - - //For Default sigma View - let hboxToggleBool = newGtkBox(); - vBoxAddTgglBtn(hboxToggleBool, "Show Total Download speed", "togglebool", "Enabling it will show sigma by default"); - - //For Toggling Old Icons - let hboxIconset = newGtkBox(); - vBoxAddSeleCt("chooseiconset", hboxIconset, "Choose Icons Set", [" 🡳, 🡱, Σ ", " ↓, ↑, ∑ "], "Choose which icon set to display"); - - //For Limiting upper limit of speed - let hboxLimitUnit = newGtkBox(); - vBoxAddSeleCt("limitunit", hboxLimitUnit, "Limit Unit", ["(None)", 'K', 'M', 'G', 'T', 'P', 'E', 'Z'], "Choose unit limitation set to display"); - - //For Hide When Disconnected - let hboxHideInd = newGtkBox(); - vBoxAddTgglBtn(hboxHideInd, "Hide When Disconnected", "hideindicator", "Enabling it will Hide Indicator when disconnected"); - - //For Shorten Units - let hboxShUni = newGtkBox(); - vBoxAddTgglBtn(hboxShUni, "Shorten Units", "shortenunits", "Enabling it will result in shorten units like K instead of KB"); - - //For Reversing the download and upload indicators - let hboxRevInd = newGtkBox(); - vBoxAddTgglBtn(hboxRevInd, "Show Upload First", "reverseindicators", "Enabling it will reverse the upload and download speed indicators"); - - //For Lock Mouse Actions - let hboxLckMuseAct = newGtkBox(); - vBoxAddTgglBtn(hboxLckMuseAct, "Lock Mouse Actions", "lockmouseactions", "Enabling it will Lock Mouse Actions"); - - //Minimum Width - let hboxMinWidth = newGtkBox(); - vBoxSpinBtn("minwidth", hboxMinWidth, "Minimum Width", "Change Minimum Width value from anywhere b/w 3em to 10em", 3.0, 10.0, .5, 1); - - //For Custom Font name - let hboxCustFont = newGtkBox(); - vBoxAddEntry(hboxCustFont, "Custom Font Name", "customfont", "Enter the font name you want, you can also write style here for all elements except indicators"); - - //Upload Speed Color - let usColorButton = newGtkBox(); - vBoxAddColorButton(usColorButton, "Upload Speed Color", "uscolor", "Select the upload speed color"); - - //Download Speed Color - let dsColorButton = newGtkBox(); - vBoxAddColorButton(dsColorButton, "Download Speed Color", "dscolor", "Select the download speed color"); - - //Total Speed Color - let tsColorButton = newGtkBox(); - vBoxAddColorButton(tsColorButton, "Total Speed Color", "tscolor", "Select the total speed color"); - - //Total Download Color - let tdColorButton = newGtkBox(); - vBoxAddColorButton(tdColorButton, "Total Download Color", "tdcolor", "Select the total download color"); - - addIt(vbox, resetBtn); - if (isGnome40) {frame.child = vbox;} - else { - frame.add(vbox); - frame.show_all(); - frame.connect('destroy', Gtk.main_quit); - } - - return frame; + //For Position Extras + let hboxWPosExt = newGtkBox() + vBoxAddSeleCt("wposext", hboxWPosExt, "Position(Advanced)", ["Prefer Right Side", "Prefer Left Side"], "Choose further where to Place the extension") + + //Refresh time + let hboxRTime = newGtkBox() + vBoxSpinBtn("refreshtime", hboxRTime, "Refresh Time", "Change Refresh time value from anywhere b/w 1 to 10", 1.0, 10.0, .1, 1) + + //For Modes + let hboxMode = newGtkBox() + vBoxAddSeleCt("mode", hboxMode, "Mode", ["Mode 1", "Mode 2", "Mode 3", "Mode 4", "Mode 5"], "Choose which mode to load") + + //For FontModes + let hboxFontMode = newGtkBox() + vBoxAddSeleCt("fontmode", hboxFontMode, "Font Mode", ["Default", "Smallest", "Smaller", "Small", "Large"], "Choose which font to display") + + //For Vertical Alignment + let hboxVertical = newGtkBox() + vBoxAddTgglBtn(hboxVertical, "Vertical Align", "isvertical", "Changing it will toggle Vertical Alignment") + + //For Default sigma View + let hboxToggleBool = newGtkBox() + vBoxAddTgglBtn(hboxToggleBool, "Show Total Download speed", "togglebool", "Enabling it will show sigma by default") + + //For Toggling Old Icons + let hboxIconset = newGtkBox() + vBoxAddSeleCt("chooseiconset", hboxIconset, "Choose Icons Set", [" 🡳, 🡱, Σ ", " ↓, ↑, ∑ "], "Choose which icon set to display") + + //For Limiting upper limit of speed + let hboxLimitUnit = newGtkBox() + vBoxAddSeleCt("limitunit", hboxLimitUnit, "Limit Unit", ["(None)", 'K', 'M', 'G', 'T', 'P', 'E', 'Z'], "Choose unit limitation set to display") + + //For Hide When Disconnected + let hboxHideInd = newGtkBox() + vBoxAddTgglBtn(hboxHideInd, "Hide When Disconnected", "hideindicator", "Enabling it will Hide Indicator when disconnected") + + //For Shorten Units + let hboxShUni = newGtkBox() + vBoxAddTgglBtn(hboxShUni, "Shorten Units", "shortenunits", "Enabling it will result in shorten units like K instead of KB") + + //For Reversing the download and upload indicators + let hboxRevInd = newGtkBox() + vBoxAddTgglBtn(hboxRevInd, "Show Upload First", "reverseindicators", "Enabling it will reverse the upload and download speed indicators") + + //For Lock Mouse Actions + let hboxLckMuseAct = newGtkBox() + vBoxAddTgglBtn(hboxLckMuseAct, "Lock Mouse Actions", "lockmouseactions", "Enabling it will Lock Mouse Actions") + + //Minimum Width + let hboxMinWidth = newGtkBox() + vBoxSpinBtn("minwidth", hboxMinWidth, "Minimum Width", "Change Minimum Width value from anywhere b/w 3em to 10em", 3.0, 10.0, .5, 1) + + //For Custom Font name + let hboxCustFont = newGtkBox() + vBoxAddEntry(hboxCustFont, "Custom Font Name", "customfont", "Enter the font name you want, you can also write style here for all elements except indicators") + + //For Custom Font name + let hboxSysColr = newGtkBox() + vBoxAddTgglBtn(hboxSysColr, "Use System Color Scheme", "systemcolr", "Enabling it will allow changing font color dynamically based on panel color") + + + //Upload Speed Color + let usColorButton = newGtkBox() + vBoxAddColorButton(usColorButton, "Upload Speed Color", "uscolor", "Select the upload speed color") + + //Download Speed Color + let dsColorButton = newGtkBox() + vBoxAddColorButton(dsColorButton, "Download Speed Color", "dscolor", "Select the download speed color") + + //Total Speed Color + let tsColorButton = newGtkBox() + vBoxAddColorButton(tsColorButton, "Total Speed Color", "tscolor", "Select the total speed color") + + //Total Download Color + let tdColorButton = newGtkBox() + vBoxAddColorButton(tdColorButton, "Total Download Color", "tdcolor", "Select the total download color") + + addIt(vbox, resetBtn) + if (isGnome40) frame.child = vbox + else { + frame.add(vbox) + frame.show_all() + frame.connect('destroy', Gtk.main_quit) + } + + return frame } } diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index 68e8f0829a595887141119f4ff1f5ec0903d05f9..7df712e8252826cb192aa22ad0c8fcdeaaf1440e 100644 GIT binary patch literal 1628 zcma)6O>9h27`>&Vqf@k6G+`lO@g|r-G$dW3JD> z#>&7b9hgiYttmNkD)|;1=~FWg z_rb4$!`E&{d86hyGvJ@VzFp-h##1kcpG*j`30VK2=MsHtu4g;A1GqaoJWijQ>+b@e z1YUNIM*F4aeoNpo@aX)76z?5%0{#{7V_@XqWQyZZbNp%WTcGn*_b`3xCitJgUw~wb z`AVOf=OS>K5=7-*QwwoKB*DEvDEmWcidOlOA1dv~-moeo{vuPe)zDLSN3=+0n6eW9?^08W-QBPnWd86RAy5or`ZtI11w{ zh4Ha2n+xsSYpQg>JOk!`=CQg^@MNFXUepu)eC^KPWp!R0>HK;7bzm1nE)tg?Fjo7F zj>k7?_rKN^%0U^LTIx*Ho%zcbHBzJUs2uX&`LVUxaE^=T+f%->1A&?wvAQ4Dn0fhD z2J5mo&RV`ya9X*x7%vdN$*yYO*h+TAyx?B&d?ULW8`am^xn@c^Tg;+pW}~8+jf!S= z?wC#X&!U+X!k8grrH_NJ42yi3qQ?CQxVK6YF)w^i=TG{2z{p(QvJ6M7fe&UaWle1a oSYLVPSU*`?@kH=u`0nGzdyxX#fL4I}z>|q;F`idcb5YL3Z(pV=asU7T literal 1581 zcma)6J!lj`7@cThENc_IAB9ia7A@y?Z?kt?5PnYUChU@wpBQOpZSUU1na=7(FiXCGy%;(3$Q-HMsPc@ z8Nl+z4sXp9&g1&li!sr*7Cvx&ga4L3btC*va4&H9@{MKs)bt0z4shb;(gJHh2NJvobSBpPK7@ z3H}On+#fzqpSqcO8}J_B*hk~~P`AL}4&Dzunmp6OvqIefe-JzYWZLy7#-ZkSO@XI@ z-lr=TeQK_A7CaB!>-unsJ~i_$f}a709$bm*K+QV50e=Aw?7i@q^QoKQ^RRRP`{qm= zeQL(Bz}-Mexl#qLa`GmO@SLMgSOxoJIn+3;6-S8bGdPyAPFYIXwr#W%dg+T%v5>d+ z^z?LfR)2Qen6B+ej>$+@GwDiP6iO{kMp_jFLAQvyeZ{y+2!KPE*D>RxnJehxj!$v zoDkXzo#TEus%73Wyb~*t@nHqqt?ukU>SMxU(UXNR{I&j?Gs9@<+E<+$Px;F5%%vIA UdEC32x;mrUgg(z=JP{}PC&Nu5y#N3J diff --git a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml index 00bf02d..b83341a 100644 --- a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml +++ b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml @@ -57,6 +57,9 @@ "" + + false + "rgba(255, 255, 255, 1)" From 8289d63dbf9e074888b3bc6555fc5db6c748328f Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 8 May 2021 10:16:11 +0530 Subject: [PATCH 294/344] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index db721ef..b06e54b 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,8 @@ ***Tested on GNOME 40, 3.38 and 3.36*** #### What's new +- [x] Add Use System Color Scheme option +- [x] Make Preferences more fluent with speed indicator - [x] Add Limit Unit option - [x] Add Gnome 40 Support - [x] Fix a bug where refresh time was getting reset to 6.5 From 60ecfeaf92776460e5364cb80bf9cb51e1e7ff6b Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Sat, 8 May 2021 10:18:43 +0530 Subject: [PATCH 295/344] Update extension settings changing logic --- extension.js | 23 +++++++++++++---------- metadata.json | 4 ++-- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/extension.js b/extension.js index 9be0381..c13529d 100644 --- a/extension.js +++ b/extension.js @@ -198,7 +198,7 @@ function initNs() { let verticalConstant = (crStng.isVertical) ? 1 : 0; let heightConstant = 1 + verticalConstant; - let widthConstant = 2 * (1 - verticalConstant); + let widthConstant = 2 * (1 - verticalConstant); //Attach the components to the grid. if (crStng.mode == 0 || crStng.mode == 1) { @@ -286,10 +286,10 @@ function mouseEventHandler(widget, event) { } pushSettings(); + parseStat(); } function parseStat() { - let toRestart = settings.get_boolean('restartextension'); try { let input_file = Gio.file_new_for_path('/proc/net/dev'); let fstream = input_file.read(null); @@ -357,24 +357,27 @@ function parseStat() { tsLabel.set_text(e.message); tdLabel.set_text(e.message); } - toRestart ? _settingsChanged() : null; return true; } -function init() { - settings = Convenience.getSettings(schema); +function _settingsChanged() { + if (settings.get_boolean('restartextension')) { + settings.set_boolean('restartextension', false); + disable(); + enable(); + parseStat(); + } } -function _settingsChanged() { - settings.set_boolean('restartextension', false); - disable(); - enable(); - parseStat(); +function init() { + settings = Convenience.getSettings(schema); } function enable() { fetchSettings(); // Automatically creates the netSpeed Button. + this._settingsChangedId = this.settings.connect('changed', this._settingsChanged); + parseStat(); //Run infinite loop. timeout = Mainloop.timeout_add_seconds(crStng.refreshTime, parseStat); diff --git a/metadata.json b/metadata.json index 8d0183c..4fff0bd 100644 --- a/metadata.json +++ b/metadata.json @@ -12,8 +12,8 @@ "3.26", "3.28", "3.30", - "3.34", "3.32", + "3.34", "3.36", "3.38", "40", @@ -40,5 +40,5 @@ ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 27 + "version": 29 } \ No newline at end of file From 8a5e3e5f025fa694a609cadc1d2c56cd3f44b2d9 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Fri, 14 May 2021 11:11:04 +0530 Subject: [PATCH 296/344] Update styling in Readme --- README.md | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index b06e54b..92e2ba7 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ GitHub release License

      -[Get it on GNOME Extensions](https://extensions.gnome.org/extension/3724/net-speed-simplified/) or [Install Manually](#installing-manually) +[Get it on GNOME Extensions](https://extensions.gnome.org/extension/3724/net-speed-simplified/) or Install Manually

      Screenshot

      @@ -48,9 +48,9 @@ If you faced an **issue** then you can **[file an issue here](https://github.com #### Mouse Events - **Left click**: Cycle through the [modes](#modes). -- **Right click(in first four modes)**: Toggle the visibility of total downloaded. -- **Right click(in fifth mode)**: Reset total downloaded. -- **Right Click(Four consecutive times)**: Toggle through horizantal/vertical alignment. +- **Right click(in 1-4 modes)**: Toggle the visibility of total downloaded. +- **Right click(in 5th mode)**: Reset total downloaded. +- **Right Click(Four consecutive times)**: Toggle through horizontal/vertical alignment. - **Middle click**: Cycle through the font sizes. #### *Special Thanks to* @@ -62,23 +62,26 @@ If you faced an **issue** then you can **[file an issue here](https://github.com ### Quick install For quick install use below command: - - $ bash -c "$(curl -sL https://git.io/Jk28b)" - +```bash +bash -c "$(curl -sL https://git.io/Jk28b)" +``` ### Installing using Make * Step 1 : Getting the sources from repository - - $ git clone https://github.com/prateekmedia/netspeedsimplified.git - +```bash +git clone "https://github.com/prateekmedia/netspeedsimplified.git" +``` * Step 2 : Running make (install) - - $ make install - -Likewise extension can be removed -```$ make remove``` -OR reinstalled -```$ make reinstall``` - +```bash +make install +``` +Likewise extension can be removed using +```bash +make remove +``` +OR reinstalled using +```bash +make reinstall +``` You can manage the extension using extensions app or [website](https://extensions.gnome.org/local) From 8e1e7d4b0fe88c516cd89ad2465898a28b8191ef Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 21 Jun 2021 21:21:52 +0530 Subject: [PATCH 297/344] Don't match special devices by @n8marti Pulled from upstream biji/simplenetspeed#31 --- extension.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/extension.js b/extension.js index c13529d..2ff3a9a 100644 --- a/extension.js +++ b/extension.js @@ -306,6 +306,8 @@ function parseStat() { if (fields.length <= 2) break; if (fields[0] != "lo" && + !fields[0].match(/^ifb[0-9]+/) && + !fields[0].match(/^lxdbr[0-9]+/) && !fields[0].match(/^virbr[0-9]+/) && !fields[0].match(/^br[0-9]+/) && !fields[0].match(/^vnet[0-9]+/) && From adbec883a14e2c786c1454246d218908e6359712 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 22 Jun 2021 12:11:37 +0530 Subject: [PATCH 298/344] Update Changelog and README style --- README.md | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 92e2ba7..37ff1fb 100644 --- a/README.md +++ b/README.md @@ -14,11 +14,10 @@ #### What's new - [x] Add Use System Color Scheme option -- [x] Make Preferences more fluent with speed indicator -- [x] Add Limit Unit option -- [x] Add Gnome 40 Support -- [x] Fix a bug where refresh time was getting reset to 6.5 -- [x] Used Min Width 3.0 by default +- [x] Mpdate Preferences update logic +- [x] Filter more devices for net speed indicator + +**Note** : Previous Changelog can be found [here](https://github.com/prateekmedia/netspeedsimplified/releases) #### Features - [x] Cleaner UI @@ -28,23 +27,24 @@ - [x] *Two Icon sets* for Indicators #### Feature Highlights for Preferences -- [x] *Lock Mouse Actions* button to Freeze [Mouse Events](#mouse-events) -- [x] *Advance Position* options to pinpoint where to place the indicator on the Panel -- [x] *Refresh time* field by which you can change refresh rate value between 1.0 sec to 10.0 sec -- [x] Show Upload First button to show upload speed first -- [x] Color Customizations to make the extension your own -- [x] *Hide when Disconnected* button in Preference -- [x] *Use Shorten Units* button in Preference +- [x] **Lock Mouse Actions** option to Freeze [Mouse Events](#mouse-events) +- [x] **Advance Position** options to pinpoint where to place the indicator on the Panel +- [x] **Refresh time** field by which you can change refresh rate value between 1.0 sec to 10.0 sec +- [x] **Show Upload First** option to show upload speed first +- [x] **Color Customizations** for speed indicators +- [x] **Hide when Disconnected** option +- [x] **Use Shorten Units** option +- [x] **Limit Unit** option and more... If you faced an **issue** then you can **[file an issue here](https://github.com/prateekmedia/netspeedsimplified/issues)** #### Modes -1. `Total net speed in b/s, kb/s, ...` -1. `Total net speed in B/s, KB/s, ...` -1. `Up & down speed in b/s, kb/s, ...` -1. `Up & down speed in B/s, KB/s, ...` -1. `Total downloads in B, KB, ... (Right click to reset counter)` +- **Total net speed** in b/s, kb/s, ... +- **Total net speed** in B/s, KB/s, ... +- **Up & down speed** in b/s, kb/s, ... +- **Up & down speed** in B/s, KB/s, ... +- **Total downloads** in B, KB, ... (Right click to reset counter) #### Mouse Events - **Left click**: Cycle through the [modes](#modes). @@ -67,19 +67,19 @@ bash -c "$(curl -sL https://git.io/Jk28b)" ``` ### Installing using Make -* Step 1 : Getting the sources from repository +- **Step 1** : Getting the sources from repository ```bash git clone "https://github.com/prateekmedia/netspeedsimplified.git" ``` -* Step 2 : Running make (install) +- **Step 2** : Running make (install) ```bash make install ``` -Likewise extension can be removed using +Likewise extension can be **removed** using ```bash make remove ``` -OR reinstalled using +OR **reinstalled** using ```bash make reinstall ``` From 5d4d66841e2db2b8028f1375395f655ae6342313 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 22 Jun 2021 12:28:43 +0530 Subject: [PATCH 299/344] Fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 37ff1fb..646c76d 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ #### What's new - [x] Add Use System Color Scheme option -- [x] Mpdate Preferences update logic +- [x] Update Preferences update logic - [x] Filter more devices for net speed indicator **Note** : Previous Changelog can be found [here](https://github.com/prateekmedia/netspeedsimplified/releases) From 6e58c26787a2bb4003e19c044b092b7ee81757ea Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 22 Jun 2021 12:41:06 +0530 Subject: [PATCH 300/344] Update metadata.json --- metadata.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/metadata.json b/metadata.json index 4fff0bd..f3783d8 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,6 @@ { "_generated": "Generated by SweetTooth, do not edit", - "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n\u261e Add Limit Unit option \n\u261e Tested on GNOME 40, 3.38 and 3.36 \n\u261e Fix a bug where refresh time was getting reset to 6.5 \n\u261e Used Min Width 3.0 by default \n \nFeatures \n1. Cleaner UI \n2. Adjustable Refresh rate \n3. Preferences to manage extension \n4. Vertical Alignment Support \n5. Two Icon sets for Indicators \n\n Feature Highlights for Preferences \n1. Lock Mouse Actions button to Freeze Mouse Events \n2. Advance Position options to pinpoint where to place the indicator on the Panel. \n3. Refresh time option by which you can change refresh rate value between 1.0 sec to 10.0 sec. \n\nModes \n- Total net speed in bits per second \n- Total net speed in Bytes per second \n- Up and down speed in bits per second \n- Up and down speed in Bytes per second \n- Total of downloaded in Bytes (Right click to reset counter) \n\nMouse Events \n- Left click to change modes \n- Right click to toggle total data usage visibility \n- Right click continuously for 4 times in any mode to toggle vertical alignment \n- Middle click to change font size", + "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n\u261e Add Use System Color Scheme option \n\u261e Update Preferences logic \n\u261e Filter more devices for net speed indicator \n\nFull CHANGELOG can be found on github releases page \n\nFeatures \n1. Clean UI \n2. Adjustable Refresh rate \n3. Preferences to manage extension \n4. Vertical Alignment Support \n5. Two Icon sets for Indicators \n\nFeature Highlights for Preferences \n1. Lock Mouse Actions option \n2. Advance Position options to pinpoint where to place the indicator on the Panel. \n3. Refresh time option by which you can change refresh rate value between 1.0 sec to 10.0 sec. \n4. Show Upload First option to show upload speed first \n5. Color Customizations for speed indicators \n6. Hide when Disconnected option \n7. Use Shorten Units option \n8. Limit Unit option and more... \n\nModes \n- Total net speed in b/s, kb/s, ... \n- Total net speed in B/s, KB/s, ... \n- Up & down speed in b/s, kb/s, ... \n- Up & down speed in B/s, KB/s, ... \n- Total downloads in B, KB, ... (Right click to reset counter) \n\nMouse Events \n- Left click to change modes \n- Right click(in 1-4 modes): Toggle the visibility of total loaded. \n- Right click(in 5th mode): Reset total downloaded. \n- Right Click(Four consecutive times): Toggle through horizontal/vertical alignment. \n- Middle click: Cycle through the font sizes.", "name": "Net speed Simplified", "shell-version": [ "3.14", @@ -41,4 +41,4 @@ "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", "version": 29 -} \ No newline at end of file +} From c7b1766646a3935ebfdb6598a8e1cbd85c4b693b Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 22 Jun 2021 12:41:26 +0530 Subject: [PATCH 301/344] Fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 646c76d..ad67d44 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ #### What's new - [x] Add Use System Color Scheme option -- [x] Update Preferences update logic +- [x] Update Preferences logic - [x] Filter more devices for net speed indicator **Note** : Previous Changelog can be found [here](https://github.com/prateekmedia/netspeedsimplified/releases) From 302b336491410e693e0aa4681811c5e677b41e3e Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 22 Jun 2021 12:42:48 +0530 Subject: [PATCH 302/344] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ad67d44..7a5059d 100644 --- a/README.md +++ b/README.md @@ -13,11 +13,11 @@ ***Tested on GNOME 40, 3.38 and 3.36*** #### What's new -- [x] Add Use System Color Scheme option +- [x] Add **Use System Color Scheme** option - [x] Update Preferences logic - [x] Filter more devices for net speed indicator -**Note** : Previous Changelog can be found [here](https://github.com/prateekmedia/netspeedsimplified/releases) +**Note** : Full CHANGELOG can be found on [github releases](https://github.com/prateekmedia/netspeedsimplified/releases) page #### Features - [x] Cleaner UI From 100b62becc50ad17377b25060b73a00e6d56db70 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 22 Jun 2021 13:08:00 +0530 Subject: [PATCH 303/344] Update metadata.json --- metadata.json | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/metadata.json b/metadata.json index f3783d8..f61a31f 100644 --- a/metadata.json +++ b/metadata.json @@ -18,25 +18,6 @@ "3.38", "40", "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55", - "56", - "57", - "58", - "59", - "60" ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", From a9d85a23ce0d3e13cd07fe901e16b71d5262f9ad Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 22 Jun 2021 13:09:56 +0530 Subject: [PATCH 304/344] Move settings to enable function --- extension.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/extension.js b/extension.js index 2ff3a9a..4f65663 100644 --- a/extension.js +++ b/extension.js @@ -371,11 +371,10 @@ function _settingsChanged() { } } -function init() { - settings = Convenience.getSettings(schema); -} +function init() {} function enable() { + settings = Convenience.getSettings(schema); fetchSettings(); // Automatically creates the netSpeed Button. this._settingsChangedId = this.settings.connect('changed', this._settingsChanged); From 0e6fd3973d9286b8cef7cae92d8be50766f37b9f Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 22 Jun 2021 13:10:21 +0530 Subject: [PATCH 305/344] Update metadata.json --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index f61a31f..9d9ffc5 100644 --- a/metadata.json +++ b/metadata.json @@ -21,5 +21,5 @@ ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 29 + "version": 30 } From 9cc0a0235491fe58b4ba99c47fa5f06c9c206be4 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 22 Jun 2021 13:13:05 +0530 Subject: [PATCH 306/344] Remove comma from last --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index 9d9ffc5..a77c437 100644 --- a/metadata.json +++ b/metadata.json @@ -17,7 +17,7 @@ "3.36", "3.38", "40", - "41", + "41" ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", From 75e76b306bd7cbe9ac3a375f1326d48b53b1784a Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 22 Jun 2021 14:47:21 +0530 Subject: [PATCH 307/344] Fix #24 --- extension.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extension.js b/extension.js index 4f65663..9318492 100644 --- a/extension.js +++ b/extension.js @@ -114,7 +114,7 @@ function initNsLabels() { text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: extraLabelInfo + (crStng.systemColr ? "color: " + crStng.usColor : "") + style: extraLabelInfo + (crStng.systemColr ? "" : "color: " + crStng.usColor) }); dsLabel = new St.Label({ From 777b678e7febde456d898ad7743c3a9bbd4bcd35 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 29 Jun 2021 11:51:46 +0530 Subject: [PATCH 308/344] Bump version to 31 --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index a77c437..eedf189 100644 --- a/metadata.json +++ b/metadata.json @@ -21,5 +21,5 @@ ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 30 + "version": 31 } From 139e3c09a14c3e24c4cc86f8fe0922b4c618b26f Mon Sep 17 00:00:00 2001 From: Prateek SU Date: Tue, 24 Aug 2021 13:27:54 +0530 Subject: [PATCH 309/344] Add New default icon set --- extension.js | 4 ++-- metadata.json | 2 +- prefs.js | 2 +- schemas/gschemas.compiled | Bin 1628 -> 1628 bytes ....extensions.netspeedsimplified.gschema.xml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/extension.js b/extension.js index 9318492..79fb10b 100644 --- a/extension.js +++ b/extension.js @@ -60,7 +60,7 @@ function pushSettings() { //Helper Functions function DIcons(iNum) { - return [["🡳", "🡱", "Σ"], ["↓", "↑", "∑"]][crStng.chooseIconSet][iNum]; + return [["⬇", "⬆"], ["🡳", "🡱"], ["↓", "↑"]][crStng.chooseIconSet][iNum]; } function nsPos() { @@ -159,7 +159,7 @@ function initNsLabels() { }); tdIcon = new St.Label({ - text: DIcons(2), + text: "Σ", y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(true), style: extraInfo + (crStng.systemColr ? "" : "color: " + crStng.tdColor) diff --git a/metadata.json b/metadata.json index eedf189..ca68ef1 100644 --- a/metadata.json +++ b/metadata.json @@ -21,5 +21,5 @@ ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 31 + "version": 33 } diff --git a/prefs.js b/prefs.js index 3652d19..1bf1491 100644 --- a/prefs.js +++ b/prefs.js @@ -225,7 +225,7 @@ Prefs.prototype = //For Toggling Old Icons let hboxIconset = newGtkBox() - vBoxAddSeleCt("chooseiconset", hboxIconset, "Choose Icons Set", [" 🡳, 🡱, Σ ", " ↓, ↑, ∑ "], "Choose which icon set to display") + vBoxAddSeleCt("chooseiconset", hboxIconset, "Choose Icons Set", [" ⬇, ⬆", " 🡳, 🡱", " ↓, ↑"], "Choose which icon set to display") //For Limiting upper limit of speed let hboxLimitUnit = newGtkBox() diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index 7df712e8252826cb192aa22ad0c8fcdeaaf1440e..7a7ee5d7ceabcb48cd982bc24d31808c63fa4886 100644 GIT binary patch delta 16 Ycmcb^bBAZc5thj{to)lVvve{706lI7fB*mh delta 14 Wcmcb^bBAZc5f(false
      - + 0 From 5ae302f2de9a4612430e588a2e8c7af605f18420 Mon Sep 17 00:00:00 2001 From: Prateek SU Date: Tue, 24 Aug 2021 14:44:16 +0530 Subject: [PATCH 310/344] Merge #23 manually and format document --- extension.js | 101 +-- prefs.js | 616 ++++++++++-------- schemas/gschemas.compiled | Bin 1628 -> 1715 bytes ....extensions.netspeedsimplified.gschema.xml | 6 + stylesheet.css | 4 +- 5 files changed, 404 insertions(+), 323 deletions(-) diff --git a/extension.js b/extension.js index 79fb10b..827ea47 100644 --- a/extension.js +++ b/extension.js @@ -12,8 +12,11 @@ const Clutter = imports.gi.Clutter, rCConst = 4; //Right Click 4 times to toggle Vertical Alignment let settings, timeout, - lastCount = 0, lastSpeed = 0, lastCountUp = 0, - resetNextCount = false, resetCount = 0, + lastCount = 0, + lastSpeed = 0, + lastCountUp = 0, + resetNextCount = false, + resetCount = 0, hideCount = 8, B_UNITS; @@ -32,6 +35,8 @@ function fetchSettings() { revIndicator: settings.get_boolean('reverseindicators'), lckMuseAct: settings.get_boolean('lockmouseactions'), minWidth: settings.get_double('minwidth'), + iconsToRight: settings.get_boolean('iconstoright'), + textAlign: settings.get_int('textalign'), cusFont: settings.get_string('customfont'), hideInd: settings.get_boolean('hideindicator'), shortenUnits: settings.get_boolean('shortenunits'), @@ -60,7 +65,11 @@ function pushSettings() { //Helper Functions function DIcons(iNum) { - return [["⬇", "⬆"], ["🡳", "🡱"], ["↓", "↑"]][crStng.chooseIconSet][iNum]; + return [ + ["⬇", "⬆"], + ["🡳", "🡱"], + ["↓", "↑"] + ][crStng.chooseIconSet][iNum]; } function nsPos() { @@ -75,10 +84,10 @@ function speedToString(amount, rMode = 0) { let speed_map = B_UNITS.map( (rMode == 1 && (crStng.mode == 1 || crStng.mode == 3 || crStng.mode == 4)) ? v => v : //KB - (rMode == 1 && (crStng.mode == 0 || crStng.mode == 2)) ? v => v.toLowerCase() : //kb - (crStng.mode == 0 || crStng.mode == 2) ? v => v.toLowerCase() + "/s" : //kb/s - (crStng.mode == 1 || crStng.mode == 3) ? v => v + "/s" : //KB/s - v => v); // Others + (rMode == 1 && (crStng.mode == 0 || crStng.mode == 2)) ? v => v.toLowerCase() : //kb + (crStng.mode == 0 || crStng.mode == 2) ? v => v.toLowerCase() + "/s" : //kb/s + (crStng.mode == 1 || crStng.mode == 3) ? v => v + "/s" : //KB/s + v => v); // Others if (amount === 0) return " 0.0 " + speed_map[0]; if (crStng.mode == 0 || crStng.mode == 2) amount = amount * 8; @@ -106,9 +115,12 @@ var usLabel, dsLabel, tsLabel, tdLabel, usIcon, dsIcon, tsIcon, tdIcon; function getStyle(isIcon = false) { return (isIcon) ? 'size-' + (String(crStng.fontmode)) : ('forall size-' + String(crStng.fontmode)) } + function initNsLabels() { let extraInfo = crStng.cusFont ? "font-family: " + crStng.cusFont + "; " : ""; let extraLabelInfo = extraInfo + "min-width: " + crStng.minWidth + "em; "; + extraLabelInfo += "text-align: " + ["left", "right", "center"][crStng.textAlign] + "; "; + usLabel = new St.Label({ text: '--', @@ -174,7 +186,9 @@ function updateNsLabels(up, down, up_down, total) { } // Initalize NetSpeed -var nsButton = null, nsActor = null, nsLayout = null; +var nsButton = null, + nsActor = null, + nsLayout = null; function initNs() { @@ -202,42 +216,39 @@ function initNs() { //Attach the components to the grid. if (crStng.mode == 0 || crStng.mode == 1) { - nsLayout.attach(tsIcon, 0, 1, 1, 1); - nsLayout.attach(tsLabel, 1, 1, 1, 1); + nsLayout.attach(!crStng.iconsToRight ? tsIcon : tsLabel, 0, 1, 1, 1); + nsLayout.attach(!crStng.iconsToRight ? tsLabel : tsIcon, 1, 1, 1, 1); if (crStng.showTotalDwnld) { - nsLayout.attach(tdIcon, widthConstant, heightConstant, 1, 1); - nsLayout.attach(tdLabel, 1 + widthConstant, heightConstant, 1, 1); + nsLayout.attach(!crStng.iconsToRight ? tdIcon : tdLabel, widthConstant, heightConstant, 1, 1); + nsLayout.attach(!crStng.iconsToRight ? tdLabel : tdIcon, 1 + widthConstant, heightConstant, 1, 1); } - } - else if (crStng.mode == 2 || crStng.mode == 3) { + } else if (crStng.mode == 2 || crStng.mode == 3) { if (crStng.revIndicator) { - nsLayout.attach(usIcon, 0, 1, 1, 1); - nsLayout.attach(usLabel, 1, 1, 1, 1); - nsLayout.attach(dsIcon, widthConstant, heightConstant, 1, 1); - nsLayout.attach(dsLabel, 1 + widthConstant, heightConstant, 1, 1); - } - else { - nsLayout.attach(dsIcon, 0, 1, 1, 1); - nsLayout.attach(dsLabel, 1, 1, 1, 1); - nsLayout.attach(usIcon, widthConstant, heightConstant, 1, 1); - nsLayout.attach(usLabel, 1 + widthConstant, heightConstant, 1, 1); + nsLayout.attach(!crStng.iconsToRight ? usIcon : usLabel, 0, 1, 1, 1); + nsLayout.attach(!crStng.iconsToRight ? usLabel : usIcon, 1, 1, 1, 1); + nsLayout.attach(!crStng.iconsToRight ? dsIcon : dsLabel, widthConstant, heightConstant, 1, 1); + nsLayout.attach(!crStng.iconsToRight ? dsLabel : dsIcon, 1 + widthConstant, heightConstant, 1, 1); + } else { + nsLayout.attach(!crStng.iconsToRight ? dsIcon : dsLabel, 0, 1, 1, 1); + nsLayout.attach(!crStng.iconsToRight ? dsLabel : dsIcon, 1, 1, 1, 1); + nsLayout.attach(!crStng.iconsToRight ? usIcon : usLabel, widthConstant, heightConstant, 1, 1); + nsLayout.attach(!crStng.iconsToRight ? usLabel : usIcon, 1 + widthConstant, heightConstant, 1, 1); } if (crStng.showTotalDwnld) { - nsLayout.attach(tdIcon, 2 + widthConstant, heightConstant, 1, 1); - nsLayout.attach(tdLabel, 3 + widthConstant, heightConstant, 1, 1); + nsLayout.attach(!crStng.iconsToRight ? tdIcon : tdLabel, 2 + widthConstant, heightConstant, 1, 1); + nsLayout.attach(!crStng.iconsToRight ? tdLabel : tdIcon, 3 + widthConstant, heightConstant, 1, 1); } - } - else { - nsLayout.attach(tdIcon, 0, 1, 1, 1); - nsLayout.attach(tdLabel, 1, 1, 1, 1); + } else { + nsLayout.attach(!crStng.iconsToRight ? tdIcon : tdLabel, 0, 1, 1, 1); + nsLayout.attach(!crStng.iconsToRight ? tdLabel : tdIcon, 1, 1, 1, 1); } //Create the button and add to Main.panel nsButton = new PanelMenu.Button(0.0, ButtonName); - (!crStng.lckMuseAct) ? nsButton.connect('button-press-event', mouseEventHandler) : null; + (!crStng.lckMuseAct) ? nsButton.connect('button-press-event', mouseEventHandler): null; nsButton.add_child(nsActor); Main.panel.addToStatusArea(ButtonName, nsButton, nsPosAdv(), nsPos()); @@ -249,7 +260,8 @@ function nsDestroy() { } // Mouse Event Handler -var startTime = null, rClickCount = 0; +var startTime = null, + rClickCount = 0; function mouseEventHandler(widget, event) { if (event.get_button() == 3) { @@ -268,19 +280,15 @@ function mouseEventHandler(widget, event) { crStng.isVertical = !(crStng.isVertical); startTime = null; rClickCount = 0; - } - else rClickCount++; - } - else { + } else rClickCount++; + } else { startTime = new Date(); rClickCount = 1; } - } - else if (event.get_button() == 2) { // change font + } else if (event.get_button() == 2) { // change font crStng.fontmode++; if (crStng.fontmode > 4) crStng.fontmode = 0; - } - else if (event.get_button() == 1) { + } else if (event.get_button() == 1) { crStng.mode++; if (crStng.mode > 4) crStng.mode = 0; } @@ -323,14 +331,15 @@ function parseStat() { if (lastCount === 0) lastCount = count; if (lastCountUp === 0) lastCountUp = countUp; - let speed = (count - lastCount) / crStng.refreshTime, speedUp = (countUp - lastCountUp) / crStng.refreshTime; + let speed = (count - lastCount) / crStng.refreshTime, + speedUp = (countUp - lastCountUp) / crStng.refreshTime; if (resetNextCount == true) { resetNextCount = false; resetCount = count; } - (speed || speedUp) ? hideCount = 0 : hideCount <= 8 ? hideCount++ : null + (speed || speedUp) ? hideCount = 0: hideCount <= 8 ? hideCount++ : null if (hideCount <= 8) { nsButton == null ? initNs() : null @@ -339,12 +348,10 @@ function parseStat() { " " + speedToString(speed - speedUp), " " + speedToString(speed), " " + speedToString(count - resetCount, 1)); - } - else { + } else { if (crStng.hideInd) { nsDestroy(); - } - else { + } else { nsButton == null ? initNs() : null updateNsLabels('--', '--', '--', speedToString(count - resetCount, 1)); } @@ -387,4 +394,4 @@ function enable() { function disable() { Mainloop.source_remove(timeout); nsDestroy(); -} +} \ No newline at end of file diff --git a/prefs.js b/prefs.js index 1bf1491..f51ad37 100644 --- a/prefs.js +++ b/prefs.js @@ -1,289 +1,357 @@ const Gtk = imports.gi.Gtk, - Gdk = imports.gi.Gdk + Gdk = imports.gi.Gdk const Config = imports.misc.config const ShellVersion = parseFloat(Config.PACKAGE_VERSION) const Me = imports.misc.extensionUtils.getCurrentExtension(), - Convenience = Me.imports.convenience, - schema = "org.gnome.shell.extensions.netspeedsimplified" + Convenience = Me.imports.convenience, + schema = "org.gnome.shell.extensions.netspeedsimplified" -function init() { } +function init() {} function buildPrefsWidget() { - let prefs = new Prefs(schema) + let prefs = new Prefs(schema) - return prefs.buildPrefsWidget() + return prefs.buildPrefsWidget() } function Prefs(schema) { - this.init(schema) + this.init(schema) } -Prefs.prototype = -{ - settings: null, - init: function (schema) { - let settings = new Convenience.getSettings(schema) - this.settings = settings - }, - - buildPrefsWidget: function () { - let thset = this.settings - let isGnome40 = ShellVersion >= 40 - - function addIt(element, child) { - if (isGnome40) element.append(child) - else element.add(child) - - } - - function newGtkBox() { - return new Gtk.Box({ orientation: Gtk.Orientation.HORIZONTAL, margin_top: 10, margin_bottom: 10 }) - } - - function vBoxSpinBtn(getDouble, whichHbox, getLbl = "", getTooTip = "", lwer, uper, stpInc = 1, digs = 0, nume = true, pgeInc = 1, pgeSiz = 0, clmrate = 1) { - let boolComp = (thset.get_double(getDouble) === thset.get_default_value(getDouble).unpack()) - getLbl = boolComp ? getLbl : - `${getLbl}` - let whichLbl = new Gtk.Label({ label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }) - let whichSpinBtn = new Gtk.SpinButton({ - adjustment: new Gtk.Adjustment({ - lower: lwer, upper: uper, step_increment: stpInc, page_increment: pgeInc, page_size: pgeSiz - }), - climb_rate: clmrate, - digits: digs, - numeric: nume, - }) - whichSpinBtn.set_value(thset.get_double(getDouble)) - whichSpinBtn.connect('value-changed', () => { - this.rTValue = parseFloat(whichSpinBtn.get_value().toFixed(1)) - if (thset.get_double(getDouble) !== this.rTValue) { - thset.set_double(getDouble, this.rTValue) - thset.set_boolean('restartextension', true) - } - }) - whichLbl.set_hexpand(true) - addIt(whichHbox, whichLbl) - addIt(whichHbox, whichSpinBtn) - - addIt(vbox, whichHbox) - } - - function vBoxAddSeleCt(getInt, whichHbox, getLbl, aRray = [], getTooTip = "") { - let boolComp = (thset.get_int(getInt) == thset.get_default_value(getInt).unpack()) - getLbl = boolComp ? getLbl : - `${getLbl}` - let tootext = boolComp ? "" : "The Value is Changed" - - let whichLbl = new Gtk.Label({ label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }) - let whichVlue = new Gtk.ComboBoxText({ halign: Gtk.Align.END, tooltip_text: tootext }) - - for (i in aRray) { - whichVlue.append_text(aRray[i]) - } - - whichVlue.set_active(Math.round(thset.get_int(getInt))) - whichVlue.connect('changed', (widget) => { - let valueMode = widget.get_active() - thset.set_int(getInt, valueMode) - thset.set_boolean('restartextension', true) - }) - whichLbl.set_hexpand(true) - addIt(whichHbox, whichLbl) - addIt(whichHbox, whichVlue) - - addIt(vbox, whichHbox) - } - - function vBoxAddTgglBtn(whichHbox, getLbl, getBool, getTooTip = "", func) { - let boolComp = true - if (func == undefined) { - boolComp = (thset.get_boolean(getBool) == thset.get_default_value(getBool).unpack()) - getLbl = boolComp ? getLbl : - `${getLbl}` - } - let tootext = boolComp ? "" : "The Value is Changed" - let whichLbl = new Gtk.Label({ label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }) - let whichVlue = new Gtk.Switch({ - active: getBool ? thset.get_boolean(getBool) : false, tooltip_text: tootext - }) - whichVlue.connect('notify::active', (widget) => { - if (func != undefined) func(widget.active) - else { - thset.set_boolean(getBool, widget.active) - thset.set_boolean('restartextension', true) - } - }) - - whichLbl.set_hexpand(true) - addIt(whichHbox, whichLbl) - addIt(whichHbox, whichVlue) - - addIt(vbox, whichHbox) - } - - function vBoxAddColorButton(whichHbox, getLbl, getColor, getToolTip = "") { - //Deterime whether the option value is changed from default value - let boolComp = (thset.get_string(getColor) == thset.get_default_value(getColor).unpack()) - getLbl = boolComp ? getLbl : `${getLbl}` - let tootext = boolComp ? "" : "The Value is Changed" - - //Create the option name - let whichLbl = new Gtk.Label({ label: getLbl, use_markup: true, xalign: 0, tooltip_text: getToolTip }) - - //Create RGBA - let rgba = new Gdk.RGBA() - rgba.parse(thset.get_string(getColor)) - - //Create ColorButton - let colorButton = new Gtk.ColorButton({ tooltip_text: tootext }) - colorButton.set_rgba(rgba) - colorButton.connect('color-set', (widget) => { //On the event of modification - rgba = widget.get_rgba() - thset.set_string(getColor, rgba.to_string()) - thset.set_boolean('restartextension', true) - }) - - whichLbl.set_hexpand(true) - addIt(whichHbox, whichLbl) - addIt(whichHbox, colorButton) - - addIt(vbox, whichHbox) - } - - function vBoxAddEntry(whichHbox, getLbl, getString, getTooTip = "", func) { - let boolComp = (thset.get_string(getString) == thset.get_default_value(getString).unpack()) - getLbl = boolComp ? getLbl : - `${getLbl}` - let tootext = boolComp ? "" : "The Value is Changed" - let whichLbl = new Gtk.Label({ label: getLbl, use_markup: true, xalign: 0, tooltip_text: getTooTip }) - let whichVlue = new Gtk.Entry({ text: thset.get_string(getString), tooltip_text: tootext, placeholder_text: "Press Enter to apply" }) - whichVlue.connect('activate', (widget) => { - thset.set_string(getString, widget.get_text()) - if (func != undefined) { func(widget.active) } - else { thset.set_boolean('restartextension', true) } - }) - - whichLbl.set_hexpand(true) - addIt(whichHbox, whichLbl) - addIt(whichHbox, whichVlue) - - addIt(vbox, whichHbox) - } - - let frame = new Gtk.ScrolledWindow() - let label = new Gtk.Label({ label: "General Settings", use_markup: true, xalign: 0, margin_top: 15 }) - let vbox = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, margin_start: 25, margin_end: 25 }) - let resetBtn = new Gtk.Button({ label: "Restore Defaults", margin_bottom: 15 }) - - resetBtn.connect("clicked", () => { - let strArray = ["customfont", "uscolor", "dscolor", "tscolor", "tdcolor"] - let intArray = ["wpos", "wposext", "refreshtime", "mode", "fontmode", "chooseiconset",] - let boolArray = ["isvertical", "togglebool", "reverseindicators", "lockmouseactions", "hideindicator", "shortenunits"] - for (i in strArray) { - thset.set_string(strArray[i], thset.get_default_value(strArray[i]).unpack()) - } - for (j in intArray) { - thset.set_int(intArray[j], thset.get_default_value(intArray[j]).unpack()) - } - for (k in boolArray) { - thset.set_boolean(boolArray[k], thset.get_default_value(boolArray[k]).unpack()) - } - thset.set_boolean('restartextension', true) - frame.destroy() - }) - - addIt(vbox, label) - //For Position - let hboxWPos = newGtkBox() - vBoxAddSeleCt("wpos", hboxWPos, "Position on the Panel", ["Right", "Left", "Center"], "Choose where to Place the extension on the Panel") - - //For Position Extras - let hboxWPosExt = newGtkBox() - vBoxAddSeleCt("wposext", hboxWPosExt, "Position(Advanced)", ["Prefer Right Side", "Prefer Left Side"], "Choose further where to Place the extension") - - //Refresh time - let hboxRTime = newGtkBox() - vBoxSpinBtn("refreshtime", hboxRTime, "Refresh Time", "Change Refresh time value from anywhere b/w 1 to 10", 1.0, 10.0, .1, 1) - - //For Modes - let hboxMode = newGtkBox() - vBoxAddSeleCt("mode", hboxMode, "Mode", ["Mode 1", "Mode 2", "Mode 3", "Mode 4", "Mode 5"], "Choose which mode to load") - - //For FontModes - let hboxFontMode = newGtkBox() - vBoxAddSeleCt("fontmode", hboxFontMode, "Font Mode", ["Default", "Smallest", "Smaller", "Small", "Large"], "Choose which font to display") - - //For Vertical Alignment - let hboxVertical = newGtkBox() - vBoxAddTgglBtn(hboxVertical, "Vertical Align", "isvertical", "Changing it will toggle Vertical Alignment") - - //For Default sigma View - let hboxToggleBool = newGtkBox() - vBoxAddTgglBtn(hboxToggleBool, "Show Total Download speed", "togglebool", "Enabling it will show sigma by default") - - //For Toggling Old Icons - let hboxIconset = newGtkBox() - vBoxAddSeleCt("chooseiconset", hboxIconset, "Choose Icons Set", [" ⬇, ⬆", " 🡳, 🡱", " ↓, ↑"], "Choose which icon set to display") - - //For Limiting upper limit of speed - let hboxLimitUnit = newGtkBox() - vBoxAddSeleCt("limitunit", hboxLimitUnit, "Limit Unit", ["(None)", 'K', 'M', 'G', 'T', 'P', 'E', 'Z'], "Choose unit limitation set to display") - - //For Hide When Disconnected - let hboxHideInd = newGtkBox() - vBoxAddTgglBtn(hboxHideInd, "Hide When Disconnected", "hideindicator", "Enabling it will Hide Indicator when disconnected") - - //For Shorten Units - let hboxShUni = newGtkBox() - vBoxAddTgglBtn(hboxShUni, "Shorten Units", "shortenunits", "Enabling it will result in shorten units like K instead of KB") - - //For Reversing the download and upload indicators - let hboxRevInd = newGtkBox() - vBoxAddTgglBtn(hboxRevInd, "Show Upload First", "reverseindicators", "Enabling it will reverse the upload and download speed indicators") - - //For Lock Mouse Actions - let hboxLckMuseAct = newGtkBox() - vBoxAddTgglBtn(hboxLckMuseAct, "Lock Mouse Actions", "lockmouseactions", "Enabling it will Lock Mouse Actions") - - //Minimum Width - let hboxMinWidth = newGtkBox() - vBoxSpinBtn("minwidth", hboxMinWidth, "Minimum Width", "Change Minimum Width value from anywhere b/w 3em to 10em", 3.0, 10.0, .5, 1) - - //For Custom Font name - let hboxCustFont = newGtkBox() - vBoxAddEntry(hboxCustFont, "Custom Font Name", "customfont", "Enter the font name you want, you can also write style here for all elements except indicators") - - //For Custom Font name - let hboxSysColr = newGtkBox() - vBoxAddTgglBtn(hboxSysColr, "Use System Color Scheme", "systemcolr", "Enabling it will allow changing font color dynamically based on panel color") - - - //Upload Speed Color - let usColorButton = newGtkBox() - vBoxAddColorButton(usColorButton, "Upload Speed Color", "uscolor", "Select the upload speed color") - - //Download Speed Color - let dsColorButton = newGtkBox() - vBoxAddColorButton(dsColorButton, "Download Speed Color", "dscolor", "Select the download speed color") - - //Total Speed Color - let tsColorButton = newGtkBox() - vBoxAddColorButton(tsColorButton, "Total Speed Color", "tscolor", "Select the total speed color") - - //Total Download Color - let tdColorButton = newGtkBox() - vBoxAddColorButton(tdColorButton, "Total Download Color", "tdcolor", "Select the total download color") - - addIt(vbox, resetBtn) - if (isGnome40) frame.child = vbox - else { - frame.add(vbox) - frame.show_all() - frame.connect('destroy', Gtk.main_quit) - } - - return frame - } -} +Prefs.prototype = { + settings: null, + init: function(schema) { + let settings = new Convenience.getSettings(schema) + this.settings = settings + }, + + buildPrefsWidget: function() { + let thset = this.settings + let isGnome40 = ShellVersion >= 40 + + function addIt(element, child) { + if (isGnome40) element.append(child) + else element.add(child) + } + + function newGtkBox() { + return new Gtk.Box({ + orientation: Gtk.Orientation.HORIZONTAL, + margin_top: 10, + margin_bottom: 10 + }) + } + + function vBoxSpinBtn(getDouble, whichHbox, getLbl = "", getTooTip = "", lwer, uper, stpInc = 1, digs = 0, nume = true, pgeInc = 1, pgeSiz = 0, clmrate = 1) { + let boolComp = (thset.get_double(getDouble) === thset.get_default_value(getDouble).unpack()) + getLbl = boolComp ? getLbl : + `${getLbl}` + let whichLbl = new Gtk.Label({ + label: getLbl, + use_markup: true, + xalign: 0, + tooltip_text: getTooTip + }) + let whichSpinBtn = new Gtk.SpinButton({ + adjustment: new Gtk.Adjustment({ + lower: lwer, + upper: uper, + step_increment: stpInc, + page_increment: pgeInc, + page_size: pgeSiz + }), + climb_rate: clmrate, + digits: digs, + numeric: nume, + }) + whichSpinBtn.set_value(thset.get_double(getDouble)) + whichSpinBtn.connect('value-changed', () => { + this.rTValue = parseFloat(whichSpinBtn.get_value().toFixed(1)) + if (thset.get_double(getDouble) !== this.rTValue) { + thset.set_double(getDouble, this.rTValue) + thset.set_boolean('restartextension', true) + } + }) + whichLbl.set_hexpand(true) + addIt(whichHbox, whichLbl) + addIt(whichHbox, whichSpinBtn) + + addIt(vbox, whichHbox) + } + + function vBoxAddSeleCt(getInt, whichHbox, getLbl, aRray = [], getTooTip = "") { + let boolComp = (thset.get_int(getInt) == thset.get_default_value(getInt).unpack()) + getLbl = boolComp ? getLbl : + `${getLbl}` + let tootext = boolComp ? "" : "The Value is Changed" + + let whichLbl = new Gtk.Label({ + label: getLbl, + use_markup: true, + xalign: 0, + tooltip_text: getTooTip + }) + let whichVlue = new Gtk.ComboBoxText({ + halign: Gtk.Align.END, + tooltip_text: tootext + }) + + for (i in aRray) { + whichVlue.append_text(aRray[i]) + } + + whichVlue.set_active(Math.round(thset.get_int(getInt))) + whichVlue.connect('changed', (widget) => { + let valueMode = widget.get_active() + thset.set_int(getInt, valueMode) + thset.set_boolean('restartextension', true) + }) + whichLbl.set_hexpand(true) + addIt(whichHbox, whichLbl) + addIt(whichHbox, whichVlue) + + addIt(vbox, whichHbox) + } + + function vBoxAddTgglBtn(whichHbox, getLbl, getBool, getTooTip = "", func) { + let boolComp = true + if (func == undefined) { + boolComp = (thset.get_boolean(getBool) == thset.get_default_value(getBool).unpack()) + getLbl = boolComp ? getLbl : + `${getLbl}` + } + let tootext = boolComp ? "" : "The Value is Changed" + let whichLbl = new Gtk.Label({ + label: getLbl, + use_markup: true, + xalign: 0, + tooltip_text: getTooTip + }) + let whichVlue = new Gtk.Switch({ + active: getBool ? thset.get_boolean(getBool) : false, + tooltip_text: tootext + }) + whichVlue.connect('notify::active', (widget) => { + if (func != undefined) func(widget.active) + else { + thset.set_boolean(getBool, widget.active) + thset.set_boolean('restartextension', true) + } + }) + + whichLbl.set_hexpand(true) + addIt(whichHbox, whichLbl) + addIt(whichHbox, whichVlue) + + addIt(vbox, whichHbox) + } + + function vBoxAddColorButton(whichHbox, getLbl, getColor, getToolTip = "") { + //Deterime whether the option value is changed from default value + let boolComp = (thset.get_string(getColor) == thset.get_default_value(getColor).unpack()) + getLbl = boolComp ? getLbl : `${getLbl}` + let tootext = boolComp ? "" : "The Value is Changed" + + //Create the option name + let whichLbl = new Gtk.Label({ + label: getLbl, + use_markup: true, + xalign: 0, + tooltip_text: getToolTip + }) + + //Create RGBA + let rgba = new Gdk.RGBA() + rgba.parse(thset.get_string(getColor)) + + //Create ColorButton + let colorButton = new Gtk.ColorButton({ + tooltip_text: tootext + }) + colorButton.set_rgba(rgba) + colorButton.connect('color-set', (widget) => { //On the event of modification + rgba = widget.get_rgba() + thset.set_string(getColor, rgba.to_string()) + thset.set_boolean('restartextension', true) + }) + + whichLbl.set_hexpand(true) + addIt(whichHbox, whichLbl) + addIt(whichHbox, colorButton) + + addIt(vbox, whichHbox) + } + + function vBoxAddEntry(whichHbox, getLbl, getString, getTooTip = "", func) { + let boolComp = (thset.get_string(getString) == thset.get_default_value(getString).unpack()) + getLbl = boolComp ? getLbl : + `${getLbl}` + let tootext = boolComp ? "" : "The Value is Changed" + let whichLbl = new Gtk.Label({ + label: getLbl, + use_markup: true, + xalign: 0, + tooltip_text: getTooTip + }) + let whichVlue = new Gtk.Entry({ + text: thset.get_string(getString), + tooltip_text: tootext, + placeholder_text: "Press Enter to apply" + }) + whichVlue.connect('activate', (widget) => { + thset.set_string(getString, widget.get_text()) + if (func != undefined) { + func(widget.active) + } else { + thset.set_boolean('restartextension', true) + } + }) + + whichLbl.set_hexpand(true) + addIt(whichHbox, whichLbl) + addIt(whichHbox, whichVlue) + + addIt(vbox, whichHbox) + } + + let frame = new Gtk.ScrolledWindow() + let label = new Gtk.Label({ + label: "General Settings", + use_markup: true, + xalign: 0, + margin_top: 15 + }) + let vbox = new Gtk.Box({ + orientation: Gtk.Orientation.VERTICAL, + margin_start: 25, + margin_end: 25 + }) + let resetBtn = new Gtk.Button({ + label: "Restore Defaults", + margin_bottom: 15 + }) + + resetBtn.connect("clicked", () => { + let strArray = ["customfont", "uscolor", "dscolor", "tscolor", "tdcolor"] + let intArray = ["wpos", "wposext", "mode", "fontmode", "chooseiconset", "textalign"] + let doubleArray = ["refreshtime", "minwidth"] + let boolArray = ["isvertical", "togglebool", "reverseindicators", "lockmouseactions", "hideindicator", "shortenunits", "iconstoright"] + for (i in strArray) { + thset.set_string(strArray[i], thset.get_default_value(strArray[i]).unpack()) + } + for (j in intArray) { + thset.set_int(intArray[j], thset.get_default_value(intArray[j]).unpack()) + } + for (k in doubleArray) { + thset.set_double(doubleArray[k], thset.get_default_value(doubleArray[k]).unpack()) + } + for (l in boolArray) { + thset.set_boolean(boolArray[l], thset.get_default_value(boolArray[l]).unpack()) + } + thset.set_boolean('restartextension', true) + window.destroy() + }) + + addIt(vbox, label) + //For Position + let hboxWPos = newGtkBox() + vBoxAddSeleCt("wpos", hboxWPos, "Position on the Panel", ["Right", "Left", "Center"], "Choose where to Place the extension on the Panel") + + //For Position Extras + let hboxWPosExt = newGtkBox() + vBoxAddSeleCt("wposext", hboxWPosExt, "Position(Advanced)", ["Prefer Right Side", "Prefer Left Side"], "Choose further where to Place the extension") + + //Refresh time + let hboxRTime = newGtkBox() + vBoxSpinBtn("refreshtime", hboxRTime, "Refresh Time", "Change Refresh time value from anywhere b/w 1 to 10", 1.0, 10.0, .1, 1) + + //For Modes + let hboxMode = newGtkBox() + vBoxAddSeleCt("mode", hboxMode, "Mode", ["Mode 1", "Mode 2", "Mode 3", "Mode 4", "Mode 5"], "Choose which mode to load") + + //For FontModes + let hboxFontMode = newGtkBox() + vBoxAddSeleCt("fontmode", hboxFontMode, "Font Mode", ["Default", "Smallest", "Smaller", "Small", "Large"], "Choose which font to display") + + //For Vertical Alignment + let hboxVertical = newGtkBox() + vBoxAddTgglBtn(hboxVertical, "Vertical Align", "isvertical", "Changing it will toggle Vertical Alignment") + + //For Default sigma View + let hboxToggleBool = newGtkBox() + vBoxAddTgglBtn(hboxToggleBool, "Show Total Download speed", "togglebool", "Enabling it will show sigma by default") + + //For Toggling Old Icons + let hboxIconset = newGtkBox() + vBoxAddSeleCt("chooseiconset", hboxIconset, "Choose Icons Set", [" ⬇, ⬆", " 🡳, 🡱", " ↓, ↑"], "Choose which icon set to display") + + //Text align for net speed + let hboxText = newGtkBox() + vBoxAddSeleCt("textalign", hboxText, "Text Align", ["Left", "Right", "Center"], "Align Text of net speed") + + //Toggle icon to right + let hboxIconsRight = newGtkBox() + vBoxAddTgglBtn(hboxIconsRight, "Move icons to the right", "iconstoright", "Move icons to the right") + + //For Limiting upper limit of speed + let hboxLimitUnit = newGtkBox() + vBoxAddSeleCt("limitunit", hboxLimitUnit, "Limit Unit", ["(None)", 'K', 'M', 'G', 'T', 'P', 'E', 'Z'], "Choose unit limitation set to display") + + //For Hide When Disconnected + let hboxHideInd = newGtkBox() + vBoxAddTgglBtn(hboxHideInd, "Hide When Disconnected", "hideindicator", "Enabling it will Hide Indicator when disconnected") + + //For Shorten Units + let hboxShUni = newGtkBox() + vBoxAddTgglBtn(hboxShUni, "Shorten Units", "shortenunits", "Enabling it will result in shorten units like K instead of KB") + + //For Reversing the download and upload indicators + let hboxRevInd = newGtkBox() + vBoxAddTgglBtn(hboxRevInd, "Show Upload First", "reverseindicators", "Enabling it will reverse the upload and download speed indicators") + + //For Lock Mouse Actions + let hboxLckMuseAct = newGtkBox() + vBoxAddTgglBtn(hboxLckMuseAct, "Lock Mouse Actions", "lockmouseactions", "Enabling it will Lock Mouse Actions") + + //Minimum Width + let hboxMinWidth = newGtkBox() + vBoxSpinBtn("minwidth", hboxMinWidth, "Minimum Width", "Change Minimum Width value from anywhere b/w 3em to 10em", 3.0, 10.0, .5, 1) + + //For Custom Font name + let hboxCustFont = newGtkBox() + vBoxAddEntry(hboxCustFont, "Custom Font Name", "customfont", "Enter the font name you want, you can also write style here for all elements except indicators") + + //For Custom Font name + let hboxSysColr = newGtkBox() + vBoxAddTgglBtn(hboxSysColr, "Use System Color Scheme", "systemcolr", "Enabling it will allow changing font color dynamically based on panel color") + + + //Upload Speed Color + let usColorButton = newGtkBox() + vBoxAddColorButton(usColorButton, "Upload Speed Color", "uscolor", "Select the upload speed color") + + //Download Speed Color + let dsColorButton = newGtkBox() + vBoxAddColorButton(dsColorButton, "Download Speed Color", "dscolor", "Select the download speed color") + + //Total Speed Color + let tsColorButton = newGtkBox() + vBoxAddColorButton(tsColorButton, "Total Speed Color", "tscolor", "Select the total speed color") + + //Total Download Color + let tdColorButton = newGtkBox() + vBoxAddColorButton(tdColorButton, "Total Download Color", "tdcolor", "Select the total download color") + + addIt(vbox, resetBtn) + if (isGnome40) frame.child = vbox + else { + frame.add(vbox) + frame.show_all() + frame.connect('destroy', Gtk.main_quit) + } + + return frame + } +} \ No newline at end of file diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index 7a7ee5d7ceabcb48cd982bc24d31808c63fa4886..30d34baf3ac64b41bf5195ce455935df634f30fc 100644 GIT binary patch literal 1715 zcmaJ>OKeP07(Qrq^g-)cVPRo$Z^BGG8j?oZg{EGMZitA5>D<$q!@c*6d+t<=O6)2u zY`i5JkA;MgbVEtJHbguYEQE!v2$9%GB>28Fy}g9G$v59O-}%q`{D1ehe5CSWEXKc9 z@b;>9rY0u1cAgMF@m1Tl*qEL04}aZxj$zcx#RhQ<+%rvxDPSEHv&B#cGHXiG_p@>! zmZ4EPG}%zbrYxmrR8aO+pOPNp@i_~tZ2MyvLDT?szzm=PXaZ*bh8F1Az#L%yI2M2j z?&o)Kd}7hZb2kBGS!2iN_Y^3qk`7Zj@b?{rktAP7MhZ=ak)V1)}f_DS$FS^e#p4zSl zJOu2${NWLO>K4Qw2cG~opSoz*L(TC=z;}S;{-}l6BJP4)YY|ibazDqRZbrNVUJi^d zdw-HXHP2@)cpZ>wF`wyEGrkAB6?oTnu!=X=2e;9lTsC+Vu=u^*t ze-nHQSaTz8rccdzAA_F(Z|{8=p-%ycktVP^1#KD9k(@G9W! z#<2$a)EvJP+yy+i-d{(bn)llS-UDnJJ8SQen)g@+9|hL0KKg+1)Lj2*@F<{6zl>s4 z$oputpVRBA0^WSABULO-B$|L9sBoY1;!+YSGM&+crpRN(1 zO0f!LwN;339e?)w((#Xe`^wr_JBhXV?I?_^6vnNXg7)=zV^r+TJ1g7TmMuwtR=7w| z<7UhGxRgV3=WKH4Y;xz)2atZYc4WY;B`9aMhBSj40oE2gAzN$af^oue9_vj? z7Ixn2#=2PaWv|w}T>STSVNakdM&=7K%NpEjoHucj|5?A6?h^A&e%@R}-dDwtquc#C z$}Lpzpn^V~R&Lx(p`x3YZBA46A-Qe!dxigojs9-6v zuu>BRgP6iXQrM`CMjJ)^0TmQ2Qfi?HX#^qq-tJv4(F8K^?!9|E^UcgRGhbJCE>yX| zib`t-ACI-Ov}%GAYlZlO7JoY$_343sajNGAyHRf!2gPM@`!XSxfOS|%7Xt0ev?)r@ zOUu(%21e>0N$^r;!A7c7B}m(vb?>S+DoA>h=VZ_nscx1#?jcntXb_}eIb zYUbeq_#JTM+U+QB)QmF;{tfKkJv71o)GOd86GChTHazUUM4y`L*#XW1cc+KP=~Hw4 zo#2ze>yFWAztr4s2|NTmIe(#%_l`ON{|fjiFmmWoBjZpr{#)<|pyN%~Fn#JK_+P=_ zfn=-sL7$rEB5;`!MCD#n3vpB=!974I`$K7pR{4@2D(%<4uqq?|xi9{^rBgVrbH;Jq zR4P?eu2g}m@;R%+CBo@TSvRje9Ssc&eK}`WHoI+8?Pq5S7vH1?OWNRx)F!CT#kV9J zh4@M#KGtP(p`Ce6l>wNiY!)+*)rEp5`?U6=kr?M|clIu;^WsQn&)cs9JE!LY{qkjF zwa?yhe3Nn)wXRSO$k5bMXQJWEU%sf38kI-okn`jxs#CT6*xGD3$A$ClDPP%gpk^Xg z_rn@9E8ogsT^7e#%a;lUm1~Rf0`Z&dtd5PXWM|BC?gh^`va5anS$DdWv&9UGW+p0{ znW$)HW{%lp{x6ytA&fa=tn_j4m9WT{DQeu0fP1SX5%a?LbpE8T%SPt%mSs3v4SX 1.5 + + false + + + 1 + false diff --git a/stylesheet.css b/stylesheet.css index 174113d..872808a 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -1,5 +1,5 @@ /* For all elements */ -.forall{ +.forall { text-align: right; margin: 0 8px; min-width: 6.5em; @@ -24,4 +24,4 @@ .size-4 { font-size: 1.1em; -} +} \ No newline at end of file From 0c204a53ab9443694b2ff2f7dd624f18f432e1f1 Mon Sep 17 00:00:00 2001 From: Prateek SU Date: Tue, 24 Aug 2021 15:02:16 +0530 Subject: [PATCH 311/344] Better defaults --- schemas/gschemas.compiled | Bin 1715 -> 1715 bytes ....extensions.netspeedsimplified.gschema.xml | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index 30d34baf3ac64b41bf5195ce455935df634f30fc..5eb1a162e0853e51f90e7748d514457ba7d9a659 100644 GIT binary patch delta 20 bcmdnYyP0=`1uG-tW=mFcMn=ZTg=|g$I`9PN delta 20 bcmdnYyP0=`1uG-NW=mFcMn;Cog=|g$I^P84 diff --git a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml index 4c8a9bd..352afd3 100644 --- a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml +++ b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml @@ -3,7 +3,7 @@ - 0 + 1 @@ -28,7 +28,7 @@ 1 - false + true false From 1b8073d95989a7b776443de5d216632b0cf0ba99 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 24 Aug 2021 15:07:21 +0530 Subject: [PATCH 312/344] Update prefs.js --- prefs.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/prefs.js b/prefs.js index f51ad37..27acbbb 100644 --- a/prefs.js +++ b/prefs.js @@ -251,7 +251,7 @@ Prefs.prototype = { thset.set_boolean(boolArray[l], thset.get_default_value(boolArray[l]).unpack()) } thset.set_boolean('restartextension', true) - window.destroy() + frame.destroy() }) addIt(vbox, label) @@ -354,4 +354,4 @@ Prefs.prototype = { return frame } -} \ No newline at end of file +} From 09bdf395dea8d0817a183eb1b03be792a7276507 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Mon, 13 Sep 2021 13:12:08 +0530 Subject: [PATCH 313/344] Update formatting --- README.md | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 7a5059d..ddc2388 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,34 @@

      NSS Logo

      Net speed Simplified

      -

      A Net Speed extension With Loads of Customization.

      +

      A Net Speed monitor With Loads of Customization.

      -GitHub release License + + GitHub release License

      - -[Get it on GNOME Extensions](https://extensions.gnome.org/extension/3724/net-speed-simplified/) or Install Manually - -

      Screenshot +

      + Screenshot

      + + + + + + + + + +
      +
      Download options
      +
      + + Get it on GNOME Extensions + + + + Install Manually + +
      +
      ***Tested on GNOME 40, 3.38 and 3.36*** From 74e082790fe826d73f6f01b75d853439300e7094 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Sat, 9 Apr 2022 16:11:07 +0530 Subject: [PATCH 314/344] Add files via upload --- extension.js | 4 ++-- metadata.json | 7 ++++--- prefs.js | 5 +++-- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/extension.js b/extension.js index 827ea47..7529796 100644 --- a/extension.js +++ b/extension.js @@ -384,7 +384,7 @@ function enable() { settings = Convenience.getSettings(schema); fetchSettings(); // Automatically creates the netSpeed Button. - this._settingsChangedId = this.settings.connect('changed', this._settingsChanged); + this._settingsChangedId = settings.connect('changed', this._settingsChanged); parseStat(); //Run infinite loop. @@ -394,4 +394,4 @@ function enable() { function disable() { Mainloop.source_remove(timeout); nsDestroy(); -} \ No newline at end of file +} diff --git a/metadata.json b/metadata.json index ca68ef1..3cf3ac9 100644 --- a/metadata.json +++ b/metadata.json @@ -12,14 +12,15 @@ "3.26", "3.28", "3.30", - "3.32", "3.34", + "3.32", "3.36", "3.38", "40", - "41" + "41", + "42" ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 33 + "version": 34 } diff --git a/prefs.js b/prefs.js index 27acbbb..1568c8d 100644 --- a/prefs.js +++ b/prefs.js @@ -226,7 +226,8 @@ Prefs.prototype = { let vbox = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, margin_start: 25, - margin_end: 25 + margin_end: 25, + vexpand: true, }) let resetBtn = new Gtk.Button({ label: "Restore Defaults", @@ -251,7 +252,7 @@ Prefs.prototype = { thset.set_boolean(boolArray[l], thset.get_default_value(boolArray[l]).unpack()) } thset.set_boolean('restartextension', true) - frame.destroy() + window.destroy() }) addIt(vbox, label) From aeb4dab55cc261a06e3ae0747043cf747a4a9042 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Sat, 9 Apr 2022 17:12:03 +0530 Subject: [PATCH 315/344] Refactor preferences --- metadata.json | 11 +- prefs.js | 449 ++++++++++++++++++++++++++++---------------------- 2 files changed, 255 insertions(+), 205 deletions(-) diff --git a/metadata.json b/metadata.json index 3cf3ac9..b0bdd23 100644 --- a/metadata.json +++ b/metadata.json @@ -3,17 +3,8 @@ "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n\u261e Add Use System Color Scheme option \n\u261e Update Preferences logic \n\u261e Filter more devices for net speed indicator \n\nFull CHANGELOG can be found on github releases page \n\nFeatures \n1. Clean UI \n2. Adjustable Refresh rate \n3. Preferences to manage extension \n4. Vertical Alignment Support \n5. Two Icon sets for Indicators \n\nFeature Highlights for Preferences \n1. Lock Mouse Actions option \n2. Advance Position options to pinpoint where to place the indicator on the Panel. \n3. Refresh time option by which you can change refresh rate value between 1.0 sec to 10.0 sec. \n4. Show Upload First option to show upload speed first \n5. Color Customizations for speed indicators \n6. Hide when Disconnected option \n7. Use Shorten Units option \n8. Limit Unit option and more... \n\nModes \n- Total net speed in b/s, kb/s, ... \n- Total net speed in B/s, KB/s, ... \n- Up & down speed in b/s, kb/s, ... \n- Up & down speed in B/s, KB/s, ... \n- Total downloads in B, KB, ... (Right click to reset counter) \n\nMouse Events \n- Left click to change modes \n- Right click(in 1-4 modes): Toggle the visibility of total loaded. \n- Right click(in 5th mode): Reset total downloaded. \n- Right Click(Four consecutive times): Toggle through horizontal/vertical alignment. \n- Middle click: Cycle through the font sizes.", "name": "Net speed Simplified", "shell-version": [ - "3.14", - "3.16", - "3.18", - "3.20", - "3.22", - "3.24", - "3.26", - "3.28", - "3.30", - "3.34", "3.32", + "3.34", "3.36", "3.38", "40", diff --git a/prefs.js b/prefs.js index 1568c8d..27830d5 100644 --- a/prefs.js +++ b/prefs.js @@ -8,7 +8,7 @@ const Me = imports.misc.extensionUtils.getCurrentExtension(), Convenience = Me.imports.convenience, schema = "org.gnome.shell.extensions.netspeedsimplified" -function init() {} +function init() { } function buildPrefsWidget() { let prefs = new Prefs(schema) @@ -22,18 +22,50 @@ function Prefs(schema) { Prefs.prototype = { settings: null, - init: function(schema) { + init: function (schema) { let settings = new Convenience.getSettings(schema) this.settings = settings }, - buildPrefsWidget: function() { - let thset = this.settings + _buildPrefsWidget: function () { + let settings = this.settings let isGnome40 = ShellVersion >= 40 + let crStng + + function fetchSettings() { + crStng = { + refreshtime: settings.get_double('refreshtime'), + mode: settings.get_int('mode'), + fontmode: settings.get_int('fontmode'), + togglebool: settings.get_boolean('togglebool'), + isvertical: settings.get_boolean('isvertical'), + chooseiconset: settings.get_int('chooseiconset'), + limitunit: settings.get_int('limitunit'), + reverseindicators: settings.get_boolean('reverseindicators'), + lockmouseactions: settings.get_boolean('lockmouseactions'), + minwidth: settings.get_double('minwidth'), + iconstoright: settings.get_boolean('iconstoright'), + textalign: settings.get_int('textalign'), + customfont: settings.get_string('customfont'), + hideindicator: settings.get_boolean('hideindicator'), + shortenunits: settings.get_boolean('shortenunits'), + wpos: settings.get_int('wpos'), + systemcolr: settings.get_boolean('systemcolr'), + wposext: settings.get_int('wposext'), + uscolor: settings.get_string('uscolor'), + dscolor: settings.get_string('dscolor'), + tscolor: settings.get_string('tscolor'), + tdcolor: settings.get_string('tdcolor') + } + } + + fetchSettings() function addIt(element, child) { - if (isGnome40) element.append(child) - else element.add(child) + if (isGnome40) + element.append(child) + else + element.add(child) } function newGtkBox() { @@ -44,176 +76,196 @@ Prefs.prototype = { }) } - function vBoxSpinBtn(getDouble, whichHbox, getLbl = "", getTooTip = "", lwer, uper, stpInc = 1, digs = 0, nume = true, pgeInc = 1, pgeSiz = 0, clmrate = 1) { - let boolComp = (thset.get_double(getDouble) === thset.get_default_value(getDouble).unpack()) - getLbl = boolComp ? getLbl : - `${getLbl}` - let whichLbl = new Gtk.Label({ - label: getLbl, - use_markup: true, - xalign: 0, - tooltip_text: getTooTip - }) - let whichSpinBtn = new Gtk.SpinButton({ - adjustment: new Gtk.Adjustment({ - lower: lwer, - upper: uper, - step_increment: stpInc, - page_increment: pgeInc, - page_size: pgeSiz - }), - climb_rate: clmrate, - digits: digs, - numeric: nume, - }) - whichSpinBtn.set_value(thset.get_double(getDouble)) - whichSpinBtn.connect('value-changed', () => { - this.rTValue = parseFloat(whichSpinBtn.get_value().toFixed(1)) - if (thset.get_double(getDouble) !== this.rTValue) { - thset.set_double(getDouble, this.rTValue) - thset.set_boolean('restartextension', true) - } - }) - whichLbl.set_hexpand(true) - addIt(whichHbox, whichLbl) - addIt(whichHbox, whichSpinBtn) - - addIt(vbox, whichHbox) - } - - function vBoxAddSeleCt(getInt, whichHbox, getLbl, aRray = [], getTooTip = "") { - let boolComp = (thset.get_int(getInt) == thset.get_default_value(getInt).unpack()) - getLbl = boolComp ? getLbl : - `${getLbl}` - let tootext = boolComp ? "" : "The Value is Changed" - - let whichLbl = new Gtk.Label({ - label: getLbl, - use_markup: true, - xalign: 0, - tooltip_text: getTooTip - }) - let whichVlue = new Gtk.ComboBoxText({ - halign: Gtk.Align.END, - tooltip_text: tootext - }) - - for (i in aRray) { - whichVlue.append_text(aRray[i]) + class NssSpinBtn { + constructor(name, whichHbox, getLbl = "", getTooTip = "", lwer, uper, stpInc = 1, digs = 0, nume = true, pgeInc = 1, pgeSiz = 0, clmrate = 1) { + let boolComp = (crStng[name] === settings.get_default_value(name).unpack()) + getLbl = boolComp ? getLbl : + `${getLbl}` + let whichLbl = new Gtk.Label({ + label: getLbl, + use_markup: true, + xalign: 0, + tooltip_text: getTooTip + }) + let whichSpinBtn = new Gtk.SpinButton({ + adjustment: new Gtk.Adjustment({ + lower: lwer, + upper: uper, + step_increment: stpInc, + page_increment: pgeInc, + page_size: pgeSiz + }), + climb_rate: clmrate, + digits: digs, + numeric: nume, + }) + whichSpinBtn.set_value(crStng[name]) + whichSpinBtn.connect('value-changed', () => { + this.rTValue = parseFloat(whichSpinBtn.get_value().toFixed(1)) + if (crStng[name] !== this.rTValue) { + settings.set_double(name, this.rTValue) + settings.set_boolean('restartextension', true) + } + + crStng[name] = this.rTValue + }) + whichLbl.set_hexpand(true) + addIt(whichHbox, whichLbl) + addIt(whichHbox, whichSpinBtn) + + addIt(vbox, whichHbox) } - - whichVlue.set_active(Math.round(thset.get_int(getInt))) - whichVlue.connect('changed', (widget) => { - let valueMode = widget.get_active() - thset.set_int(getInt, valueMode) - thset.set_boolean('restartextension', true) - }) - whichLbl.set_hexpand(true) - addIt(whichHbox, whichLbl) - addIt(whichHbox, whichVlue) - - addIt(vbox, whichHbox) } - function vBoxAddTgglBtn(whichHbox, getLbl, getBool, getTooTip = "", func) { - let boolComp = true - if (func == undefined) { - boolComp = (thset.get_boolean(getBool) == thset.get_default_value(getBool).unpack()) + class NssComboBox { + constructor(name, whichHbox, getLbl, aRray = [], getTooTip = "") { + let boolComp = (crStng[name] == settings.get_default_value(name).unpack()) getLbl = boolComp ? getLbl : `${getLbl}` + let tootext = boolComp ? "" : "The Value is Changed" + + let whichLbl = new Gtk.Label({ + label: getLbl, + use_markup: true, + xalign: 0, + tooltip_text: getTooTip + }) + let whichVlue = new Gtk.ComboBoxText({ + halign: Gtk.Align.END, + tooltip_text: tootext + }) + + aRray.forEach((val, _, __) => whichVlue.append_text(val)) + + + whichVlue.set_active(crStng[name]) + whichVlue.connect('changed', (widget) => { + let valueMode = widget.get_active() + settings.set_int(name, valueMode) + settings.set_boolean('restartextension', true) + + crStng[name] = valueMode + }) + whichLbl.set_hexpand(true) + addIt(whichHbox, whichLbl) + addIt(whichHbox, whichVlue) + + addIt(vbox, whichHbox) } - let tootext = boolComp ? "" : "The Value is Changed" - let whichLbl = new Gtk.Label({ - label: getLbl, - use_markup: true, - xalign: 0, - tooltip_text: getTooTip - }) - let whichVlue = new Gtk.Switch({ - active: getBool ? thset.get_boolean(getBool) : false, - tooltip_text: tootext - }) - whichVlue.connect('notify::active', (widget) => { - if (func != undefined) func(widget.active) - else { - thset.set_boolean(getBool, widget.active) - thset.set_boolean('restartextension', true) - } - }) - - whichLbl.set_hexpand(true) - addIt(whichHbox, whichLbl) - addIt(whichHbox, whichVlue) - - addIt(vbox, whichHbox) - } - - function vBoxAddColorButton(whichHbox, getLbl, getColor, getToolTip = "") { - //Deterime whether the option value is changed from default value - let boolComp = (thset.get_string(getColor) == thset.get_default_value(getColor).unpack()) - getLbl = boolComp ? getLbl : `${getLbl}` - let tootext = boolComp ? "" : "The Value is Changed" - - //Create the option name - let whichLbl = new Gtk.Label({ - label: getLbl, - use_markup: true, - xalign: 0, - tooltip_text: getToolTip - }) - - //Create RGBA - let rgba = new Gdk.RGBA() - rgba.parse(thset.get_string(getColor)) - - //Create ColorButton - let colorButton = new Gtk.ColorButton({ - tooltip_text: tootext - }) - colorButton.set_rgba(rgba) - colorButton.connect('color-set', (widget) => { //On the event of modification - rgba = widget.get_rgba() - thset.set_string(getColor, rgba.to_string()) - thset.set_boolean('restartextension', true) - }) - - whichLbl.set_hexpand(true) - addIt(whichHbox, whichLbl) - addIt(whichHbox, colorButton) - - addIt(vbox, whichHbox) } - function vBoxAddEntry(whichHbox, getLbl, getString, getTooTip = "", func) { - let boolComp = (thset.get_string(getString) == thset.get_default_value(getString).unpack()) - getLbl = boolComp ? getLbl : - `${getLbl}` - let tootext = boolComp ? "" : "The Value is Changed" - let whichLbl = new Gtk.Label({ - label: getLbl, - use_markup: true, - xalign: 0, - tooltip_text: getTooTip - }) - let whichVlue = new Gtk.Entry({ - text: thset.get_string(getString), - tooltip_text: tootext, - placeholder_text: "Press Enter to apply" - }) - whichVlue.connect('activate', (widget) => { - thset.set_string(getString, widget.get_text()) - if (func != undefined) { - func(widget.active) - } else { - thset.set_boolean('restartextension', true) + class NssToggleBtn { + constructor(whichHbox, getLbl, name, getTooTip = "", func) { + let boolComp = true + if (func == undefined) { + boolComp = (crStng[name] == settings.get_default_value(name).unpack()) + getLbl = boolComp ? getLbl : + `${getLbl}` } - }) + let tootext = boolComp ? "" : "The Value is Changed" + let whichLbl = new Gtk.Label({ + label: getLbl, + use_markup: true, + xalign: 0, + tooltip_text: getTooTip + }) + let whichVlue = new Gtk.Switch({ + active: name ? crStng[name] : false, + tooltip_text: tootext + }) + whichVlue.connect('notify::active', (widget) => { + if (func != undefined) + func(widget.active) + else { + settings.set_boolean(name, widget.active) + settings.set_boolean('restartextension', true) + } + + crStng[name] = widget.active + }) + + whichLbl.set_hexpand(true) + addIt(whichHbox, whichLbl) + addIt(whichHbox, whichVlue) + + addIt(vbox, whichHbox) + } + } - whichLbl.set_hexpand(true) - addIt(whichHbox, whichLbl) - addIt(whichHbox, whichVlue) + class NssColorBtn { + constructor(whichHbox, getLbl, name, getToolTip = "") { + //Deterime whether the option value is changed from default value + let boolComp = (crStng[name] == settings.get_default_value(name).unpack()) + getLbl = boolComp ? getLbl : `${getLbl}` + let tootext = boolComp ? "" : "The Value is Changed" + + //Create the option name + let whichLbl = new Gtk.Label({ + label: getLbl, + use_markup: true, + xalign: 0, + tooltip_text: getToolTip + }) + + //Create RGBA + let rgba = new Gdk.RGBA() + rgba.parse(crStng[name]) + + //Create ColorButton + let colorButton = new Gtk.ColorButton({ + tooltip_text: tootext + }) + colorButton.set_rgba(rgba) + colorButton.connect('color-set', (widget) => { + rgba = widget.get_rgba() + settings.set_string(name, rgba.to_string()) + settings.set_boolean('restartextension', true) + + crStng[name] = rgba.to_string() + }) + + whichLbl.set_hexpand(true) + addIt(whichHbox, whichLbl) + addIt(whichHbox, colorButton) + + addIt(vbox, whichHbox) + } + } - addIt(vbox, whichHbox) + class NssEntry { + constructor(whichHbox, getLbl, name, getTooTip = "", func) { + let boolComp = (crStng[name] == settings.get_default_value(name).unpack()) + getLbl = boolComp ? getLbl : + `${getLbl}` + let tootext = boolComp ? "" : "The Value is Changed" + let whichLbl = new Gtk.Label({ + label: getLbl, + use_markup: true, + xalign: 0, + tooltip_text: getTooTip + }) + let whichVlue = new Gtk.Entry({ + text: crStng[name], + tooltip_text: tootext, + placeholder_text: "Press Enter to apply" + }) + whichVlue.connect('activate', (widget) => { + settings.set_string(name, widget.get_text()) + if (func != undefined) { + func(widget.active) + } else { + settings.set_boolean('restartextension', true) + } + + crStng[name] = widget.get_text() + }) + + whichLbl.set_hexpand(true) + addIt(whichHbox, whichLbl) + addIt(whichHbox, whichVlue) + + addIt(vbox, whichHbox) + } } let frame = new Gtk.ScrolledWindow() @@ -240,113 +292,114 @@ Prefs.prototype = { let doubleArray = ["refreshtime", "minwidth"] let boolArray = ["isvertical", "togglebool", "reverseindicators", "lockmouseactions", "hideindicator", "shortenunits", "iconstoright"] for (i in strArray) { - thset.set_string(strArray[i], thset.get_default_value(strArray[i]).unpack()) + settings.set_string(strArray[i], settings.get_default_value(strArray[i]).unpack()) } for (j in intArray) { - thset.set_int(intArray[j], thset.get_default_value(intArray[j]).unpack()) + settings.set_int(intArray[j], settings.get_default_value(intArray[j]).unpack()) } for (k in doubleArray) { - thset.set_double(doubleArray[k], thset.get_default_value(doubleArray[k]).unpack()) + settings.set_double(doubleArray[k], settings.get_default_value(doubleArray[k]).unpack()) } for (l in boolArray) { - thset.set_boolean(boolArray[l], thset.get_default_value(boolArray[l]).unpack()) + settings.set_boolean(boolArray[l], settings.get_default_value(boolArray[l]).unpack()) } - thset.set_boolean('restartextension', true) - window.destroy() + settings.set_boolean('restartextension', true) + fetchSettings() }) addIt(vbox, label) //For Position let hboxWPos = newGtkBox() - vBoxAddSeleCt("wpos", hboxWPos, "Position on the Panel", ["Right", "Left", "Center"], "Choose where to Place the extension on the Panel") + new NssComboBox("wpos", hboxWPos, "Position on the Panel", ["Right", "Left", "Center"], "Choose where to Place the extension on the Panel") //For Position Extras let hboxWPosExt = newGtkBox() - vBoxAddSeleCt("wposext", hboxWPosExt, "Position(Advanced)", ["Prefer Right Side", "Prefer Left Side"], "Choose further where to Place the extension") + new NssComboBox("wposext", hboxWPosExt, "Position(Advanced)", ["Prefer Right Side", "Prefer Left Side"], "Choose further where to Place the extension") //Refresh time let hboxRTime = newGtkBox() - vBoxSpinBtn("refreshtime", hboxRTime, "Refresh Time", "Change Refresh time value from anywhere b/w 1 to 10", 1.0, 10.0, .1, 1) + new NssSpinBtn("refreshtime", hboxRTime, "Refresh Time", "Change Refresh time value from anywhere b/w 1 to 10", 1.0, 10.0, .1, 1) //For Modes let hboxMode = newGtkBox() - vBoxAddSeleCt("mode", hboxMode, "Mode", ["Mode 1", "Mode 2", "Mode 3", "Mode 4", "Mode 5"], "Choose which mode to load") + new NssComboBox("mode", hboxMode, "Mode", ["Mode 1", "Mode 2", "Mode 3", "Mode 4", "Mode 5"], "Choose which mode to load") //For FontModes let hboxFontMode = newGtkBox() - vBoxAddSeleCt("fontmode", hboxFontMode, "Font Mode", ["Default", "Smallest", "Smaller", "Small", "Large"], "Choose which font to display") + new NssComboBox("fontmode", hboxFontMode, "Font Mode", ["Default", "Smallest", "Smaller", "Small", "Large"], "Choose which font to display") //For Vertical Alignment let hboxVertical = newGtkBox() - vBoxAddTgglBtn(hboxVertical, "Vertical Align", "isvertical", "Changing it will toggle Vertical Alignment") + new NssToggleBtn(hboxVertical, "Vertical Align", "isvertical", "Changing it will toggle Vertical Alignment") //For Default sigma View let hboxToggleBool = newGtkBox() - vBoxAddTgglBtn(hboxToggleBool, "Show Total Download speed", "togglebool", "Enabling it will show sigma by default") + new NssToggleBtn(hboxToggleBool, "Show Total Download speed", "togglebool", "Enabling it will show sigma by default") //For Toggling Old Icons let hboxIconset = newGtkBox() - vBoxAddSeleCt("chooseiconset", hboxIconset, "Choose Icons Set", [" ⬇, ⬆", " 🡳, 🡱", " ↓, ↑"], "Choose which icon set to display") + new NssComboBox("chooseiconset", hboxIconset, "Choose Icons Set", [" ⬇, ⬆", " 🡳, 🡱", " ↓, ↑"], "Choose which icon set to display") //Text align for net speed let hboxText = newGtkBox() - vBoxAddSeleCt("textalign", hboxText, "Text Align", ["Left", "Right", "Center"], "Align Text of net speed") + new NssComboBox("textalign", hboxText, "Text Align", ["Left", "Right", "Center"], "Align Text of net speed") //Toggle icon to right let hboxIconsRight = newGtkBox() - vBoxAddTgglBtn(hboxIconsRight, "Move icons to the right", "iconstoright", "Move icons to the right") + new NssToggleBtn(hboxIconsRight, "Move icons to the right", "iconstoright", "Move icons to the right") //For Limiting upper limit of speed let hboxLimitUnit = newGtkBox() - vBoxAddSeleCt("limitunit", hboxLimitUnit, "Limit Unit", ["(None)", 'K', 'M', 'G', 'T', 'P', 'E', 'Z'], "Choose unit limitation set to display") + new NssComboBox("limitunit", hboxLimitUnit, "Limit Unit", ["(None)", 'K', 'M', 'G', 'T', 'P', 'E', 'Z'], "Choose unit limitation set to display") //For Hide When Disconnected let hboxHideInd = newGtkBox() - vBoxAddTgglBtn(hboxHideInd, "Hide When Disconnected", "hideindicator", "Enabling it will Hide Indicator when disconnected") + new NssToggleBtn(hboxHideInd, "Hide When Disconnected", "hideindicator", "Enabling it will Hide Indicator when disconnected") //For Shorten Units let hboxShUni = newGtkBox() - vBoxAddTgglBtn(hboxShUni, "Shorten Units", "shortenunits", "Enabling it will result in shorten units like K instead of KB") + new NssToggleBtn(hboxShUni, "Shorten Units", "shortenunits", "Enabling it will result in shorten units like K instead of KB") //For Reversing the download and upload indicators let hboxRevInd = newGtkBox() - vBoxAddTgglBtn(hboxRevInd, "Show Upload First", "reverseindicators", "Enabling it will reverse the upload and download speed indicators") + new NssToggleBtn(hboxRevInd, "Show Upload First", "reverseindicators", "Enabling it will reverse the upload and download speed indicators") //For Lock Mouse Actions let hboxLckMuseAct = newGtkBox() - vBoxAddTgglBtn(hboxLckMuseAct, "Lock Mouse Actions", "lockmouseactions", "Enabling it will Lock Mouse Actions") + new NssToggleBtn(hboxLckMuseAct, "Lock Mouse Actions", "lockmouseactions", "Enabling it will Lock Mouse Actions") //Minimum Width let hboxMinWidth = newGtkBox() - vBoxSpinBtn("minwidth", hboxMinWidth, "Minimum Width", "Change Minimum Width value from anywhere b/w 3em to 10em", 3.0, 10.0, .5, 1) + new NssSpinBtn("minwidth", hboxMinWidth, "Minimum Width", "Change Minimum Width value from anywhere b/w 3em to 10em", 3.0, 10.0, .5, 1) //For Custom Font name let hboxCustFont = newGtkBox() - vBoxAddEntry(hboxCustFont, "Custom Font Name", "customfont", "Enter the font name you want, you can also write style here for all elements except indicators") + new NssEntry(hboxCustFont, "Custom Font Name", "customfont", "Enter the font name you want, you can also write style here for all elements except indicators") //For Custom Font name let hboxSysColr = newGtkBox() - vBoxAddTgglBtn(hboxSysColr, "Use System Color Scheme", "systemcolr", "Enabling it will allow changing font color dynamically based on panel color") + new NssToggleBtn(hboxSysColr, "Use System Color Scheme", "systemcolr", "Enabling it will allow changing font color dynamically based on panel color") //Upload Speed Color let usColorButton = newGtkBox() - vBoxAddColorButton(usColorButton, "Upload Speed Color", "uscolor", "Select the upload speed color") + new NssColorBtn(usColorButton, "Upload Speed Color", "uscolor", "Select the upload speed color") //Download Speed Color let dsColorButton = newGtkBox() - vBoxAddColorButton(dsColorButton, "Download Speed Color", "dscolor", "Select the download speed color") + new NssColorBtn(dsColorButton, "Download Speed Color", "dscolor", "Select the download speed color") //Total Speed Color let tsColorButton = newGtkBox() - vBoxAddColorButton(tsColorButton, "Total Speed Color", "tscolor", "Select the total speed color") + new NssColorBtn(tsColorButton, "Total Speed Color", "tscolor", "Select the total speed color") //Total Download Color let tdColorButton = newGtkBox() - vBoxAddColorButton(tdColorButton, "Total Download Color", "tdcolor", "Select the total download color") + new NssColorBtn(tdColorButton, "Total Download Color", "tdcolor", "Select the total download color") addIt(vbox, resetBtn) - if (isGnome40) frame.child = vbox + if (isGnome40) + frame.child = vbox else { frame.add(vbox) frame.show_all() @@ -354,5 +407,11 @@ Prefs.prototype = { } return frame - } + }, + get buildPrefsWidget() { + return this._buildPrefsWidget + }, + set buildPrefsWidget(value) { + this._buildPrefsWidget = value + }, } From f97f696f8ed1c1d8e558f6d80ccfdfd5dc867c8b Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Sat, 9 Apr 2022 17:18:47 +0530 Subject: [PATCH 316/344] Format files and Remove Convenience.js --- extension.js | 18 +++++++++--------- prefs.js | 12 +++--------- 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/extension.js b/extension.js index 7529796..5c2ec85 100644 --- a/extension.js +++ b/extension.js @@ -6,7 +6,7 @@ const Clutter = imports.gi.Clutter, PanelMenu = imports.ui.panelMenu, Mainloop = imports.mainloop, Me = imports.misc.extensionUtils.getCurrentExtension(), - Convenience = Me.imports.convenience, + ExtensionUtils = imports.misc.extensionUtils, schema = 'org.gnome.shell.extensions.netspeedsimplified', ButtonName = "ShowNetSpeedButton", rCConst = 4; //Right Click 4 times to toggle Vertical Alignment @@ -84,10 +84,10 @@ function speedToString(amount, rMode = 0) { let speed_map = B_UNITS.map( (rMode == 1 && (crStng.mode == 1 || crStng.mode == 3 || crStng.mode == 4)) ? v => v : //KB - (rMode == 1 && (crStng.mode == 0 || crStng.mode == 2)) ? v => v.toLowerCase() : //kb - (crStng.mode == 0 || crStng.mode == 2) ? v => v.toLowerCase() + "/s" : //kb/s - (crStng.mode == 1 || crStng.mode == 3) ? v => v + "/s" : //KB/s - v => v); // Others + (rMode == 1 && (crStng.mode == 0 || crStng.mode == 2)) ? v => v.toLowerCase() : //kb + (crStng.mode == 0 || crStng.mode == 2) ? v => v.toLowerCase() + "/s" : //kb/s + (crStng.mode == 1 || crStng.mode == 3) ? v => v + "/s" : //KB/s + v => v); // Others if (amount === 0) return " 0.0 " + speed_map[0]; if (crStng.mode == 0 || crStng.mode == 2) amount = amount * 8; @@ -248,7 +248,7 @@ function initNs() { //Create the button and add to Main.panel nsButton = new PanelMenu.Button(0.0, ButtonName); - (!crStng.lckMuseAct) ? nsButton.connect('button-press-event', mouseEventHandler): null; + (!crStng.lckMuseAct) ? nsButton.connect('button-press-event', mouseEventHandler) : null; nsButton.add_child(nsActor); Main.panel.addToStatusArea(ButtonName, nsButton, nsPosAdv(), nsPos()); @@ -339,7 +339,7 @@ function parseStat() { resetCount = count; } - (speed || speedUp) ? hideCount = 0: hideCount <= 8 ? hideCount++ : null + (speed || speedUp) ? hideCount = 0 : hideCount <= 8 ? hideCount++ : null if (hideCount <= 8) { nsButton == null ? initNs() : null @@ -378,10 +378,10 @@ function _settingsChanged() { } } -function init() {} +function init() { } function enable() { - settings = Convenience.getSettings(schema); + settings = ExtensionUtils.getSettings(schema); fetchSettings(); // Automatically creates the netSpeed Button. this._settingsChangedId = settings.connect('changed', this._settingsChanged); diff --git a/prefs.js b/prefs.js index 27830d5..ca00741 100644 --- a/prefs.js +++ b/prefs.js @@ -5,7 +5,7 @@ const Config = imports.misc.config const ShellVersion = parseFloat(Config.PACKAGE_VERSION) const Me = imports.misc.extensionUtils.getCurrentExtension(), - Convenience = Me.imports.convenience, + ExtensionUtils = imports.misc.extensionUtils, schema = "org.gnome.shell.extensions.netspeedsimplified" function init() { } @@ -23,11 +23,11 @@ function Prefs(schema) { Prefs.prototype = { settings: null, init: function (schema) { - let settings = new Convenience.getSettings(schema) + let settings = ExtensionUtils.getSettings(schema) this.settings = settings }, - _buildPrefsWidget: function () { + buildPrefsWidget: function () { let settings = this.settings let isGnome40 = ShellVersion >= 40 let crStng @@ -408,10 +408,4 @@ Prefs.prototype = { return frame }, - get buildPrefsWidget() { - return this._buildPrefsWidget - }, - set buildPrefsWidget(value) { - this._buildPrefsWidget = value - }, } From 3e79af512a4ea52196ca476af0cf5f251c819668 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Sat, 9 Apr 2022 17:19:04 +0530 Subject: [PATCH 317/344] Cleanup --- convenience.js | 92 -------------------------------------------------- 1 file changed, 92 deletions(-) delete mode 100644 convenience.js diff --git a/convenience.js b/convenience.js deleted file mode 100644 index 4fc44ab..0000000 --- a/convenience.js +++ /dev/null @@ -1,92 +0,0 @@ -/* -*- mode: js -*- */ -/* - Copyright (c) 2011-2012, Giovanni Campagna - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the GNOME nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -const Gettext = imports.gettext; -const Gio = imports.gi.Gio; - -const Config = imports.misc.config; -const ExtensionUtils = imports.misc.extensionUtils; - -/** - * initTranslations: - * @domain: (optional): the gettext domain to use - * - * Initialize Gettext to load translations from extensionsdir/locale. - * If @domain is not provided, it will be taken from metadata['gettext-domain'] - */ -function initTranslations(domain) { - let extension = ExtensionUtils.getCurrentExtension(); - - domain = domain || extension.metadata['gettext-domain']; - - // check if this extension was built with "make zip-file", and thus - // has the locale files in a subfolder - // otherwise assume that extension has been installed in the - // same prefix as gnome-shell - let localeDir = extension.dir.get_child('locale'); - if (localeDir.query_exists(null)) - Gettext.bindtextdomain(domain, localeDir.get_path()); - else - Gettext.bindtextdomain(domain, Config.LOCALEDIR); -} - -/** - * getSettings: - * @schema: (optional): the GSettings schema id - * - * Builds and return a GSettings schema for @schema, using schema files - * in extensionsdir/schemas. If @schema is not provided, it is taken from - * metadata['settings-schema']. - */ -function getSettings(schema) { - let extension = ExtensionUtils.getCurrentExtension(); - - schema = schema || extension.metadata['settings-schema']; - - const GioSSS = Gio.SettingsSchemaSource; - - // check if this extension was built with "make zip-file", and thus - // has the schema files in a subfolder - // otherwise assume that extension has been installed in the - // same prefix as gnome-shell (and therefore schemas are available - // in the standard folders) - let schemaDir = extension.dir.get_child('schemas'); - let schemaSource; - if (schemaDir.query_exists(null)) - schemaSource = GioSSS.new_from_directory(schemaDir.get_path(), - GioSSS.get_default(), - false); - else - schemaSource = GioSSS.get_default(); - - let schemaObj = schemaSource.lookup(schema, true); - if (!schemaObj) - throw new Error('Schema ' + schema + ' could not be found for extension ' - + extension.metadata.uuid + '. Please check your installation.'); - - return new Gio.Settings({ settings_schema: schemaObj }); -} From 1bbf9c21b4e68f9a1ea8ddd117e296f814deba01 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Sat, 9 Apr 2022 19:59:49 +0530 Subject: [PATCH 318/344] Null them --- extension.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/extension.js b/extension.js index 5c2ec85..3f8e9d2 100644 --- a/extension.js +++ b/extension.js @@ -392,6 +392,9 @@ function enable() { } function disable() { + crStng = null; + settings = null; + Mainloop.source_remove(timeout); nsDestroy(); } From 81964231c5821edac516efd7d53fe6dabb403c33 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Sat, 9 Apr 2022 20:04:28 +0530 Subject: [PATCH 319/344] Bump version --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index b0bdd23..7a69203 100644 --- a/metadata.json +++ b/metadata.json @@ -13,5 +13,5 @@ ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 34 + "version": 35 } From 94c4fbb4b7ec1543dbb1ca1a658b002cc9ca8555 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Sat, 1 Oct 2022 12:15:38 +0530 Subject: [PATCH 320/344] Only Support GNOME >= 40 --- metadata.json | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/metadata.json b/metadata.json index 7a69203..c0d0e4b 100644 --- a/metadata.json +++ b/metadata.json @@ -1,17 +1,14 @@ { "_generated": "Generated by SweetTooth, do not edit", - "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n\u261e Add Use System Color Scheme option \n\u261e Update Preferences logic \n\u261e Filter more devices for net speed indicator \n\nFull CHANGELOG can be found on github releases page \n\nFeatures \n1. Clean UI \n2. Adjustable Refresh rate \n3. Preferences to manage extension \n4. Vertical Alignment Support \n5. Two Icon sets for Indicators \n\nFeature Highlights for Preferences \n1. Lock Mouse Actions option \n2. Advance Position options to pinpoint where to place the indicator on the Panel. \n3. Refresh time option by which you can change refresh rate value between 1.0 sec to 10.0 sec. \n4. Show Upload First option to show upload speed first \n5. Color Customizations for speed indicators \n6. Hide when Disconnected option \n7. Use Shorten Units option \n8. Limit Unit option and more... \n\nModes \n- Total net speed in b/s, kb/s, ... \n- Total net speed in B/s, KB/s, ... \n- Up & down speed in b/s, kb/s, ... \n- Up & down speed in B/s, KB/s, ... \n- Total downloads in B, KB, ... (Right click to reset counter) \n\nMouse Events \n- Left click to change modes \n- Right click(in 1-4 modes): Toggle the visibility of total loaded. \n- Right click(in 5th mode): Reset total downloaded. \n- Right Click(Four consecutive times): Toggle through horizontal/vertical alignment. \n- Middle click: Cycle through the font sizes.", + "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed\n\nFull CHANGELOG can be found on github releases page\n\nFeatures \n1. Clean UI \n2. Adjustable Refresh rate \n3. Preferences to manage extension \n4. Vertical Alignment Support \n5. Two Icon sets for Indicators \n\nFeature Highlights for Preferences \n1. Lock Mouse Actions option \n2. Advance Position options to pinpoint where to place the indicator on the Panel. \n3. Refresh time option by which you can change refresh rate value between 1.0 sec to 10.0 sec. \n4. Option to show upload speed first \n5. Color Customizations for speed indicators \n6. Option to Hide when Disconnected \n7. Option to use shorter units like K/s instead of KB/s \n8. Limit Unit option and more... \n\nModes \n- Total net speed in multiples of b/s \n- Total net speed in multiples of B/s \n- Combined Up & down speed in multiples of b/s \n- Combined Up & down speed in multiples of B/s \n- Total transferred data in multiples of B (Right click to reset counter) \n\nMouse Events \n- Left click to change modes \n- Right click(in 1-4 modes): Toggle the visibility of total loaded. \n- Right click(in 5th mode): Reset total transfer data. \n- Right Click(Four consecutive times): Toggle through horizontal/vertical alignment. \n- Middle click: Cycle through the font sizes.", "name": "Net speed Simplified", "shell-version": [ - "3.32", - "3.34", - "3.36", - "3.38", "40", "41", - "42" + "42", + "43" ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 35 + "version": 36 } From 81e77521f5d6ff2f5e9e0b9e6b22c64b9abd99e6 Mon Sep 17 00:00:00 2001 From: souhaiebtar Date: Sun, 2 Oct 2022 11:05:11 +0100 Subject: [PATCH 321/344] add compatibility with gnome shell 42.4 based on commit in "biji/simplenetspeed" (https://github.com/biji/simplenetspeed/commit/9f6d11e9caccda74368dd9af44bc60157546e09e) --- extension.js | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/extension.js b/extension.js index 3f8e9d2..57327a7 100644 --- a/extension.js +++ b/extension.js @@ -116,6 +116,14 @@ function getStyle(isIcon = false) { return (isIcon) ? 'size-' + (String(crStng.fontmode)) : ('forall size-' + String(crStng.fontmode)) } +function byteArrayToString(bytes) { + if (global.TextDecoder) { + return new TextDecoder().decode(bytes); + } + + return imports.byteArray.toString(bytes); +} + function initNsLabels() { let extraInfo = crStng.cusFont ? "font-family: " + crStng.cusFont + "; " : ""; let extraLabelInfo = extraInfo + "min-width: " + crStng.minWidth + "em; "; @@ -300,15 +308,16 @@ function mouseEventHandler(widget, event) { function parseStat() { try { let input_file = Gio.file_new_for_path('/proc/net/dev'); - let fstream = input_file.read(null); - let dstream = Gio.DataInputStream.new(fstream); + let [, contents, etag] = input_file.load_contents(null); + contents = byteArrayToString(contents); + let lines = contents.split('\n'); let count = 0; let countUp = 0; let line; - while (line = dstream.read_line(null)) { - line = String(line); + for (let i=0;i Date: Sun, 2 Oct 2022 15:41:53 +0530 Subject: [PATCH 322/344] Remove Compatibility for GNOME SHELL < 40 --- prefs.js | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/prefs.js b/prefs.js index ca00741..bdf429f 100644 --- a/prefs.js +++ b/prefs.js @@ -29,7 +29,6 @@ Prefs.prototype = { buildPrefsWidget: function () { let settings = this.settings - let isGnome40 = ShellVersion >= 40 let crStng function fetchSettings() { @@ -62,10 +61,7 @@ Prefs.prototype = { fetchSettings() function addIt(element, child) { - if (isGnome40) - element.append(child) - else - element.add(child) + element.append(child) } function newGtkBox() { @@ -398,13 +394,7 @@ Prefs.prototype = { new NssColorBtn(tdColorButton, "Total Download Color", "tdcolor", "Select the total download color") addIt(vbox, resetBtn) - if (isGnome40) - frame.child = vbox - else { - frame.add(vbox) - frame.show_all() - frame.connect('destroy', Gtk.main_quit) - } + frame.child = vbox return frame }, From 0dfb043d6633b98bb0ad793da18258d010441433 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 4 Oct 2022 17:49:47 +0530 Subject: [PATCH 323/344] Update Readme with latest changes --- README.md | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index ddc2388..4b7c966 100644 --- a/README.md +++ b/README.md @@ -30,12 +30,7 @@ -***Tested on GNOME 40, 3.38 and 3.36*** - -#### What's new -- [x] Add **Use System Color Scheme** option -- [x] Update Preferences logic -- [x] Filter more devices for net speed indicator +***Tested on GNOME 40 and above till 43, for Gnome shell < 40 you can use the previous versions*** **Note** : Full CHANGELOG can be found on [github releases](https://github.com/prateekmedia/netspeedsimplified/releases) page @@ -49,7 +44,7 @@ #### Feature Highlights for Preferences - [x] **Lock Mouse Actions** option to Freeze [Mouse Events](#mouse-events) - [x] **Advance Position** options to pinpoint where to place the indicator on the Panel -- [x] **Refresh time** field by which you can change refresh rate value between 1.0 sec to 10.0 sec +- [x] **Refresh time** field by which you can change refresh rate value between 1 and 10 seconds - [x] **Show Upload First** option to show upload speed first - [x] **Color Customizations** for speed indicators - [x] **Hide when Disconnected** option @@ -60,16 +55,16 @@ and more... If you faced an **issue** then you can **[file an issue here](https://github.com/prateekmedia/netspeedsimplified/issues)** #### Modes -- **Total net speed** in b/s, kb/s, ... -- **Total net speed** in B/s, KB/s, ... -- **Up & down speed** in b/s, kb/s, ... -- **Up & down speed** in B/s, KB/s, ... -- **Total downloads** in B, KB, ... (Right click to reset counter) +1. **Total net speed** in terms of bits per second +1. **Total net speed** in terms of bytes per second +1. **Up & down speed** in terms of bits per second +1. **Up & down speed** in terms of bytes per second +1. **Total downloads** in terms of bytes (Right click to reset counter) #### Mouse Events - **Left click**: Cycle through the [modes](#modes). -- **Right click(in 1-4 modes)**: Toggle the visibility of total downloaded. -- **Right click(in 5th mode)**: Reset total downloaded. +- **Right click(in 1-4 modes)**: Toggle the visibility of total transfer data. +- **Right click(in 5th mode)**: Reset total transfer data - **Right Click(Four consecutive times)**: Toggle through horizontal/vertical alignment. - **Middle click**: Cycle through the font sizes. From 534785f11fa1c647042f6334d35586865389e723 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 4 Oct 2022 17:51:24 +0530 Subject: [PATCH 324/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4b7c966..4c432fd 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ -***Tested on GNOME 40 and above till 43, for Gnome shell < 40 you can use the previous versions*** +***Supports GNOME 43, for GNOME SHELL < 40 you can use the previous versions of this extension*** **Note** : Full CHANGELOG can be found on [github releases](https://github.com/prateekmedia/netspeedsimplified/releases) page From f8ae8c7986e4b950c274d362285b0a8220529d7a Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 4 Oct 2022 17:55:03 +0530 Subject: [PATCH 325/344] Update metadata.json --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index c0d0e4b..bd5eb2d 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,6 @@ { "_generated": "Generated by SweetTooth, do not edit", - "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed\n\nFull CHANGELOG can be found on github releases page\n\nFeatures \n1. Clean UI \n2. Adjustable Refresh rate \n3. Preferences to manage extension \n4. Vertical Alignment Support \n5. Two Icon sets for Indicators \n\nFeature Highlights for Preferences \n1. Lock Mouse Actions option \n2. Advance Position options to pinpoint where to place the indicator on the Panel. \n3. Refresh time option by which you can change refresh rate value between 1.0 sec to 10.0 sec. \n4. Option to show upload speed first \n5. Color Customizations for speed indicators \n6. Option to Hide when Disconnected \n7. Option to use shorter units like K/s instead of KB/s \n8. Limit Unit option and more... \n\nModes \n- Total net speed in multiples of b/s \n- Total net speed in multiples of B/s \n- Combined Up & down speed in multiples of b/s \n- Combined Up & down speed in multiples of B/s \n- Total transferred data in multiples of B (Right click to reset counter) \n\nMouse Events \n- Left click to change modes \n- Right click(in 1-4 modes): Toggle the visibility of total loaded. \n- Right click(in 5th mode): Reset total transfer data. \n- Right Click(Four consecutive times): Toggle through horizontal/vertical alignment. \n- Middle click: Cycle through the font sizes.", + "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed\n\nFull CHANGELOG can be found on github releases page\n\nFeatures \n1. Clean UI \n2. Adjustable Refresh rate \n3. Preferences to manage extension \n4. Vertical Alignment Support \n5. Two Icon sets for Indicators \n\nFeature Highlights for Preferences \n1. Lock Mouse Actions option \n2. Advance Position options to pinpoint where to place the indicator on the Panel. \n3. Refresh time option by which you can change refresh rate value between 1.0 and 10.0 seconds. \n4. Option to show upload speed first \n5. Color Customizations for speed indicators \n6. Option to Hide when Disconnected \n7. Option to use shorter units like K/s instead of KB/s \n8. Limit Unit option and more... \n\nModes \n1. Total net speed in terms of bits per second \n2. Total net speed in terms of bytes per second \n3. Combined Up & down speed in terms of bits per second \n4. Combined Up & down speed in terms of bytes per second \n5. Total transferred data in terms of bytes (Right click to reset counter) \n\nMouse Events \n- Left click to change modes \n- Right click(in 1-4 modes): Toggle the visibility of total transfer data. \n- Right click(in 5th mode): Reset total transfer data. \n- Right Click(Four consecutive times): Toggle through horizontal/vertical alignment. \n- Middle click: Cycle through the font sizes.", "name": "Net speed Simplified", "shell-version": [ "40", From 36c16ea67119ea301743178a796269313e190773 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 4 Oct 2022 17:57:35 +0530 Subject: [PATCH 326/344] chore: set refresh time to 2.0 by default --- schemas/gschemas.compiled | Bin 1715 -> 1715 bytes ....extensions.netspeedsimplified.gschema.xml | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index 5eb1a162e0853e51f90e7748d514457ba7d9a659..b744b162fe43d5a4c789655c7a5dc3a8965c1c92 100644 GIT binary patch delta 15 XcmdnYyP0>xF=i$Phs`ILUo!y!E^Gy- delta 15 XcmdnYyP0>xF=nP8_M1;Izh(jeH7*98 diff --git a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml index 352afd3..96ed2a0 100644 --- a/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml +++ b/schemas/org.gnome.shell.extensions.netspeedsimplified.gschema.xml @@ -19,7 +19,7 @@
      - 1.5 + 2.0 false From e996714914da32074a7836b733ef846101c71089 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 19 Apr 2023 07:06:11 +0530 Subject: [PATCH 327/344] support gnome 44 --- metadata.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/metadata.json b/metadata.json index bd5eb2d..984ab69 100644 --- a/metadata.json +++ b/metadata.json @@ -6,9 +6,10 @@ "40", "41", "42", - "43" + "43", + "44" ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 36 + "version": 37 } From c9a5a83408c1605b49c8163a9c30d20caff1b256 Mon Sep 17 00:00:00 2001 From: Victor Tseng Date: Sun, 23 Apr 2023 11:24:42 +0800 Subject: [PATCH 328/344] add docker and wireguard interfaces to filter list (#48) --- README.md | 16 ++++++++++++++++ extension.js | 3 +++ 2 files changed, 19 insertions(+) diff --git a/README.md b/README.md index 4c432fd..792dcfc 100644 --- a/README.md +++ b/README.md @@ -73,6 +73,22 @@ If you faced an **issue** then you can **[file an issue here](https://github.com - [m0hithreddy](https://github.com/m0hithreddy) for his support in rewriting extension.js with Clutter and rewriting readme.md, Adopting Make build system and more.. [Know More](https://github.com/prateekmedia/netspeedsimplified/graphs/contributors) +### Troubleshooting + +#### VPN traffics calculated twice +- Some VPN software creates a tun/tap interface (eg. [WireGuard](https://wireguard.com), [OpenVPN](https://openvpn.net)) and traffics are being calculated twice. Currently interfaces with these naming scheme is filtered out, make sure the interface created by your VPN software fits one of the following: + - `lo`: loop-back interface + - `ifb[0-9]+`: intermediate functional block pseudo network interface + - `lxdbr[0-9]+`: bridge interface created by [LXD](https://linuxcontainers.org/lxd/) + - `virbr[0-9]+`: bridge interface created by [LibVirt](https://libvirt.org) + - `docker[0-0]+`: bridge interface created by [Docker](https://docker.com) + - `veth[0-9a-zA-Z]+`: virtual network interface created by [Docker](https://docker.com) + - `br[0-9]+`: bridge interface + - `vnet[0-9]+`: virtual network interface + - `tun[0-9]+`: TUN (l3 tunnel) interface + - `tap[0-9]+`: TAP (l2 tunnel) interface + - `wg[0-9]+`: tunnel interface created by [WireGuard](https://wireguard.com) +

      Installing Manually

      ### Quick install diff --git a/extension.js b/extension.js index 57327a7..f994ebd 100644 --- a/extension.js +++ b/extension.js @@ -328,8 +328,11 @@ function parseStat() { !fields[0].match(/^virbr[0-9]+/) && !fields[0].match(/^br[0-9]+/) && !fields[0].match(/^vnet[0-9]+/) && + !fields[0].match(/^veth[0-9a-zA-Z]+/) && + !fields[0].match(/^docker[0-9]+/) && !fields[0].match(/^tun[0-9]+/) && !fields[0].match(/^tap[0-9]+/) && + !fields[0].match(/^wg[0-9]+/) && !isNaN(parseInt(fields[1]))) { count = count + parseInt(fields[1]) + parseInt(fields[9]); countUp = countUp + parseInt(fields[9]); From 29e5563e254ffec0ea78ca383f30972b8e07d771 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Sun, 23 Apr 2023 08:55:09 +0530 Subject: [PATCH 329/344] Update metadata.json --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index 984ab69..a9ebbc8 100644 --- a/metadata.json +++ b/metadata.json @@ -11,5 +11,5 @@ ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 37 + "version": 39 } From 6fc80b79df2162ec160c53d94d559c3c0bd03652 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Sun, 23 Apr 2023 09:07:50 +0530 Subject: [PATCH 330/344] fix: remove unwanted files from MakeFile --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 3afe354..b081081 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ EXT_HOME=~/.local/share/gnome-shell/extensions/netspeedsimplified@prateekmedia.e all: install -install: convenience.js extension.js metadata.json prefs.js stylesheet.css schemas/gschemas.compiled +install: extension.js metadata.json prefs.js stylesheet.css schemas/gschemas.compiled #Remove old files(if any) rm -rf ${EXT_HOME} #Create directory structure @@ -10,7 +10,7 @@ install: convenience.js extension.js metadata.json prefs.js stylesheet.css schem mkdir -p ${EXT_HOME}/schemas #Copy compulsory files - cp convenience.js extension.js metadata.json prefs.js stylesheet.css ${EXT_HOME} + cp extension.js metadata.json prefs.js stylesheet.css ${EXT_HOME} cp schemas/gschemas.compiled ${EXT_HOME}/schemas #Optional files From b59dda72ca9384998cd60a7cebe241fe061d30c9 Mon Sep 17 00:00:00 2001 From: Amirreza A <45117218+amrear@users.noreply.github.com> Date: Wed, 26 Jul 2023 20:15:56 +0330 Subject: [PATCH 331/344] Changed the text of "Show Total Download speed" toggle. (#52) --- prefs.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prefs.js b/prefs.js index bdf429f..a04bd69 100644 --- a/prefs.js +++ b/prefs.js @@ -330,7 +330,7 @@ Prefs.prototype = { //For Default sigma View let hboxToggleBool = newGtkBox() - new NssToggleBtn(hboxToggleBool, "Show Total Download speed", "togglebool", "Enabling it will show sigma by default") + new NssToggleBtn(hboxToggleBool, "Show Total Data Transfer", "togglebool", "Enabling it will always show the sigma") //For Toggling Old Icons let hboxIconset = newGtkBox() From a1273fb9961ee3dd8125870c71fcbfe93fbffc46 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Thu, 17 Aug 2023 18:43:14 +0530 Subject: [PATCH 332/344] Create FUNDING.yml --- .github/FUNDING.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..184a4fd --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,13 @@ +# These are supported funding model platforms + +github: [prateekmedia] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] From 4d8544b5c747fa2acaed619e61cc57063ae93ad9 Mon Sep 17 00:00:00 2001 From: Victor Tseng Date: Mon, 11 Sep 2023 00:51:33 +0800 Subject: [PATCH 333/344] add waydroid interface to filter list (#49) --- README.md | 1 + extension.js | 1 + 2 files changed, 2 insertions(+) diff --git a/README.md b/README.md index 792dcfc..76a4651 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,7 @@ If you faced an **issue** then you can **[file an issue here](https://github.com - `tun[0-9]+`: TUN (l3 tunnel) interface - `tap[0-9]+`: TAP (l2 tunnel) interface - `wg[0-9]+`: tunnel interface created by [WireGuard](https://wireguard.com) + - `waydroid[0-9]+`: tunnel interface created by [Waydroid](https://waydro.id)

      Installing Manually

      diff --git a/extension.js b/extension.js index f994ebd..6f1d010 100644 --- a/extension.js +++ b/extension.js @@ -333,6 +333,7 @@ function parseStat() { !fields[0].match(/^tun[0-9]+/) && !fields[0].match(/^tap[0-9]+/) && !fields[0].match(/^wg[0-9]+/) && + !fields[0].match(/^waydroid[0-9]+/) && !isNaN(parseInt(fields[1]))) { count = count + parseInt(fields[1]) + parseInt(fields[9]); countUp = countUp + parseInt(fields[9]); From 40eb4bfddc79ece649e6dfbf2be019ba06b6a5a2 Mon Sep 17 00:00:00 2001 From: Remisiki <36284341+remisiki@users.noreply.github.com> Date: Fri, 13 Oct 2023 01:13:44 -0400 Subject: [PATCH 334/344] support gnome 45 (#59) --- extension.js | 62 ++++++++++++++++++++++++++-------------------------- prefs.js | 49 +++++++++++++---------------------------- 2 files changed, 46 insertions(+), 65 deletions(-) diff --git a/extension.js b/extension.js index 6f1d010..16343f0 100644 --- a/extension.js +++ b/extension.js @@ -1,13 +1,12 @@ //Imports -const Clutter = imports.gi.Clutter, - St = imports.gi.St, - Main = imports.ui.main, - Gio = imports.gi.Gio, - PanelMenu = imports.ui.panelMenu, - Mainloop = imports.mainloop, - Me = imports.misc.extensionUtils.getCurrentExtension(), - ExtensionUtils = imports.misc.extensionUtils, - schema = 'org.gnome.shell.extensions.netspeedsimplified', +import Clutter from 'gi://Clutter'; +import St from 'gi://St'; +import Gio from 'gi://Gio'; +import GLib from 'gi://GLib'; +import * as Main from 'resource:///org/gnome/shell/ui/main.js'; +import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js'; +import {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js'; +const schema = 'org.gnome.shell.extensions.netspeedsimplified', ButtonName = "ShowNetSpeedButton", rCConst = 4; //Right Click 4 times to toggle Vertical Alignment @@ -381,32 +380,33 @@ function parseStat() { return true; } -function _settingsChanged() { - if (settings.get_boolean('restartextension')) { - settings.set_boolean('restartextension', false); - disable(); - enable(); - parseStat(); + +export default class NetSpeedSimplifiedExtension extends Extension { + _settingsChanged() { + if (settings.get_boolean('restartextension')) { + settings.set_boolean('restartextension', false); + this.disable(); + this.enable(); + parseStat(); + } } -} -function init() { } + enable() { + settings = this.getSettings(schema); -function enable() { - settings = ExtensionUtils.getSettings(schema); + fetchSettings(); // Automatically creates the netSpeed Button. + this._settingsChangedId = settings.connect('changed', () => this._settingsChanged()); + parseStat(); - fetchSettings(); // Automatically creates the netSpeed Button. - this._settingsChangedId = settings.connect('changed', this._settingsChanged); - parseStat(); + //Run infinite loop. + timeout = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, crStng.refreshTime, parseStat); + } - //Run infinite loop. - timeout = Mainloop.timeout_add_seconds(crStng.refreshTime, parseStat); -} + disable() { + crStng = null; + settings = null; -function disable() { - crStng = null; - settings = null; - - Mainloop.source_remove(timeout); - nsDestroy(); + GLib.source_remove(timeout); + nsDestroy(); + } } diff --git a/prefs.js b/prefs.js index a04bd69..df61c11 100644 --- a/prefs.js +++ b/prefs.js @@ -1,34 +1,15 @@ -const Gtk = imports.gi.Gtk, - Gdk = imports.gi.Gdk - -const Config = imports.misc.config +import Gtk from 'gi://Gtk'; +import Gdk from 'gi://Gdk'; +import {ExtensionPreferences, gettext as _} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js'; +import * as Config from 'resource:///org/gnome/Shell/Extensions/js/misc/config.js'; const ShellVersion = parseFloat(Config.PACKAGE_VERSION) +const schema = "org.gnome.shell.extensions.netspeedsimplified" -const Me = imports.misc.extensionUtils.getCurrentExtension(), - ExtensionUtils = imports.misc.extensionUtils, - schema = "org.gnome.shell.extensions.netspeedsimplified" - -function init() { } - -function buildPrefsWidget() { - let prefs = new Prefs(schema) - - return prefs.buildPrefsWidget() -} - -function Prefs(schema) { - this.init(schema) -} - -Prefs.prototype = { - settings: null, - init: function (schema) { - let settings = ExtensionUtils.getSettings(schema) - this.settings = settings - }, +export default class NetSpeedSimplifiedPreferences extends ExtensionPreferences { + getPreferencesWidget() { + let settings = this.getSettings(schema); + window._settings = settings; - buildPrefsWidget: function () { - let settings = this.settings let crStng function fetchSettings() { @@ -287,16 +268,16 @@ Prefs.prototype = { let intArray = ["wpos", "wposext", "mode", "fontmode", "chooseiconset", "textalign"] let doubleArray = ["refreshtime", "minwidth"] let boolArray = ["isvertical", "togglebool", "reverseindicators", "lockmouseactions", "hideindicator", "shortenunits", "iconstoright"] - for (i in strArray) { + for (const i in strArray) { settings.set_string(strArray[i], settings.get_default_value(strArray[i]).unpack()) } - for (j in intArray) { + for (const j in intArray) { settings.set_int(intArray[j], settings.get_default_value(intArray[j]).unpack()) } - for (k in doubleArray) { + for (const k in doubleArray) { settings.set_double(doubleArray[k], settings.get_default_value(doubleArray[k]).unpack()) } - for (l in boolArray) { + for (const l in boolArray) { settings.set_boolean(boolArray[l], settings.get_default_value(boolArray[l]).unpack()) } settings.set_boolean('restartextension', true) @@ -396,6 +377,6 @@ Prefs.prototype = { addIt(vbox, resetBtn) frame.child = vbox - return frame - }, + return frame; + } } From b68347f8c07652ab86438fefec88d422fb2f244d Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Fri, 13 Oct 2023 10:51:49 +0530 Subject: [PATCH 335/344] feat: prepare for release (#60) --- README.md | 3 +- extension.js | 134 +++++++++++++++++++++++++------------------------- metadata.json | 8 +-- prefs.js | 38 +++++++------- 4 files changed, 90 insertions(+), 93 deletions(-) diff --git a/README.md b/README.md index 76a4651..76d2f22 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ -***Supports GNOME 43, for GNOME SHELL < 40 you can use the previous versions of this extension*** +***Supports GNOME 45, for GNOME SHELL < 45 you can use the previous versions of this extension*** **Note** : Full CHANGELOG can be found on [github releases](https://github.com/prateekmedia/netspeedsimplified/releases) page @@ -71,6 +71,7 @@ If you faced an **issue** then you can **[file an issue here](https://github.com #### *Special Thanks to* - [biji](https://github.com/biji) for Creating [simplenetspeed](https://github.com/biji/simplenetspeed) - [m0hithreddy](https://github.com/m0hithreddy) for his support in rewriting extension.js with Clutter and rewriting readme.md, Adopting Make build system and more.. +- [remisiki](https://github.com/remisiki) for adding support for GNOME 45 [Know More](https://github.com/prateekmedia/netspeedsimplified/graphs/contributors) ### Troubleshooting diff --git a/extension.js b/extension.js index 16343f0..27e81dc 100644 --- a/extension.js +++ b/extension.js @@ -5,7 +5,7 @@ import Gio from 'gi://Gio'; import GLib from 'gi://GLib'; import * as Main from 'resource:///org/gnome/shell/ui/main.js'; import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js'; -import {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js'; +import { Extension, gettext as _ } from 'resource:///org/gnome/shell/extensions/extension.js'; const schema = 'org.gnome.shell.extensions.netspeedsimplified', ButtonName = "ShowNetSpeedButton", rCConst = 4; //Right Click 4 times to toggle Vertical Alignment @@ -20,10 +20,10 @@ let settings, timeout, B_UNITS; // Settings -var crStng; //Initialized in enable() +var currentSettings; //Initialized in enable() function fetchSettings() { - crStng = { + currentSettings = { refreshTime: settings.get_double('refreshtime'), mode: settings.get_int('mode'), fontmode: settings.get_int('fontmode'), @@ -48,16 +48,16 @@ function fetchSettings() { tdColor: settings.get_string('tdcolor') }; - B_UNITS = (crStng.shortenUnits) ? ['B', 'K', 'M', 'G', 'T', 'P', 'E', 'Z'] : [' B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB']; + B_UNITS = (currentSettings.shortenUnits) ? ['B', 'K', 'M', 'G', 'T', 'P', 'E', 'Z'] : [' B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB']; initNs(); } function pushSettings() { - settings.set_int('mode', crStng.mode); - settings.set_int('fontmode', crStng.fontmode); - settings.set_boolean('togglebool', crStng.showTotalDwnld); - settings.set_boolean('isvertical', crStng.isVertical); + settings.set_int('mode', currentSettings.mode); + settings.set_int('fontmode', currentSettings.fontmode); + settings.set_boolean('togglebool', currentSettings.showTotalDwnld); + settings.set_boolean('isvertical', currentSettings.isVertical); initNs(); } @@ -68,39 +68,39 @@ function DIcons(iNum) { ["⬇", "⬆"], ["🡳", "🡱"], ["↓", "↑"] - ][crStng.chooseIconSet][iNum]; + ][currentSettings.chooseIconSet][iNum]; } function nsPos() { - return ["right", "left", "center"][crStng.nsPos]; + return ["right", "left", "center"][currentSettings.nsPos]; } function nsPosAdv() { - return [3, 0][crStng.nsPosAdv]; + return [3, 0][currentSettings.nsPosAdv]; } function speedToString(amount, rMode = 0) { let speed_map = B_UNITS.map( - (rMode == 1 && (crStng.mode == 1 || crStng.mode == 3 || crStng.mode == 4)) ? v => v : //KB - (rMode == 1 && (crStng.mode == 0 || crStng.mode == 2)) ? v => v.toLowerCase() : //kb - (crStng.mode == 0 || crStng.mode == 2) ? v => v.toLowerCase() + "/s" : //kb/s - (crStng.mode == 1 || crStng.mode == 3) ? v => v + "/s" : //KB/s + (rMode == 1 && (currentSettings.mode == 1 || currentSettings.mode == 3 || currentSettings.mode == 4)) ? v => v : //KB + (rMode == 1 && (currentSettings.mode == 0 || currentSettings.mode == 2)) ? v => v.toLowerCase() : //kb + (currentSettings.mode == 0 || currentSettings.mode == 2) ? v => v.toLowerCase() + "/s" : //kb/s + (currentSettings.mode == 1 || currentSettings.mode == 3) ? v => v + "/s" : //KB/s v => v); // Others if (amount === 0) return " 0.0 " + speed_map[0]; - if (crStng.mode == 0 || crStng.mode == 2) amount = amount * 8; + if (currentSettings.mode == 0 || currentSettings.mode == 2) amount = amount * 8; let unit = 0; while (amount >= 1000) { // 1M=1024K, 1MB/s=1000MB/s - if (crStng.limitunit != 0 && unit >= crStng.limitunit) { + if (currentSettings.limitunit != 0 && unit >= currentSettings.limitunit) { break; } amount /= 1000; unit++; } - let digits = (crStng.mode == 4 || rMode != 0) ? 2 /* For floats like 21.11 and total speed mode */ : 1 //For floats like 21.2 + let digits = (currentSettings.mode == 4 || rMode != 0) ? 2 /* For floats like 21.11 and total speed mode */ : 1 //For floats like 21.2 let spaceNum = 3 - Math.ceil(Math.log10(amount + 1)); spaceNum < 0 ? spaceNum = 0 : null @@ -112,7 +112,7 @@ function speedToString(amount, rMode = 0) { var usLabel, dsLabel, tsLabel, tdLabel, usIcon, dsIcon, tsIcon, tdIcon; function getStyle(isIcon = false) { - return (isIcon) ? 'size-' + (String(crStng.fontmode)) : ('forall size-' + String(crStng.fontmode)) + return (isIcon) ? 'size-' + (String(currentSettings.fontmode)) : ('forall size-' + String(currentSettings.fontmode)) } function byteArrayToString(bytes) { @@ -124,64 +124,64 @@ function byteArrayToString(bytes) { } function initNsLabels() { - let extraInfo = crStng.cusFont ? "font-family: " + crStng.cusFont + "; " : ""; - let extraLabelInfo = extraInfo + "min-width: " + crStng.minWidth + "em; "; - extraLabelInfo += "text-align: " + ["left", "right", "center"][crStng.textAlign] + "; "; + let extraInfo = currentSettings.cusFont ? "font-family: " + currentSettings.cusFont + "; " : ""; + let extraLabelInfo = extraInfo + "min-width: " + currentSettings.minWidth + "em; "; + extraLabelInfo += "text-align: " + ["left", "right", "center"][currentSettings.textAlign] + "; "; usLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: extraLabelInfo + (crStng.systemColr ? "" : "color: " + crStng.usColor) + style: extraLabelInfo + (currentSettings.systemColr ? "" : "color: " + currentSettings.usColor) }); dsLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: extraLabelInfo + (crStng.systemColr ? "" : "color: " + crStng.dsColor) + style: extraLabelInfo + (currentSettings.systemColr ? "" : "color: " + currentSettings.dsColor) }); tsLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: extraLabelInfo + (crStng.systemColr ? "" : "color: " + crStng.tsColor) + style: extraLabelInfo + (currentSettings.systemColr ? "" : "color: " + currentSettings.tsColor) }); tdLabel = new St.Label({ text: '--', y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(), - style: extraLabelInfo + (crStng.systemColr ? "" : "color: " + crStng.tdColor) + style: extraLabelInfo + (currentSettings.systemColr ? "" : "color: " + currentSettings.tdColor) }); usIcon = new St.Label({ text: DIcons(1), y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(true), - style: extraInfo + (crStng.systemColr ? "" : "color: " + crStng.usColor) + style: extraInfo + (currentSettings.systemColr ? "" : "color: " + currentSettings.usColor) }); dsIcon = new St.Label({ text: DIcons(0), y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(true), - style: extraInfo + (crStng.systemColr ? "" : "color: " + crStng.dsColor) + style: extraInfo + (currentSettings.systemColr ? "" : "color: " + currentSettings.dsColor) }); tsIcon = new St.Label({ text: "⇅", y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(true), - style: extraInfo + (crStng.systemColr ? "" : "color: " + crStng.tsColor) + style: extraInfo + (currentSettings.systemColr ? "" : "color: " + currentSettings.tsColor) }); tdIcon = new St.Label({ text: "Σ", y_align: Clutter.ActorAlign.CENTER, style_class: getStyle(true), - style: extraInfo + (crStng.systemColr ? "" : "color: " + crStng.tdColor) + style: extraInfo + (currentSettings.systemColr ? "" : "color: " + currentSettings.tdColor) }); } @@ -217,45 +217,45 @@ function initNs() { y_align: Clutter.ActorAlign.CENTER }) - let verticalConstant = (crStng.isVertical) ? 1 : 0; + let verticalConstant = (currentSettings.isVertical) ? 1 : 0; let heightConstant = 1 + verticalConstant; let widthConstant = 2 * (1 - verticalConstant); //Attach the components to the grid. - if (crStng.mode == 0 || crStng.mode == 1) { - nsLayout.attach(!crStng.iconsToRight ? tsIcon : tsLabel, 0, 1, 1, 1); - nsLayout.attach(!crStng.iconsToRight ? tsLabel : tsIcon, 1, 1, 1, 1); + if (currentSettings.mode == 0 || currentSettings.mode == 1) { + nsLayout.attach(!currentSettings.iconsToRight ? tsIcon : tsLabel, 0, 1, 1, 1); + nsLayout.attach(!currentSettings.iconsToRight ? tsLabel : tsIcon, 1, 1, 1, 1); - if (crStng.showTotalDwnld) { - nsLayout.attach(!crStng.iconsToRight ? tdIcon : tdLabel, widthConstant, heightConstant, 1, 1); - nsLayout.attach(!crStng.iconsToRight ? tdLabel : tdIcon, 1 + widthConstant, heightConstant, 1, 1); + if (currentSettings.showTotalDwnld) { + nsLayout.attach(!currentSettings.iconsToRight ? tdIcon : tdLabel, widthConstant, heightConstant, 1, 1); + nsLayout.attach(!currentSettings.iconsToRight ? tdLabel : tdIcon, 1 + widthConstant, heightConstant, 1, 1); } - } else if (crStng.mode == 2 || crStng.mode == 3) { - if (crStng.revIndicator) { - nsLayout.attach(!crStng.iconsToRight ? usIcon : usLabel, 0, 1, 1, 1); - nsLayout.attach(!crStng.iconsToRight ? usLabel : usIcon, 1, 1, 1, 1); - nsLayout.attach(!crStng.iconsToRight ? dsIcon : dsLabel, widthConstant, heightConstant, 1, 1); - nsLayout.attach(!crStng.iconsToRight ? dsLabel : dsIcon, 1 + widthConstant, heightConstant, 1, 1); + } else if (currentSettings.mode == 2 || currentSettings.mode == 3) { + if (currentSettings.revIndicator) { + nsLayout.attach(!currentSettings.iconsToRight ? usIcon : usLabel, 0, 1, 1, 1); + nsLayout.attach(!currentSettings.iconsToRight ? usLabel : usIcon, 1, 1, 1, 1); + nsLayout.attach(!currentSettings.iconsToRight ? dsIcon : dsLabel, widthConstant, heightConstant, 1, 1); + nsLayout.attach(!currentSettings.iconsToRight ? dsLabel : dsIcon, 1 + widthConstant, heightConstant, 1, 1); } else { - nsLayout.attach(!crStng.iconsToRight ? dsIcon : dsLabel, 0, 1, 1, 1); - nsLayout.attach(!crStng.iconsToRight ? dsLabel : dsIcon, 1, 1, 1, 1); - nsLayout.attach(!crStng.iconsToRight ? usIcon : usLabel, widthConstant, heightConstant, 1, 1); - nsLayout.attach(!crStng.iconsToRight ? usLabel : usIcon, 1 + widthConstant, heightConstant, 1, 1); + nsLayout.attach(!currentSettings.iconsToRight ? dsIcon : dsLabel, 0, 1, 1, 1); + nsLayout.attach(!currentSettings.iconsToRight ? dsLabel : dsIcon, 1, 1, 1, 1); + nsLayout.attach(!currentSettings.iconsToRight ? usIcon : usLabel, widthConstant, heightConstant, 1, 1); + nsLayout.attach(!currentSettings.iconsToRight ? usLabel : usIcon, 1 + widthConstant, heightConstant, 1, 1); } - if (crStng.showTotalDwnld) { - nsLayout.attach(!crStng.iconsToRight ? tdIcon : tdLabel, 2 + widthConstant, heightConstant, 1, 1); - nsLayout.attach(!crStng.iconsToRight ? tdLabel : tdIcon, 3 + widthConstant, heightConstant, 1, 1); + if (currentSettings.showTotalDwnld) { + nsLayout.attach(!currentSettings.iconsToRight ? tdIcon : tdLabel, 2 + widthConstant, heightConstant, 1, 1); + nsLayout.attach(!currentSettings.iconsToRight ? tdLabel : tdIcon, 3 + widthConstant, heightConstant, 1, 1); } } else { - nsLayout.attach(!crStng.iconsToRight ? tdIcon : tdLabel, 0, 1, 1, 1); - nsLayout.attach(!crStng.iconsToRight ? tdLabel : tdIcon, 1, 1, 1, 1); + nsLayout.attach(!currentSettings.iconsToRight ? tdIcon : tdLabel, 0, 1, 1, 1); + nsLayout.attach(!currentSettings.iconsToRight ? tdLabel : tdIcon, 1, 1, 1, 1); } //Create the button and add to Main.panel nsButton = new PanelMenu.Button(0.0, ButtonName); - (!crStng.lckMuseAct) ? nsButton.connect('button-press-event', mouseEventHandler) : null; + (!currentSettings.lckMuseAct) ? nsButton.connect('button-press-event', mouseEventHandler) : null; nsButton.add_child(nsActor); Main.panel.addToStatusArea(ButtonName, nsButton, nsPosAdv(), nsPos()); @@ -272,19 +272,19 @@ var startTime = null, function mouseEventHandler(widget, event) { if (event.get_button() == 3) { - if (crStng.mode == 4) + if (currentSettings.mode == 4) resetNextCount = true; // right click: reset downloaded sum else - crStng.showTotalDwnld = !(crStng.showTotalDwnld); // right click on other modes brings total downloaded sum + currentSettings.showTotalDwnld = !(currentSettings.showTotalDwnld); // right click on other modes brings total downloaded sum // Logic to toggle crStng.isVertical after rCConstant consequent right clicks. if (startTime == null) { startTime = new Date(); } - if (((new Date() - startTime) / 1000) <= crStng.refreshTime * 2) { + if (((new Date() - startTime) / 1000) <= currentSettings.refreshTime * 2) { if (rClickCount == rCConst - 1) { - crStng.isVertical = !(crStng.isVertical); + currentSettings.isVertical = !(currentSettings.isVertical); startTime = null; rClickCount = 0; } else rClickCount++; @@ -293,11 +293,11 @@ function mouseEventHandler(widget, event) { rClickCount = 1; } } else if (event.get_button() == 2) { // change font - crStng.fontmode++; - if (crStng.fontmode > 4) crStng.fontmode = 0; + currentSettings.fontmode++; + if (currentSettings.fontmode > 4) currentSettings.fontmode = 0; } else if (event.get_button() == 1) { - crStng.mode++; - if (crStng.mode > 4) crStng.mode = 0; + currentSettings.mode++; + if (currentSettings.mode > 4) currentSettings.mode = 0; } pushSettings(); @@ -315,7 +315,7 @@ function parseStat() { let countUp = 0; let line; - for (let i=0;i${getLbl}
      ` let whichLbl = new Gtk.Label({ @@ -76,15 +76,15 @@ export default class NetSpeedSimplifiedPreferences extends ExtensionPreferences digits: digs, numeric: nume, }) - whichSpinBtn.set_value(crStng[name]) + whichSpinBtn.set_value(currentSettings[name]) whichSpinBtn.connect('value-changed', () => { this.rTValue = parseFloat(whichSpinBtn.get_value().toFixed(1)) - if (crStng[name] !== this.rTValue) { + if (currentSettings[name] !== this.rTValue) { settings.set_double(name, this.rTValue) settings.set_boolean('restartextension', true) } - crStng[name] = this.rTValue + currentSettings[name] = this.rTValue }) whichLbl.set_hexpand(true) addIt(whichHbox, whichLbl) @@ -96,7 +96,7 @@ export default class NetSpeedSimplifiedPreferences extends ExtensionPreferences class NssComboBox { constructor(name, whichHbox, getLbl, aRray = [], getTooTip = "") { - let boolComp = (crStng[name] == settings.get_default_value(name).unpack()) + let boolComp = (currentSettings[name] == settings.get_default_value(name).unpack()) getLbl = boolComp ? getLbl : `${getLbl}` let tootext = boolComp ? "" : "The Value is Changed" @@ -115,13 +115,13 @@ export default class NetSpeedSimplifiedPreferences extends ExtensionPreferences aRray.forEach((val, _, __) => whichVlue.append_text(val)) - whichVlue.set_active(crStng[name]) + whichVlue.set_active(currentSettings[name]) whichVlue.connect('changed', (widget) => { let valueMode = widget.get_active() settings.set_int(name, valueMode) settings.set_boolean('restartextension', true) - crStng[name] = valueMode + currentSettings[name] = valueMode }) whichLbl.set_hexpand(true) addIt(whichHbox, whichLbl) @@ -135,7 +135,7 @@ export default class NetSpeedSimplifiedPreferences extends ExtensionPreferences constructor(whichHbox, getLbl, name, getTooTip = "", func) { let boolComp = true if (func == undefined) { - boolComp = (crStng[name] == settings.get_default_value(name).unpack()) + boolComp = (currentSettings[name] == settings.get_default_value(name).unpack()) getLbl = boolComp ? getLbl : `${getLbl}` } @@ -147,7 +147,7 @@ export default class NetSpeedSimplifiedPreferences extends ExtensionPreferences tooltip_text: getTooTip }) let whichVlue = new Gtk.Switch({ - active: name ? crStng[name] : false, + active: name ? currentSettings[name] : false, tooltip_text: tootext }) whichVlue.connect('notify::active', (widget) => { @@ -158,7 +158,7 @@ export default class NetSpeedSimplifiedPreferences extends ExtensionPreferences settings.set_boolean('restartextension', true) } - crStng[name] = widget.active + currentSettings[name] = widget.active }) whichLbl.set_hexpand(true) @@ -172,7 +172,7 @@ export default class NetSpeedSimplifiedPreferences extends ExtensionPreferences class NssColorBtn { constructor(whichHbox, getLbl, name, getToolTip = "") { //Deterime whether the option value is changed from default value - let boolComp = (crStng[name] == settings.get_default_value(name).unpack()) + let boolComp = (currentSettings[name] == settings.get_default_value(name).unpack()) getLbl = boolComp ? getLbl : `${getLbl}` let tootext = boolComp ? "" : "The Value is Changed" @@ -186,7 +186,7 @@ export default class NetSpeedSimplifiedPreferences extends ExtensionPreferences //Create RGBA let rgba = new Gdk.RGBA() - rgba.parse(crStng[name]) + rgba.parse(currentSettings[name]) //Create ColorButton let colorButton = new Gtk.ColorButton({ @@ -198,7 +198,7 @@ export default class NetSpeedSimplifiedPreferences extends ExtensionPreferences settings.set_string(name, rgba.to_string()) settings.set_boolean('restartextension', true) - crStng[name] = rgba.to_string() + currentSettings[name] = rgba.to_string() }) whichLbl.set_hexpand(true) @@ -211,7 +211,7 @@ export default class NetSpeedSimplifiedPreferences extends ExtensionPreferences class NssEntry { constructor(whichHbox, getLbl, name, getTooTip = "", func) { - let boolComp = (crStng[name] == settings.get_default_value(name).unpack()) + let boolComp = (currentSettings[name] == settings.get_default_value(name).unpack()) getLbl = boolComp ? getLbl : `${getLbl}` let tootext = boolComp ? "" : "The Value is Changed" @@ -222,7 +222,7 @@ export default class NetSpeedSimplifiedPreferences extends ExtensionPreferences tooltip_text: getTooTip }) let whichVlue = new Gtk.Entry({ - text: crStng[name], + text: currentSettings[name], tooltip_text: tootext, placeholder_text: "Press Enter to apply" }) @@ -234,7 +234,7 @@ export default class NetSpeedSimplifiedPreferences extends ExtensionPreferences settings.set_boolean('restartextension', true) } - crStng[name] = widget.get_text() + currentSettings[name] = widget.get_text() }) whichLbl.set_hexpand(true) From 0329a85cabe00fec23f7fa27c5dbfe9bed5bdaa3 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Sun, 15 Oct 2023 22:51:37 +0530 Subject: [PATCH 336/344] FIX Review Changes (#61) --- extension.js | 15 +- metadata.json | 2 +- prefs.js | 515 +++++++++++++++++++++++++------------------------- 3 files changed, 269 insertions(+), 263 deletions(-) diff --git a/extension.js b/extension.js index 27e81dc..38ee10b 100644 --- a/extension.js +++ b/extension.js @@ -116,11 +116,7 @@ function getStyle(isIcon = false) { } function byteArrayToString(bytes) { - if (global.TextDecoder) { - return new TextDecoder().decode(bytes); - } - - return imports.byteArray.toString(bytes); + return new TextDecoder().decode(bytes); } function initNsLabels() { @@ -405,6 +401,15 @@ export default class NetSpeedSimplifiedExtension extends Extension { disable() { currentSettings = null; settings = null; + + usLabel = null; + dsLabel = null; + tsLabel = null; + tdLabel = null; + usIcon = null; + dsIcon = null; + tsIcon = null; + tdIcon = null; GLib.source_remove(timeout); nsDestroy(); diff --git a/metadata.json b/metadata.json index cdaff56..4732c0b 100644 --- a/metadata.json +++ b/metadata.json @@ -7,5 +7,5 @@ ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 40 + "version": 41 } diff --git a/prefs.js b/prefs.js index 7c56a13..a5cf463 100644 --- a/prefs.js +++ b/prefs.js @@ -1,249 +1,250 @@ -import Gtk from 'gi://Gtk'; -import Gdk from 'gi://Gdk'; -import { ExtensionPreferences, gettext as _ } from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js'; -import * as Config from 'resource:///org/gnome/Shell/Extensions/js/misc/config.js'; -const ShellVersion = parseFloat(Config.PACKAGE_VERSION) +import Gtk from 'gi://Gtk' +import Gdk from 'gi://Gdk' +import { ExtensionPreferences, gettext as _ } from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js' +// import * as Config from 'resource:///org/gnome/Shell/Extensions/js/misc/config.js' +// const ShellVersion = parseFloat(Config.PACKAGE_VERSION) + const schema = "org.gnome.shell.extensions.netspeedsimplified" -export default class NetSpeedSimplifiedPreferences extends ExtensionPreferences { - getPreferencesWidget() { - let settings = this.getSettings(schema); - window._settings = settings; - - let currentSettings - - function fetchSettings() { - currentSettings = { - refreshtime: settings.get_double('refreshtime'), - mode: settings.get_int('mode'), - fontmode: settings.get_int('fontmode'), - togglebool: settings.get_boolean('togglebool'), - isvertical: settings.get_boolean('isvertical'), - chooseiconset: settings.get_int('chooseiconset'), - limitunit: settings.get_int('limitunit'), - reverseindicators: settings.get_boolean('reverseindicators'), - lockmouseactions: settings.get_boolean('lockmouseactions'), - minwidth: settings.get_double('minwidth'), - iconstoright: settings.get_boolean('iconstoright'), - textalign: settings.get_int('textalign'), - customfont: settings.get_string('customfont'), - hideindicator: settings.get_boolean('hideindicator'), - shortenunits: settings.get_boolean('shortenunits'), - wpos: settings.get_int('wpos'), - systemcolr: settings.get_boolean('systemcolr'), - wposext: settings.get_int('wposext'), - uscolor: settings.get_string('uscolor'), - dscolor: settings.get_string('dscolor'), - tscolor: settings.get_string('tscolor'), - tdcolor: settings.get_string('tdcolor') +let settings, currentSettings, vbox + +function fetchSettings() { + currentSettings = { + refreshtime: settings.get_double('refreshtime'), + mode: settings.get_int('mode'), + fontmode: settings.get_int('fontmode'), + togglebool: settings.get_boolean('togglebool'), + isvertical: settings.get_boolean('isvertical'), + chooseiconset: settings.get_int('chooseiconset'), + limitunit: settings.get_int('limitunit'), + reverseindicators: settings.get_boolean('reverseindicators'), + lockmouseactions: settings.get_boolean('lockmouseactions'), + minwidth: settings.get_double('minwidth'), + iconstoright: settings.get_boolean('iconstoright'), + textalign: settings.get_int('textalign'), + customfont: settings.get_string('customfont'), + hideindicator: settings.get_boolean('hideindicator'), + shortenunits: settings.get_boolean('shortenunits'), + wpos: settings.get_int('wpos'), + systemcolr: settings.get_boolean('systemcolr'), + wposext: settings.get_int('wposext'), + uscolor: settings.get_string('uscolor'), + dscolor: settings.get_string('dscolor'), + tscolor: settings.get_string('tscolor'), + tdcolor: settings.get_string('tdcolor') + } +} + +function addIt(element, child) { + element.append(child) +} + +function newGtkBox() { + return new Gtk.Box({ + orientation: Gtk.Orientation.HORIZONTAL, + margin_top: 10, + margin_bottom: 10 + }) +} + +class NssSpinBtn { + constructor(name, whichHbox, getLbl = "", getTooTip = "", lwer, uper, stpInc = 1, digs = 0, nume = true, pgeInc = 1, pgeSiz = 0, clmrate = 1) { + let boolComp = (currentSettings[name] === settings.get_default_value(name).unpack()) + getLbl = boolComp ? getLbl : + `${getLbl}` + let whichLbl = new Gtk.Label({ + label: getLbl, + use_markup: true, + xalign: 0, + tooltip_text: getTooTip + }) + let whichSpinBtn = new Gtk.SpinButton({ + adjustment: new Gtk.Adjustment({ + lower: lwer, + upper: uper, + step_increment: stpInc, + page_increment: pgeInc, + page_size: pgeSiz + }), + climb_rate: clmrate, + digits: digs, + numeric: nume, + }) + whichSpinBtn.set_value(currentSettings[name]) + whichSpinBtn.connect('value-changed', () => { + this.rTValue = parseFloat(whichSpinBtn.get_value().toFixed(1)) + if (currentSettings[name] !== this.rTValue) { + settings.set_double(name, this.rTValue) + settings.set_boolean('restartextension', true) } - } - fetchSettings() + currentSettings[name] = this.rTValue + }) + whichLbl.set_hexpand(true) + addIt(whichHbox, whichLbl) + addIt(whichHbox, whichSpinBtn) - function addIt(element, child) { - element.append(child) - } + addIt(vbox, whichHbox) + } +} - function newGtkBox() { - return new Gtk.Box({ - orientation: Gtk.Orientation.HORIZONTAL, - margin_top: 10, - margin_bottom: 10 - }) - } +class NssComboBox { + constructor(name, whichHbox, getLbl, aRray = [], getTooTip = "") { + let boolComp = (currentSettings[name] == settings.get_default_value(name).unpack()) + getLbl = boolComp ? getLbl : + `${getLbl}` + let tootext = boolComp ? "" : "The Value is Changed" - class NssSpinBtn { - constructor(name, whichHbox, getLbl = "", getTooTip = "", lwer, uper, stpInc = 1, digs = 0, nume = true, pgeInc = 1, pgeSiz = 0, clmrate = 1) { - let boolComp = (currentSettings[name] === settings.get_default_value(name).unpack()) - getLbl = boolComp ? getLbl : - `${getLbl}` - let whichLbl = new Gtk.Label({ - label: getLbl, - use_markup: true, - xalign: 0, - tooltip_text: getTooTip - }) - let whichSpinBtn = new Gtk.SpinButton({ - adjustment: new Gtk.Adjustment({ - lower: lwer, - upper: uper, - step_increment: stpInc, - page_increment: pgeInc, - page_size: pgeSiz - }), - climb_rate: clmrate, - digits: digs, - numeric: nume, - }) - whichSpinBtn.set_value(currentSettings[name]) - whichSpinBtn.connect('value-changed', () => { - this.rTValue = parseFloat(whichSpinBtn.get_value().toFixed(1)) - if (currentSettings[name] !== this.rTValue) { - settings.set_double(name, this.rTValue) - settings.set_boolean('restartextension', true) - } - - currentSettings[name] = this.rTValue - }) - whichLbl.set_hexpand(true) - addIt(whichHbox, whichLbl) - addIt(whichHbox, whichSpinBtn) - - addIt(vbox, whichHbox) - } - } + let whichLbl = new Gtk.Label({ + label: getLbl, + use_markup: true, + xalign: 0, + tooltip_text: getTooTip + }) + let whichVlue = new Gtk.ComboBoxText({ + halign: Gtk.Align.END, + tooltip_text: tootext + }) - class NssComboBox { - constructor(name, whichHbox, getLbl, aRray = [], getTooTip = "") { - let boolComp = (currentSettings[name] == settings.get_default_value(name).unpack()) - getLbl = boolComp ? getLbl : - `${getLbl}` - let tootext = boolComp ? "" : "The Value is Changed" - - let whichLbl = new Gtk.Label({ - label: getLbl, - use_markup: true, - xalign: 0, - tooltip_text: getTooTip - }) - let whichVlue = new Gtk.ComboBoxText({ - halign: Gtk.Align.END, - tooltip_text: tootext - }) - - aRray.forEach((val, _, __) => whichVlue.append_text(val)) - - - whichVlue.set_active(currentSettings[name]) - whichVlue.connect('changed', (widget) => { - let valueMode = widget.get_active() - settings.set_int(name, valueMode) - settings.set_boolean('restartextension', true) - - currentSettings[name] = valueMode - }) - whichLbl.set_hexpand(true) - addIt(whichHbox, whichLbl) - addIt(whichHbox, whichVlue) - - addIt(vbox, whichHbox) - } - } + aRray.forEach((val, _, __) => whichVlue.append_text(val)) - class NssToggleBtn { - constructor(whichHbox, getLbl, name, getTooTip = "", func) { - let boolComp = true - if (func == undefined) { - boolComp = (currentSettings[name] == settings.get_default_value(name).unpack()) - getLbl = boolComp ? getLbl : - `${getLbl}` - } - let tootext = boolComp ? "" : "The Value is Changed" - let whichLbl = new Gtk.Label({ - label: getLbl, - use_markup: true, - xalign: 0, - tooltip_text: getTooTip - }) - let whichVlue = new Gtk.Switch({ - active: name ? currentSettings[name] : false, - tooltip_text: tootext - }) - whichVlue.connect('notify::active', (widget) => { - if (func != undefined) - func(widget.active) - else { - settings.set_boolean(name, widget.active) - settings.set_boolean('restartextension', true) - } - - currentSettings[name] = widget.active - }) - - whichLbl.set_hexpand(true) - addIt(whichHbox, whichLbl) - addIt(whichHbox, whichVlue) - - addIt(vbox, whichHbox) - } - } - class NssColorBtn { - constructor(whichHbox, getLbl, name, getToolTip = "") { - //Deterime whether the option value is changed from default value - let boolComp = (currentSettings[name] == settings.get_default_value(name).unpack()) - getLbl = boolComp ? getLbl : `${getLbl}` - let tootext = boolComp ? "" : "The Value is Changed" - - //Create the option name - let whichLbl = new Gtk.Label({ - label: getLbl, - use_markup: true, - xalign: 0, - tooltip_text: getToolTip - }) - - //Create RGBA - let rgba = new Gdk.RGBA() - rgba.parse(currentSettings[name]) - - //Create ColorButton - let colorButton = new Gtk.ColorButton({ - tooltip_text: tootext - }) - colorButton.set_rgba(rgba) - colorButton.connect('color-set', (widget) => { - rgba = widget.get_rgba() - settings.set_string(name, rgba.to_string()) - settings.set_boolean('restartextension', true) - - currentSettings[name] = rgba.to_string() - }) - - whichLbl.set_hexpand(true) - addIt(whichHbox, whichLbl) - addIt(whichHbox, colorButton) - - addIt(vbox, whichHbox) - } + whichVlue.set_active(currentSettings[name]) + whichVlue.connect('changed', (widget) => { + let valueMode = widget.get_active() + settings.set_int(name, valueMode) + settings.set_boolean('restartextension', true) + + currentSettings[name] = valueMode + }) + whichLbl.set_hexpand(true) + addIt(whichHbox, whichLbl) + addIt(whichHbox, whichVlue) + + addIt(vbox, whichHbox) + } +} + +class NssToggleBtn { + constructor(whichHbox, getLbl, name, getTooTip = "", func) { + let boolComp = true + if (func == undefined) { + boolComp = (currentSettings[name] == settings.get_default_value(name).unpack()) + getLbl = boolComp ? getLbl : + `${getLbl}` } + let tootext = boolComp ? "" : "The Value is Changed" + let whichLbl = new Gtk.Label({ + label: getLbl, + use_markup: true, + xalign: 0, + tooltip_text: getTooTip + }) + let whichVlue = new Gtk.Switch({ + active: name ? currentSettings[name] : false, + tooltip_text: tootext + }) + whichVlue.connect('notify::active', (widget) => { + if (func != undefined) + func(widget.active) + else { + settings.set_boolean(name, widget.active) + settings.set_boolean('restartextension', true) + } + + currentSettings[name] = widget.active + }) + + whichLbl.set_hexpand(true) + addIt(whichHbox, whichLbl) + addIt(whichHbox, whichVlue) + + addIt(vbox, whichHbox) + } +} + +class NssColorBtn { + constructor(whichHbox, getLbl, name, getToolTip = "") { + //Deterime whether the option value is changed from default value + let boolComp = (currentSettings[name] == settings.get_default_value(name).unpack()) + getLbl = boolComp ? getLbl : `${getLbl}` + let tootext = boolComp ? "" : "The Value is Changed" + + //Create the option name + let whichLbl = new Gtk.Label({ + label: getLbl, + use_markup: true, + xalign: 0, + tooltip_text: getToolTip + }) + + //Create RGBA + let rgba = new Gdk.RGBA() + rgba.parse(currentSettings[name]) + + //Create ColorButton + let colorButton = new Gtk.ColorButton({ + tooltip_text: tootext + }) + colorButton.set_rgba(rgba) + colorButton.connect('color-set', (widget) => { + rgba = widget.get_rgba() + settings.set_string(name, rgba.to_string()) + settings.set_boolean('restartextension', true) + + currentSettings[name] = rgba.to_string() + }) - class NssEntry { - constructor(whichHbox, getLbl, name, getTooTip = "", func) { - let boolComp = (currentSettings[name] == settings.get_default_value(name).unpack()) - getLbl = boolComp ? getLbl : - `${getLbl}` - let tootext = boolComp ? "" : "The Value is Changed" - let whichLbl = new Gtk.Label({ - label: getLbl, - use_markup: true, - xalign: 0, - tooltip_text: getTooTip - }) - let whichVlue = new Gtk.Entry({ - text: currentSettings[name], - tooltip_text: tootext, - placeholder_text: "Press Enter to apply" - }) - whichVlue.connect('activate', (widget) => { - settings.set_string(name, widget.get_text()) - if (func != undefined) { - func(widget.active) - } else { - settings.set_boolean('restartextension', true) - } - - currentSettings[name] = widget.get_text() - }) - - whichLbl.set_hexpand(true) - addIt(whichHbox, whichLbl) - addIt(whichHbox, whichVlue) - - addIt(vbox, whichHbox) + whichLbl.set_hexpand(true) + addIt(whichHbox, whichLbl) + addIt(whichHbox, colorButton) + + addIt(vbox, whichHbox) + } +} + +class NssEntry { + constructor(whichHbox, getLbl, name, getTooTip = "", func) { + let boolComp = (currentSettings[name] == settings.get_default_value(name).unpack()) + getLbl = boolComp ? getLbl : + `${getLbl}` + let tootext = boolComp ? "" : "The Value is Changed" + let whichLbl = new Gtk.Label({ + label: getLbl, + use_markup: true, + xalign: 0, + tooltip_text: getTooTip + }) + let whichVlue = new Gtk.Entry({ + text: currentSettings[name], + tooltip_text: tootext, + placeholder_text: "Press Enter to apply" + }) + whichVlue.connect('activate', (widget) => { + settings.set_string(name, widget.get_text()) + if (func != undefined) { + func(widget.active) + } else { + settings.set_boolean('restartextension', true) } - } + + currentSettings[name] = widget.get_text() + }) + + whichLbl.set_hexpand(true) + addIt(whichHbox, whichLbl) + addIt(whichHbox, whichVlue) + + addIt(vbox, whichHbox) + } +} + +export default class NetSpeedSimplifiedPreferences extends ExtensionPreferences { + getPreferencesWidget() { + settings = this.getSettings(schema) + window._settings = settings + + fetchSettings() let frame = new Gtk.ScrolledWindow() let label = new Gtk.Label({ @@ -252,7 +253,7 @@ export default class NetSpeedSimplifiedPreferences extends ExtensionPreferences xalign: 0, margin_top: 15 }) - let vbox = new Gtk.Box({ + vbox = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, margin_start: 25, margin_end: 25, @@ -285,98 +286,98 @@ export default class NetSpeedSimplifiedPreferences extends ExtensionPreferences }) addIt(vbox, label) - //For Position + // For Position let hboxWPos = newGtkBox() new NssComboBox("wpos", hboxWPos, "Position on the Panel", ["Right", "Left", "Center"], "Choose where to Place the extension on the Panel") - //For Position Extras + // For Position Extras let hboxWPosExt = newGtkBox() new NssComboBox("wposext", hboxWPosExt, "Position(Advanced)", ["Prefer Right Side", "Prefer Left Side"], "Choose further where to Place the extension") - //Refresh time + // Refresh time let hboxRTime = newGtkBox() new NssSpinBtn("refreshtime", hboxRTime, "Refresh Time", "Change Refresh time value from anywhere b/w 1 to 10", 1.0, 10.0, .1, 1) - //For Modes + // For Modes let hboxMode = newGtkBox() new NssComboBox("mode", hboxMode, "Mode", ["Mode 1", "Mode 2", "Mode 3", "Mode 4", "Mode 5"], "Choose which mode to load") - //For FontModes + // For FontModes let hboxFontMode = newGtkBox() new NssComboBox("fontmode", hboxFontMode, "Font Mode", ["Default", "Smallest", "Smaller", "Small", "Large"], "Choose which font to display") - //For Vertical Alignment + // For Vertical Alignment let hboxVertical = newGtkBox() new NssToggleBtn(hboxVertical, "Vertical Align", "isvertical", "Changing it will toggle Vertical Alignment") - //For Default sigma View + // For Default sigma View let hboxToggleBool = newGtkBox() new NssToggleBtn(hboxToggleBool, "Show Total Data Transfer", "togglebool", "Enabling it will always show the sigma") - //For Toggling Old Icons + // For Toggling Old Icons let hboxIconset = newGtkBox() new NssComboBox("chooseiconset", hboxIconset, "Choose Icons Set", [" ⬇, ⬆", " 🡳, 🡱", " ↓, ↑"], "Choose which icon set to display") - //Text align for net speed + // Text align for net speed let hboxText = newGtkBox() new NssComboBox("textalign", hboxText, "Text Align", ["Left", "Right", "Center"], "Align Text of net speed") - //Toggle icon to right + // Toggle icon to right let hboxIconsRight = newGtkBox() new NssToggleBtn(hboxIconsRight, "Move icons to the right", "iconstoright", "Move icons to the right") - //For Limiting upper limit of speed + // For Limiting upper limit of speed let hboxLimitUnit = newGtkBox() new NssComboBox("limitunit", hboxLimitUnit, "Limit Unit", ["(None)", 'K', 'M', 'G', 'T', 'P', 'E', 'Z'], "Choose unit limitation set to display") - //For Hide When Disconnected + // For Hide When Disconnected let hboxHideInd = newGtkBox() new NssToggleBtn(hboxHideInd, "Hide When Disconnected", "hideindicator", "Enabling it will Hide Indicator when disconnected") - //For Shorten Units + // For Shorten Units let hboxShUni = newGtkBox() new NssToggleBtn(hboxShUni, "Shorten Units", "shortenunits", "Enabling it will result in shorten units like K instead of KB") - //For Reversing the download and upload indicators + // For Reversing the download and upload indicators let hboxRevInd = newGtkBox() new NssToggleBtn(hboxRevInd, "Show Upload First", "reverseindicators", "Enabling it will reverse the upload and download speed indicators") - //For Lock Mouse Actions + // For Lock Mouse Actions let hboxLckMuseAct = newGtkBox() new NssToggleBtn(hboxLckMuseAct, "Lock Mouse Actions", "lockmouseactions", "Enabling it will Lock Mouse Actions") - //Minimum Width + // Minimum Width let hboxMinWidth = newGtkBox() new NssSpinBtn("minwidth", hboxMinWidth, "Minimum Width", "Change Minimum Width value from anywhere b/w 3em to 10em", 3.0, 10.0, .5, 1) - //For Custom Font name + // For Custom Font name let hboxCustFont = newGtkBox() new NssEntry(hboxCustFont, "Custom Font Name", "customfont", "Enter the font name you want, you can also write style here for all elements except indicators") - //For Custom Font name + // For Custom Font name let hboxSysColr = newGtkBox() new NssToggleBtn(hboxSysColr, "Use System Color Scheme", "systemcolr", "Enabling it will allow changing font color dynamically based on panel color") - //Upload Speed Color + // Upload Speed Color let usColorButton = newGtkBox() new NssColorBtn(usColorButton, "Upload Speed Color", "uscolor", "Select the upload speed color") - //Download Speed Color + // Download Speed Color let dsColorButton = newGtkBox() new NssColorBtn(dsColorButton, "Download Speed Color", "dscolor", "Select the download speed color") - //Total Speed Color + // Total Speed Color let tsColorButton = newGtkBox() new NssColorBtn(tsColorButton, "Total Speed Color", "tscolor", "Select the total speed color") - //Total Download Color + // Total Download Color let tdColorButton = newGtkBox() new NssColorBtn(tdColorButton, "Total Download Color", "tdcolor", "Select the total download color") addIt(vbox, resetBtn) frame.child = vbox - return frame; + return frame } } From 6a939ebdc71bb53c375210f9b26f3cce94e52fbc Mon Sep 17 00:00:00 2001 From: VIPIN K P <58673683+VipinVIP@users.noreply.github.com> Date: Thu, 28 Mar 2024 23:28:47 +0530 Subject: [PATCH 337/344] add support for GNOME 46 (#67) * add support for GNOME 46 * fix: update extension version --- README.md | 2 +- metadata.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 76d2f22..8bbf146 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ -***Supports GNOME 45, for GNOME SHELL < 45 you can use the previous versions of this extension*** +***Supports GNOME 45 and 46, for GNOME SHELL < 45 you can use the previous versions of this extension*** **Note** : Full CHANGELOG can be found on [github releases](https://github.com/prateekmedia/netspeedsimplified/releases) page diff --git a/metadata.json b/metadata.json index 4732c0b..8a14624 100644 --- a/metadata.json +++ b/metadata.json @@ -3,9 +3,9 @@ "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed\n\nFull CHANGELOG can be found on github releases page\n\nFeatures \n1. Clean UI \n2. Adjustable Refresh rate \n3. Preferences to manage extension \n4. Vertical Alignment Support \n5. Two Icon sets for Indicators \n\nFeature Highlights for Preferences \n1. Lock Mouse Actions option \n2. Advance Position options to pinpoint where to place the indicator on the Panel. \n3. Refresh time option by which you can change refresh rate value between 1.0 and 10.0 seconds. \n4. Option to show upload speed first \n5. Color Customizations for speed indicators \n6. Option to Hide when Disconnected \n7. Option to use shorter units like K/s instead of KB/s \n8. Limit Unit option and more... \n\nModes \n1. Total net speed in terms of bits per second \n2. Total net speed in terms of bytes per second \n3. Combined Up & down speed in terms of bits per second \n4. Combined Up & down speed in terms of bytes per second \n5. Total transferred data in terms of bytes (Right click to reset counter) \n\nMouse Events \n- Left click to change modes \n- Right click(in 1-4 modes): Toggle the visibility of total transfer data. \n- Right click(in 5th mode): Reset total transfer data. \n- Right Click(Four consecutive times): Toggle through horizontal/vertical alignment. \n- Middle click: Cycle through the font sizes.", "name": "Net speed Simplified", "shell-version": [ - "45" + "45","46" ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 41 + "version": 42 } From 603fcf782a3e28a9b87375a48e965ce1f85e9a2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=90=E3=83=A9=20Voyager=20I?= Date: Thu, 26 Sep 2024 14:50:39 +0300 Subject: [PATCH 338/344] GNOME 47 Port (#72) --- metadata.json | 4 +++- prefs.js | 9 ++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/metadata.json b/metadata.json index 8a14624..703f3e9 100644 --- a/metadata.json +++ b/metadata.json @@ -3,7 +3,9 @@ "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed\n\nFull CHANGELOG can be found on github releases page\n\nFeatures \n1. Clean UI \n2. Adjustable Refresh rate \n3. Preferences to manage extension \n4. Vertical Alignment Support \n5. Two Icon sets for Indicators \n\nFeature Highlights for Preferences \n1. Lock Mouse Actions option \n2. Advance Position options to pinpoint where to place the indicator on the Panel. \n3. Refresh time option by which you can change refresh rate value between 1.0 and 10.0 seconds. \n4. Option to show upload speed first \n5. Color Customizations for speed indicators \n6. Option to Hide when Disconnected \n7. Option to use shorter units like K/s instead of KB/s \n8. Limit Unit option and more... \n\nModes \n1. Total net speed in terms of bits per second \n2. Total net speed in terms of bytes per second \n3. Combined Up & down speed in terms of bits per second \n4. Combined Up & down speed in terms of bytes per second \n5. Total transferred data in terms of bytes (Right click to reset counter) \n\nMouse Events \n- Left click to change modes \n- Right click(in 1-4 modes): Toggle the visibility of total transfer data. \n- Right click(in 5th mode): Reset total transfer data. \n- Right Click(Four consecutive times): Toggle through horizontal/vertical alignment. \n- Middle click: Cycle through the font sizes.", "name": "Net speed Simplified", "shell-version": [ - "45","46" + "45", + "46", + "47" ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", diff --git a/prefs.js b/prefs.js index a5cf463..2f80d64 100644 --- a/prefs.js +++ b/prefs.js @@ -240,11 +240,11 @@ class NssEntry { } export default class NetSpeedSimplifiedPreferences extends ExtensionPreferences { - getPreferencesWidget() { + async getPreferencesWidget() { settings = this.getSettings(schema) window._settings = settings - fetchSettings() + await fetchSettings() let frame = new Gtk.ScrolledWindow() let label = new Gtk.Label({ @@ -264,7 +264,7 @@ export default class NetSpeedSimplifiedPreferences extends ExtensionPreferences margin_bottom: 15 }) - resetBtn.connect("clicked", () => { + resetBtn.connect("clicked", async () => { let strArray = ["customfont", "uscolor", "dscolor", "tscolor", "tdcolor"] let intArray = ["wpos", "wposext", "mode", "fontmode", "chooseiconset", "textalign"] let doubleArray = ["refreshtime", "minwidth"] @@ -282,7 +282,7 @@ export default class NetSpeedSimplifiedPreferences extends ExtensionPreferences settings.set_boolean(boolArray[l], settings.get_default_value(boolArray[l]).unpack()) } settings.set_boolean('restartextension', true) - fetchSettings() + await fetchSettings() }) addIt(vbox, label) @@ -358,7 +358,6 @@ export default class NetSpeedSimplifiedPreferences extends ExtensionPreferences let hboxSysColr = newGtkBox() new NssToggleBtn(hboxSysColr, "Use System Color Scheme", "systemcolr", "Enabling it will allow changing font color dynamically based on panel color") - // Upload Speed Color let usColorButton = newGtkBox() new NssColorBtn(usColorButton, "Upload Speed Color", "uscolor", "Select the upload speed color") From 607857b45b89119369524d884b830f36bd0c6288 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Fri, 27 Sep 2024 00:40:47 +0530 Subject: [PATCH 339/344] chore(metadata): bump version to 43 (#73) --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index 703f3e9..2064958 100644 --- a/metadata.json +++ b/metadata.json @@ -9,5 +9,5 @@ ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 42 + "version": 43 } From 414b043031e2dc586a41cae83fc152ea0f7c52f4 Mon Sep 17 00:00:00 2001 From: Dhanush Patel <62982439+dhanushPatel112@users.noreply.github.com> Date: Wed, 19 Feb 2025 12:02:21 +0530 Subject: [PATCH 340/344] fix: resolved crash when user opens settings (#76) --- prefs.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/prefs.js b/prefs.js index 2f80d64..4929dc7 100644 --- a/prefs.js +++ b/prefs.js @@ -240,11 +240,11 @@ class NssEntry { } export default class NetSpeedSimplifiedPreferences extends ExtensionPreferences { - async getPreferencesWidget() { + getPreferencesWidget() { settings = this.getSettings(schema) window._settings = settings - await fetchSettings() + fetchSettings() let frame = new Gtk.ScrolledWindow() let label = new Gtk.Label({ @@ -282,7 +282,7 @@ export default class NetSpeedSimplifiedPreferences extends ExtensionPreferences settings.set_boolean(boolArray[l], settings.get_default_value(boolArray[l]).unpack()) } settings.set_boolean('restartextension', true) - await fetchSettings() + fetchSettings() }) addIt(vbox, label) From c69a4c21f47314e7943a3706ee7106f83d78b4d5 Mon Sep 17 00:00:00 2001 From: Naveen Prashanth <78990165+gnpaone@users.noreply.github.com> Date: Thu, 17 Apr 2025 12:58:17 +0530 Subject: [PATCH 341/344] Add support for GNOME 48 in metadata (#81) --- metadata.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index 2064958..fa41a03 100644 --- a/metadata.json +++ b/metadata.json @@ -5,7 +5,8 @@ "shell-version": [ "45", "46", - "47" + "47", + "48" ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", From 18df987e5956d1e9504d47179ee684d1330c4462 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Mon, 5 May 2025 13:18:14 +0530 Subject: [PATCH 342/344] chore: bump version to 44 --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index fa41a03..25205d5 100644 --- a/metadata.json +++ b/metadata.json @@ -10,5 +10,5 @@ ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension", - "version": 43 + "version": 44 } From ca878ee649f5886c0f6a7bc9006a73f84c46863b Mon Sep 17 00:00:00 2001 From: cyril <1302282+cyrilf@users.noreply.github.com> Date: Mon, 5 May 2025 09:49:19 +0200 Subject: [PATCH 343/344] fix: remove unwanted files from quick-install.sh (#75) Remove a non-existing file Similar to a previous commit: https://github.com/prateekmedia/netspeedsimplified/commit/6fc80b79df2162ec160c53d94d559c3c0bd03652 --- quick-install.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/quick-install.sh b/quick-install.sh index a2f3995..5eb39ba 100644 --- a/quick-install.sh +++ b/quick-install.sh @@ -13,7 +13,6 @@ mkdir -p ${EXT_HOME} mkdir -p ${EXT_HOME}/schemas #Copy required files -curl ${PROJECT_HOME}/convenience.js -o ${EXT_HOME}/convenience.js curl ${PROJECT_HOME}/extension.js -o ${EXT_HOME}/extension.js curl ${PROJECT_HOME}/metadata.json -o ${EXT_HOME}/metadata.json curl ${PROJECT_HOME}/prefs.js -o ${EXT_HOME}/prefs.js From 2aae2ac82090bdfd019ea57b34546c07840324b5 Mon Sep 17 00:00:00 2001 From: Muhammad Inan Date: Thu, 30 Oct 2025 15:19:47 +0500 Subject: [PATCH 344/344] metadata: Add GNOME Shell 49 Suport. (#84) - Adds "49" to the shell-version array. - Tested locally with `make install`; extension loads without errors. Closes #83 Co-authored-by: Inan --- metadata.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index 25205d5..83dffde 100644 --- a/metadata.json +++ b/metadata.json @@ -6,7 +6,8 @@ "45", "46", "47", - "48" + "48", + "49" ], "url": "https://github.com/prateekmedia/netspeedsimplified", "uuid": "netspeedsimplified@prateekmedia.extension",

    -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 VIoKzA%ZdO1002ovPDHLkV1m72P51x+ From e4924a9c155ecc59bf138b5376c6cbef0589ed20 Mon Sep 17 00:00:00 2001 From: Prateek SU <41370460+prateekmedia@users.noreply.github.com> Date: Tue, 8 Dec 2020 13:16:21 +0530 Subject: [PATCH 265/344] Compress icon --- images/icon.png | Bin 168639 -> 64308 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/images/icon.png b/images/icon.png index 66fa1e0f22a7598dbd06cd9e50129a53e76e6833..eb2a3bd70c1b0f5df6e0ceadff60a788e0e1d7d5 100644 GIT binary patch literal 64308 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�}7hdEzQ=4XSuLlO-_}Df36a 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