diff --git a/README.md b/README.md
index 7f3ebbbe..65f01d8c 100644
--- a/README.md
+++ b/README.md
@@ -86,7 +86,9 @@ Vitals is a GNOME Shell extension for displaying your computer's temperature, vo
## Credits
Vitals was originally forked from [gnome-shell-extension-freon](https://github.com/UshakovVasilii/gnome-shell-extension-freon). I was having trouble finding an up to date, resource friendly and fully featured system monitoring tool. My biggest pet peeve was random system delays because of I/O blocking polls, and thus, the idea for Vitals was born! It has been refactored several times over, so most of the code is new or different.
-### Icons
+## Icons
+
+### Original Theme
* (voltage|fan)-symbolic.svg - inherited from Freon project.
* (system|storage)-symbolic.svg - from Pop! OS theme.
* temperature-symbolic.svg - [iconnice studio](https://www.iconfinder.com/iconnice).
@@ -94,6 +96,12 @@ Vitals was originally forked from [gnome-shell-extension-freon](https://github.c
* network\*.svg - [Yannick Lung](https://www.iconfinder.com/yanlu).
* Health icon - [Dod Cosmin](https://www.iconfinder.com/icons/458267/cross_doctor_drug_health_healthcare_hospital_icon).
+### GNOME Theme
+* (battery | storage)-symbolic.svg - from [Adwaita Icon Theme](https://gitlab.gnome.org/GNOME/adwaita-icon-theme).
+* (memory | network* | system | voltage)-symbolic.svg - from [Icon Development Kit](https://gitlab.gnome.org/Teams/Design/icon-development-kit).
+* fan-symbolic.svg - inherited from [Freon](https://github.com/UshakovVasilii/gnome-shell-extension-freon) project, with mild modifications.
+* (temperature | cpu)-symbolic.svg - designed by [daudix](https://github.com/daudix).
+
## Disclaimer
Sensor data is obtained from the system using hwmon and GTop. Core Coding and the Vitals authors are not responsible for improperly represented data. No warranty expressed or implied.
diff --git a/extension.js b/extension.js
index 69893db2..63b50c50 100644
--- a/extension.js
+++ b/extension.js
@@ -44,6 +44,10 @@ var VitalsMenuButton = GObject.registerClass({
'gpu' : { 'icon': 'gpu-symbolic.svg' }
}
+ // list with the prefixes for the according themes, the index of each
+ // item must match the index on the combo box
+ this._sensorsIconPathPrefix = ['/icons/original/', '/icons/gnome/'];
+
this._warnings = [];
this._sensorMenuItems = {};
this._hotLabels = {};
@@ -75,6 +79,7 @@ var VitalsMenuButton = GObject.registerClass({
this._addSettingChangedSignal('update-time', this._updateTimeChanged.bind(this));
this._addSettingChangedSignal('position-in-panel', this._positionInPanelChanged.bind(this));
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' ];
for (let setting of Object.values(settings))
@@ -305,6 +310,27 @@ var VitalsMenuButton = GObject.registerClass({
boxes[position[0]].insert_child_at_index(this.container, position[1]);
}
+ _redrawDetailsMenuIcons() {
+ // updates the icons on the 'details' menu, the one
+ // you have to click to appear
+ this._sensors.resetHistory();
+ for (const sensor in this._sensorIcons) {
+ if (sensor == "gpu") continue;
+ this._groups[sensor].icon.gicon = Gio.icon_new_for_string(this._sensorIconPath(sensor));
+ }
+
+ // gpu's are indexed differently, handle them here
+ const gpuKeys = Object.keys(this._groups).filter(key => key.startsWith("gpu#"));
+ gpuKeys.forEach((gpuKey) => {
+ this._groups[gpuKey].icon.gicon = Gio.icon_new_for_string(this._sensorIconPath("gpu"));
+ });
+ }
+
+ _iconStyleChanged() {
+ this._redrawDetailsMenuIcons();
+ this._redrawMenu();
+ }
+
_removeHotLabel(key) {
if (key in this._hotLabels) {
let label = this._hotLabels[key];
@@ -498,7 +524,8 @@ var VitalsMenuButton = GObject.registerClass({
let sensorKey = sensor;
if(sensor.startsWith('gpu')) sensorKey = 'gpu';
- return this._extensionObject.path + '/icons/' + this._sensorIcons[sensorKey][icon];
+ const iconPathPrefixIndex = this._settings.get_int('icon-style');
+ return this._extensionObject.path + this._sensorsIconPathPrefix[iconPathPrefixIndex] + this._sensorIcons[sensorKey][icon];
}
_ucFirst(string) {
diff --git a/icons/battery-symbolic.svg b/icons/gnome/battery-symbolic.svg
similarity index 100%
rename from icons/battery-symbolic.svg
rename to icons/gnome/battery-symbolic.svg
diff --git a/icons/gnome/cpu-symbolic.svg b/icons/gnome/cpu-symbolic.svg
new file mode 100644
index 00000000..86ca8bf7
--- /dev/null
+++ b/icons/gnome/cpu-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/icons/gnome/fan-symbolic.svg b/icons/gnome/fan-symbolic.svg
new file mode 100644
index 00000000..ea2b44f7
--- /dev/null
+++ b/icons/gnome/fan-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/icons/gpu-symbolic.svg b/icons/gnome/gpu-symbolic.svg
similarity index 100%
rename from icons/gpu-symbolic.svg
rename to icons/gnome/gpu-symbolic.svg
diff --git a/icons/gnome/memory-symbolic.svg b/icons/gnome/memory-symbolic.svg
new file mode 100644
index 00000000..1946901d
--- /dev/null
+++ b/icons/gnome/memory-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/icons/gnome/network-download-symbolic.svg b/icons/gnome/network-download-symbolic.svg
new file mode 100644
index 00000000..4fc170b5
--- /dev/null
+++ b/icons/gnome/network-download-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/icons/gnome/network-symbolic.svg b/icons/gnome/network-symbolic.svg
new file mode 100644
index 00000000..2ff97782
--- /dev/null
+++ b/icons/gnome/network-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/icons/gnome/network-upload-symbolic.svg b/icons/gnome/network-upload-symbolic.svg
new file mode 100644
index 00000000..0d67f652
--- /dev/null
+++ b/icons/gnome/network-upload-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/icons/gnome/storage-symbolic.svg b/icons/gnome/storage-symbolic.svg
new file mode 100644
index 00000000..30d90078
--- /dev/null
+++ b/icons/gnome/storage-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/icons/gnome/system-symbolic.svg b/icons/gnome/system-symbolic.svg
new file mode 100644
index 00000000..bfbf1bd5
--- /dev/null
+++ b/icons/gnome/system-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/icons/gnome/temperature-symbolic.svg b/icons/gnome/temperature-symbolic.svg
new file mode 100644
index 00000000..e00a2eba
--- /dev/null
+++ b/icons/gnome/temperature-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/icons/gnome/voltage-symbolic.svg b/icons/gnome/voltage-symbolic.svg
new file mode 100644
index 00000000..1aa22102
--- /dev/null
+++ b/icons/gnome/voltage-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/icons/original/battery-symbolic.svg b/icons/original/battery-symbolic.svg
new file mode 100644
index 00000000..70df9ee2
--- /dev/null
+++ b/icons/original/battery-symbolic.svg
@@ -0,0 +1,8 @@
+
+
diff --git a/icons/cpu-symbolic.svg b/icons/original/cpu-symbolic.svg
similarity index 100%
rename from icons/cpu-symbolic.svg
rename to icons/original/cpu-symbolic.svg
diff --git a/icons/fan-symbolic.svg b/icons/original/fan-symbolic.svg
similarity index 100%
rename from icons/fan-symbolic.svg
rename to icons/original/fan-symbolic.svg
diff --git a/icons/original/gpu-symbolic.svg b/icons/original/gpu-symbolic.svg
new file mode 100644
index 00000000..d5cf1577
--- /dev/null
+++ b/icons/original/gpu-symbolic.svg
@@ -0,0 +1,15 @@
+
+
+
diff --git a/icons/memory-symbolic.svg b/icons/original/memory-symbolic.svg
similarity index 100%
rename from icons/memory-symbolic.svg
rename to icons/original/memory-symbolic.svg
diff --git a/icons/network-download-symbolic.svg b/icons/original/network-download-symbolic.svg
similarity index 100%
rename from icons/network-download-symbolic.svg
rename to icons/original/network-download-symbolic.svg
diff --git a/icons/network-symbolic.svg b/icons/original/network-symbolic.svg
similarity index 100%
rename from icons/network-symbolic.svg
rename to icons/original/network-symbolic.svg
diff --git a/icons/network-upload-symbolic.svg b/icons/original/network-upload-symbolic.svg
similarity index 100%
rename from icons/network-upload-symbolic.svg
rename to icons/original/network-upload-symbolic.svg
diff --git a/icons/storage-symbolic.svg b/icons/original/storage-symbolic.svg
similarity index 100%
rename from icons/storage-symbolic.svg
rename to icons/original/storage-symbolic.svg
diff --git a/icons/system-symbolic.svg b/icons/original/system-symbolic.svg
similarity index 100%
rename from icons/system-symbolic.svg
rename to icons/original/system-symbolic.svg
diff --git a/icons/temperature-symbolic.svg b/icons/original/temperature-symbolic.svg
similarity index 100%
rename from icons/temperature-symbolic.svg
rename to icons/original/temperature-symbolic.svg
diff --git a/icons/voltage-symbolic.svg b/icons/original/voltage-symbolic.svg
similarity index 100%
rename from icons/voltage-symbolic.svg
rename to icons/original/voltage-symbolic.svg
diff --git a/prefs.js b/prefs.js
index db28afa3..07916bdf 100644
--- a/prefs.js
+++ b/prefs.js
@@ -62,7 +62,7 @@ const Settings = new GObject.Class({
}
// process individual drop down sensor preferences
- sensors = [ 'position-in-panel', 'unit', 'network-speed-format', 'memory-measurement', 'storage-measurement', 'battery-slot' ];
+ sensors = [ 'position-in-panel', 'unit', 'network-speed-format', 'memory-measurement', 'storage-measurement', 'battery-slot', 'icon-style' ];
for (let key in sensors) {
let sensor = sensors[key];
diff --git a/prefs.ui b/prefs.ui
index 978d903e..e254fb94 100644
--- a/prefs.ui
+++ b/prefs.ui
@@ -45,6 +45,7 @@
@@ -146,6 +147,7 @@
0
start
5
+ 5
Seconds between updates
@@ -181,6 +183,7 @@
0
start
5
+ 5
Position in panel
@@ -217,12 +220,14 @@
0
start
5
+ 5
Use higher precision
@@ -244,12 +249,14 @@
0
start
5
+ 5
Alphabetize sensors
@@ -271,12 +278,14 @@
0
start
5
+ 5
Hide zero values
@@ -298,12 +307,14 @@
0
start
5
+ 5
Use fixed widths
@@ -325,12 +336,14 @@
0
start
5
+ 5
Hide icons in top bar
@@ -352,49 +365,54 @@
0
start
5
+ 5
Menu always centered
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
- 0
- start
- baseline
- About
-
-
-
-
-
-
-
- 0
-
-
- 0
- start
- baseline
- 5
- Feature requests or bugs? Please visit <a href="https://github.com/corecoding/Vitals/issues">GitHub</a>. No warranty, expressed or implied. <a href="https://corecoding.com/donate.php">Donate</a> if you found this useful.
- 1
- 1
- 0
@@ -446,6 +464,7 @@
0
start
5
+ 5
Monitor temperature
@@ -473,6 +492,7 @@
end
center
+ 5
@@ -497,12 +517,14 @@
0
start
5
+ 5
Monitor voltage
end
+ 5
@@ -525,12 +547,14 @@
0
start
5
+ 5
Monitor fan
end
+ 5
@@ -553,6 +577,7 @@
0
start
5
+ 5
Monitor memory
@@ -580,6 +605,7 @@
end
center
+ 5
@@ -604,6 +630,7 @@
0
start
5
+ 5
Monitor processor
@@ -631,6 +658,7 @@
end
center
+ 5
@@ -655,6 +683,7 @@
0
start
5
+ 5
Monitor system
@@ -682,6 +711,7 @@
end
center
+ 5
@@ -706,6 +736,7 @@
0
start
5
+ 5
Monitor network
@@ -733,6 +764,7 @@
end
center
+ 5
@@ -757,6 +789,7 @@
0
start
5
+ 5
Monitor storage
@@ -784,6 +817,7 @@
end
center
+ 5
@@ -808,6 +842,7 @@
0
start
5
+ 5
Monitor battery
@@ -835,6 +870,7 @@
end
center
+ 5
@@ -859,6 +895,7 @@
0
start
5
+ 5
Monitor gpu (beta; NVIDIA only)
@@ -886,6 +923,7 @@
end
center
+ 5
@@ -905,6 +943,44 @@
+
+
+ start
+ 0
+ 12
+ 9
+ 12
+ About
+
+
+
+
+
+
+
+ 0
+ 6
+ 6
+
+
+ 0
+ start
+ baseline
+ 5
+ 5
+ 5
+ 5
+ Feature requests or bugs? Please visit <a href="https://github.com/corecoding/Vitals/issues">GitHub</a>. No warranty, expressed or implied. <a href="https://corecoding.com/donate.php">Donate</a> if you found this useful.
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
1
@@ -1248,6 +1324,7 @@
end
+ 5
@@ -1297,6 +1374,7 @@
end
+ 5
diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled
index f608987e..936fdb3a 100644
Binary files a/schemas/gschemas.compiled and b/schemas/gschemas.compiled differ
diff --git a/schemas/org.gnome.shell.extensions.vitals.gschema.xml b/schemas/org.gnome.shell.extensions.vitals.gschema.xml
index 39310855..62728687 100644
--- a/schemas/org.gnome.shell.extensions.vitals.gschema.xml
+++ b/schemas/org.gnome.shell.extensions.vitals.gschema.xml
@@ -126,6 +126,11 @@
Make the menu centered
Center the menu to the icon regardless of the position in the panel
+
+ 0
+ Icon styles
+ Set the style for the displayed sensor icons ('original', 'updated')
+
"gnome-system-monitor"
System Monitor command