diff --git a/extension.js b/extension.js
index 63ea243..e1003e5 100644
--- a/extension.js
+++ b/extension.js
@@ -82,7 +82,11 @@ var VitalsMenuButton = GObject.registerClass({
this._addSettingChangedSignal('menu-centered', this._positionInPanelChanged.bind(this));
this._addSettingChangedSignal('icon-style', this._iconStyleChanged.bind(this));
- let settings = [ 'use-higher-precision', 'alphabetize', 'hide-zeros', 'fixed-widths', 'hide-icons', 'unit', 'memory-measurement', 'include-public-ip', 'network-speed-format', 'storage-measurement', 'include-static-info', 'include-static-gpu-info' ];
+ let settings = [ 'use-higher-precision', 'alphabetize', 'hide-zeros',
+ 'fixed-widths', 'hide-icons', 'unit',
+ 'memory-measurement', 'include-public-ip', 'network-public-ip-interval',
+ 'network-public-ip-show-flag', 'network-speed-format', 'storage-measurement',
+ 'include-static-info', 'include-static-gpu-info' ];
for (let setting of Object.values(settings))
this._addSettingChangedSignal(setting, this._redrawMenu.bind(this));
@@ -276,7 +280,10 @@ var VitalsMenuButton = GObject.registerClass({
this._hotItems[key] = item;
this._menuLayout.add_child(item);
- if (!this._settings.get_boolean('hide-icons') || key == '_default_icon_') {
+ let isPublicIP = key.includes('public_ip');
+ let shouldHideIcon = isPublicIP && this._settings.get_boolean('network-public-ip-show-flag');
+
+ if ((!this._settings.get_boolean('hide-icons') || key == '_default_icon_') && !shouldHideIcon) {
let icon = this._defaultIcon(key);
if (gicon) icon.gicon = gicon;
item.add_child(icon);
diff --git a/prefs.js b/prefs.js
index 07916bd..bdeb9a8 100644
--- a/prefs.js
+++ b/prefs.js
@@ -47,8 +47,8 @@ const Settings = new GObject.Class({
'show-memory', 'show-processor', 'show-system',
'show-network', 'show-storage', 'use-higher-precision',
'alphabetize', 'hide-zeros', 'include-public-ip',
- 'show-battery', 'fixed-widths', 'hide-icons',
- 'menu-centered', 'include-static-info',
+ 'network-public-ip-show-flag', 'show-battery', 'fixed-widths',
+ 'hide-icons', 'menu-centered', 'include-static-info',
'show-gpu', 'include-static-gpu-info' ];
for (let key in sensors) {
@@ -75,6 +75,9 @@ const Settings = new GObject.Class({
this._settings.bind('update-time', this.builder.get_object('update-time'), 'value', Gio.SettingsBindFlags.DEFAULT);
+ this._settings.bind('network-public-ip-interval', this.builder.get_object('network-public-ip-interval'),
+ 'value', Gio.SettingsBindFlags.DEFAULT);
+
// process individual text entry sensor preferences
sensors = [ 'storage-path', 'monitor-cmd' ];
for (let key in sensors) {
diff --git a/prefs.ui b/prefs.ui
index 950c1b0..b3c8c4b 100644
--- a/prefs.ui
+++ b/prefs.ui
@@ -8,7 +8,7 @@
10