summaryrefslogtreecommitdiff
path: root/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/extension.js
diff options
context:
space:
mode:
authorNippy <nippy@rp1.hu>2026-06-01 18:57:29 +0200
committerNippy <nippy@rp1.hu>2026-06-01 18:57:29 +0200
commit2e5a7d93476c0819b5a23f5740e4c843eaedc73a (patch)
tree84279c63b84126eb8f6d9d94a42c44aabbe22336 /raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/extension.js
parente1f0fac166056bb106284be4a3fec0c558525927 (diff)
downloadRaveOS-PKGBUILD-2e5a7d93476c0819b5a23f5740e4c843eaedc73a.tar.gz
RaveOS-PKGBUILD-2e5a7d93476c0819b5a23f5740e4c843eaedc73a.zip
Raveos gnome update
Diffstat (limited to 'raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/extension.js')
-rw-r--r--raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/extension.js299
1 files changed, 288 insertions, 11 deletions
diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/extension.js b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/extension.js
index 642c4d7..0900707 100644
--- a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/extension.js
+++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/extension.js
@@ -38,13 +38,263 @@ var VitalsMenuButton = GObject.registerClass({
'system' : { 'icon': 'system-symbolic.svg' },
'network' : { 'icon': 'network-symbolic.svg',
'icon-rx': 'network-download-symbolic.svg',
- 'icon-tx': 'network-upload-symbolic.svg' },
+ 'icon-tx': 'network-upload-symbolic.svg',
+ 'icon-ad': '../flags/1x1/ad.svg',
+ 'icon-ae': '../flags/1x1/ae.svg',
+ 'icon-af': '../flags/1x1/af.svg',
+ 'icon-ag': '../flags/1x1/ag.svg',
+ 'icon-ai': '../flags/1x1/ai.svg',
+ 'icon-al': '../flags/1x1/al.svg',
+ 'icon-am': '../flags/1x1/am.svg',
+ 'icon-ao': '../flags/1x1/ao.svg',
+ 'icon-ar': '../flags/1x1/ar.svg',
+ 'icon-at': '../flags/1x1/at.svg',
+ 'icon-au': '../flags/1x1/au.svg',
+ 'icon-aw': '../flags/1x1/aw.svg',
+ 'icon-ax': '../flags/1x1/ax.svg',
+ 'icon-az': '../flags/1x1/az.svg',
+ 'icon-ba': '../flags/1x1/ba.svg',
+ 'icon-bb': '../flags/1x1/bb.svg',
+ 'icon-bd': '../flags/1x1/bd.svg',
+ 'icon-be': '../flags/1x1/be.svg',
+ 'icon-bf': '../flags/1x1/bf.svg',
+ 'icon-bg': '../flags/1x1/bg.svg',
+ 'icon-bh': '../flags/1x1/bh.svg',
+ 'icon-bi': '../flags/1x1/bi.svg',
+ 'icon-bj': '../flags/1x1/bj.svg',
+ 'icon-bl': '../flags/1x1/bl.svg',
+ 'icon-bm': '../flags/1x1/bm.svg',
+ 'icon-bn': '../flags/1x1/bn.svg',
+ 'icon-bo': '../flags/1x1/bo.svg',
+ 'icon-bq': '../flags/1x1/bq.svg',
+ 'icon-br': '../flags/1x1/br.svg',
+ 'icon-bs': '../flags/1x1/bs.svg',
+ 'icon-bt': '../flags/1x1/bt.svg',
+ 'icon-bv': '../flags/1x1/bv.svg',
+ 'icon-bw': '../flags/1x1/bw.svg',
+ 'icon-by': '../flags/1x1/by.svg',
+ 'icon-bz': '../flags/1x1/bz.svg',
+ 'icon-ca': '../flags/1x1/ca.svg',
+ 'icon-cc': '../flags/1x1/cc.svg',
+ 'icon-cd': '../flags/1x1/cd.svg',
+ 'icon-cf': '../flags/1x1/cf.svg',
+ 'icon-cg': '../flags/1x1/cg.svg',
+ 'icon-ch': '../flags/1x1/ch.svg',
+ 'icon-ci': '../flags/1x1/ci.svg',
+ 'icon-ck': '../flags/1x1/ck.svg',
+ 'icon-cl': '../flags/1x1/cl.svg',
+ 'icon-cm': '../flags/1x1/cm.svg',
+ 'icon-cn': '../flags/1x1/cn.svg',
+ 'icon-co': '../flags/1x1/co.svg',
+ 'icon-cr': '../flags/1x1/cr.svg',
+ 'icon-cu': '../flags/1x1/cu.svg',
+ 'icon-cv': '../flags/1x1/cv.svg',
+ 'icon-cw': '../flags/1x1/cw.svg',
+ 'icon-cx': '../flags/1x1/cx.svg',
+ 'icon-cy': '../flags/1x1/cy.svg',
+ 'icon-cz': '../flags/1x1/cz.svg',
+ 'icon-de': '../flags/1x1/de.svg',
+ 'icon-dj': '../flags/1x1/dj.svg',
+ 'icon-dk': '../flags/1x1/dk.svg',
+ 'icon-dm': '../flags/1x1/dm.svg',
+ 'icon-do': '../flags/1x1/do.svg',
+ 'icon-dz': '../flags/1x1/dz.svg',
+ 'icon-ec': '../flags/1x1/ec.svg',
+ 'icon-ee': '../flags/1x1/ee.svg',
+ 'icon-eg': '../flags/1x1/eg.svg',
+ 'icon-eh': '../flags/1x1/eh.svg',
+ 'icon-er': '../flags/1x1/er.svg',
+ 'icon-es': '../flags/1x1/es.svg',
+ 'icon-et': '../flags/1x1/et.svg',
+ 'icon-eu': '../flags/1x1/eu.svg',
+ 'icon-fi': '../flags/1x1/fi.svg',
+ 'icon-fj': '../flags/1x1/fj.svg',
+ 'icon-fk': '../flags/1x1/fk.svg',
+ 'icon-fm': '../flags/1x1/fm.svg',
+ 'icon-fo': '../flags/1x1/fo.svg',
+ 'icon-fr': '../flags/1x1/fr.svg',
+ 'icon-ga': '../flags/1x1/ga.svg',
+ 'icon-gb': '../flags/1x1/gb.svg',
+ 'icon-gd': '../flags/1x1/gd.svg',
+ 'icon-ge': '../flags/1x1/ge.svg',
+ 'icon-gf': '../flags/1x1/gf.svg',
+ 'icon-gg': '../flags/1x1/gg.svg',
+ 'icon-gh': '../flags/1x1/gh.svg',
+ 'icon-gi': '../flags/1x1/gi.svg',
+ 'icon-gl': '../flags/1x1/gl.svg',
+ 'icon-gm': '../flags/1x1/gm.svg',
+ 'icon-gn': '../flags/1x1/gn.svg',
+ 'icon-gp': '../flags/1x1/gp.svg',
+ 'icon-gq': '../flags/1x1/gq.svg',
+ 'icon-gr': '../flags/1x1/gr.svg',
+ 'icon-gs': '../flags/1x1/gs.svg',
+ 'icon-gt': '../flags/1x1/gt.svg',
+ 'icon-gu': '../flags/1x1/gu.svg',
+ 'icon-gw': '../flags/1x1/gw.svg',
+ 'icon-gy': '../flags/1x1/gy.svg',
+ 'icon-hk': '../flags/1x1/hk.svg',
+ 'icon-hm': '../flags/1x1/hm.svg',
+ 'icon-hn': '../flags/1x1/hn.svg',
+ 'icon-hr': '../flags/1x1/hr.svg',
+ 'icon-ht': '../flags/1x1/ht.svg',
+ 'icon-hu': '../flags/1x1/hu.svg',
+ 'icon-id': '../flags/1x1/id.svg',
+ 'icon-ie': '../flags/1x1/ie.svg',
+ 'icon-il': '../flags/1x1/il.svg',
+ 'icon-im': '../flags/1x1/im.svg',
+ 'icon-in': '../flags/1x1/in.svg',
+ 'icon-io': '../flags/1x1/io.svg',
+ 'icon-iq': '../flags/1x1/iq.svg',
+ 'icon-ir': '../flags/1x1/ir.svg',
+ 'icon-is': '../flags/1x1/is.svg',
+ 'icon-it': '../flags/1x1/it.svg',
+ 'icon-je': '../flags/1x1/je.svg',
+ 'icon-jm': '../flags/1x1/jm.svg',
+ 'icon-jo': '../flags/1x1/jo.svg',
+ 'icon-jp': '../flags/1x1/jp.svg',
+ 'icon-ke': '../flags/1x1/ke.svg',
+ 'icon-kg': '../flags/1x1/kg.svg',
+ 'icon-kh': '../flags/1x1/kh.svg',
+ 'icon-ki': '../flags/1x1/ki.svg',
+ 'icon-km': '../flags/1x1/km.svg',
+ 'icon-kn': '../flags/1x1/kn.svg',
+ 'icon-kp': '../flags/1x1/kp.svg',
+ 'icon-kr': '../flags/1x1/kr.svg',
+ 'icon-kw': '../flags/1x1/kw.svg',
+ 'icon-ky': '../flags/1x1/ky.svg',
+ 'icon-kz': '../flags/1x1/kz.svg',
+ 'icon-la': '../flags/1x1/la.svg',
+ 'icon-lb': '../flags/1x1/lb.svg',
+ 'icon-lc': '../flags/1x1/lc.svg',
+ 'icon-li': '../flags/1x1/li.svg',
+ 'icon-lk': '../flags/1x1/lk.svg',
+ 'icon-lr': '../flags/1x1/lr.svg',
+ 'icon-ls': '../flags/1x1/ls.svg',
+ 'icon-lt': '../flags/1x1/lt.svg',
+ 'icon-lu': '../flags/1x1/lu.svg',
+ 'icon-lv': '../flags/1x1/lv.svg',
+ 'icon-ly': '../flags/1x1/ly.svg',
+ 'icon-ma': '../flags/1x1/ma.svg',
+ 'icon-mc': '../flags/1x1/mc.svg',
+ 'icon-md': '../flags/1x1/md.svg',
+ 'icon-me': '../flags/1x1/me.svg',
+ 'icon-mf': '../flags/1x1/mf.svg',
+ 'icon-mg': '../flags/1x1/mg.svg',
+ 'icon-mh': '../flags/1x1/mh.svg',
+ 'icon-mk': '../flags/1x1/mk.svg',
+ 'icon-ml': '../flags/1x1/ml.svg',
+ 'icon-mm': '../flags/1x1/mm.svg',
+ 'icon-mn': '../flags/1x1/mn.svg',
+ 'icon-mo': '../flags/1x1/mo.svg',
+ 'icon-mp': '../flags/1x1/mp.svg',
+ 'icon-mq': '../flags/1x1/mq.svg',
+ 'icon-mr': '../flags/1x1/mr.svg',
+ 'icon-ms': '../flags/1x1/ms.svg',
+ 'icon-mt': '../flags/1x1/mt.svg',
+ 'icon-mu': '../flags/1x1/mu.svg',
+ 'icon-mv': '../flags/1x1/mv.svg',
+ 'icon-mw': '../flags/1x1/mw.svg',
+ 'icon-mx': '../flags/1x1/mx.svg',
+ 'icon-my': '../flags/1x1/my.svg',
+ 'icon-mz': '../flags/1x1/mz.svg',
+ 'icon-na': '../flags/1x1/na.svg',
+ 'icon-nc': '../flags/1x1/nc.svg',
+ 'icon-ne': '../flags/1x1/ne.svg',
+ 'icon-nf': '../flags/1x1/nf.svg',
+ 'icon-ng': '../flags/1x1/ng.svg',
+ 'icon-ni': '../flags/1x1/ni.svg',
+ 'icon-nl': '../flags/1x1/nl.svg',
+ 'icon-no': '../flags/1x1/no.svg',
+ 'icon-np': '../flags/1x1/np.svg',
+ 'icon-nr': '../flags/1x1/nr.svg',
+ 'icon-nu': '../flags/1x1/nu.svg',
+ 'icon-nz': '../flags/1x1/nz.svg',
+ 'icon-om': '../flags/1x1/om.svg',
+ 'icon-pa': '../flags/1x1/pa.svg',
+ 'icon-pe': '../flags/1x1/pe.svg',
+ 'icon-pf': '../flags/1x1/pf.svg',
+ 'icon-pg': '../flags/1x1/pg.svg',
+ 'icon-ph': '../flags/1x1/ph.svg',
+ 'icon-pk': '../flags/1x1/pk.svg',
+ 'icon-pl': '../flags/1x1/pl.svg',
+ 'icon-pm': '../flags/1x1/pm.svg',
+ 'icon-pn': '../flags/1x1/pn.svg',
+ 'icon-pr': '../flags/1x1/pr.svg',
+ 'icon-ps': '../flags/1x1/ps.svg',
+ 'icon-pt': '../flags/1x1/pt.svg',
+ 'icon-pw': '../flags/1x1/pw.svg',
+ 'icon-py': '../flags/1x1/py.svg',
+ 'icon-qa': '../flags/1x1/qa.svg',
+ 'icon-re': '../flags/1x1/re.svg',
+ 'icon-ro': '../flags/1x1/ro.svg',
+ 'icon-rs': '../flags/1x1/rs.svg',
+ 'icon-ru': '../flags/1x1/ru.svg',
+ 'icon-rw': '../flags/1x1/rw.svg',
+ 'icon-sa': '../flags/1x1/sa.svg',
+ 'icon-sb': '../flags/1x1/sb.svg',
+ 'icon-sc': '../flags/1x1/sc.svg',
+ 'icon-sd': '../flags/1x1/sd.svg',
+ 'icon-se': '../flags/1x1/se.svg',
+ 'icon-sg': '../flags/1x1/sg.svg',
+ 'icon-sh': '../flags/1x1/sh.svg',
+ 'icon-si': '../flags/1x1/si.svg',
+ 'icon-sj': '../flags/1x1/sj.svg',
+ 'icon-sk': '../flags/1x1/sk.svg',
+ 'icon-sl': '../flags/1x1/sl.svg',
+ 'icon-sm': '../flags/1x1/sm.svg',
+ 'icon-sn': '../flags/1x1/sn.svg',
+ 'icon-so': '../flags/1x1/so.svg',
+ 'icon-sr': '../flags/1x1/sr.svg',
+ 'icon-ss': '../flags/1x1/ss.svg',
+ 'icon-st': '../flags/1x1/st.svg',
+ 'icon-sv': '../flags/1x1/sv.svg',
+ 'icon-sx': '../flags/1x1/sx.svg',
+ 'icon-sy': '../flags/1x1/sy.svg',
+ 'icon-sz': '../flags/1x1/sz.svg',
+ 'icon-tc': '../flags/1x1/tc.svg',
+ 'icon-td': '../flags/1x1/td.svg',
+ 'icon-tf': '../flags/1x1/tf.svg',
+ 'icon-tg': '../flags/1x1/tg.svg',
+ 'icon-th': '../flags/1x1/th.svg',
+ 'icon-tj': '../flags/1x1/tj.svg',
+ 'icon-tk': '../flags/1x1/tk.svg',
+ 'icon-tl': '../flags/1x1/tl.svg',
+ 'icon-tm': '../flags/1x1/tm.svg',
+ 'icon-tn': '../flags/1x1/tn.svg',
+ 'icon-to': '../flags/1x1/to.svg',
+ 'icon-tr': '../flags/1x1/tr.svg',
+ 'icon-tt': '../flags/1x1/tt.svg',
+ 'icon-tv': '../flags/1x1/tv.svg',
+ 'icon-tw': '../flags/1x1/tw.svg',
+ 'icon-tz': '../flags/1x1/tz.svg',
+ 'icon-ua': '../flags/1x1/ua.svg',
+ 'icon-ug': '../flags/1x1/ug.svg',
+ 'icon-um': '../flags/1x1/um.svg',
+ 'icon-us': '../flags/1x1/us.svg',
+ 'icon-uy': '../flags/1x1/uy.svg',
+ 'icon-uz': '../flags/1x1/uz.svg',
+ 'icon-va': '../flags/1x1/va.svg',
+ 'icon-vc': '../flags/1x1/vc.svg',
+ 'icon-ve': '../flags/1x1/ve.svg',
+ 'icon-vg': '../flags/1x1/vg.svg',
+ 'icon-vi': '../flags/1x1/vi.svg',
+ 'icon-vn': '../flags/1x1/vn.svg',
+ 'icon-vu': '../flags/1x1/vu.svg',
+ 'icon-wf': '../flags/1x1/wf.svg',
+ 'icon-ws': '../flags/1x1/ws.svg',
+ 'icon-xk': '../flags/1x1/xk.svg',
+ 'icon-ye': '../flags/1x1/ye.svg',
+ 'icon-yt': '../flags/1x1/yt.svg',
+ 'icon-za': '../flags/1x1/za.svg',
+ 'icon-zm': '../flags/1x1/zm.svg',
+ 'icon-zw': '../flags/1x1/zw.svg'
+ },
'storage' : { 'icon': 'storage-symbolic.svg' },
'battery' : { 'icon': 'battery-symbolic.svg' },
'gpu' : { 'icon': 'gpu-symbolic.svg' }
}
- // list with the prefixes for the according themes, the index of each
+ // 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/'];
@@ -81,7 +331,12 @@ 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));
@@ -252,7 +507,7 @@ var VitalsMenuButton = GObject.registerClass({
);
}
- _createHotItem(key, value) {
+ _createHotItem(key, value, gicon) {
let item = new St.BoxLayout({
style_class: 'vitals-panel-item',
});
@@ -261,6 +516,7 @@ var VitalsMenuButton = GObject.registerClass({
if (!this._settings.get_boolean('hide-icons') || key == '_default_icon_') {
let icon = this._defaultIcon(key);
+ if (gicon) icon.gicon = gicon;
item.add_child(icon);
}
@@ -311,7 +567,7 @@ var VitalsMenuButton = GObject.registerClass({
}
_redrawDetailsMenuIcons() {
- // updates the icons on the 'details' menu, the one
+ // updates the icons on the 'details' menu, the one
// you have to click to appear
this._sensors.resetHistory();
for (const sensor in this._sensorIcons) {
@@ -323,7 +579,7 @@ var VitalsMenuButton = GObject.registerClass({
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() {
@@ -443,7 +699,7 @@ var VitalsMenuButton = GObject.registerClass({
if (self.checked) {
// add selected sensor to panel
hotSensors.push(self.key);
- this._createHotItem(self.key, self.value);
+ this._createHotItem(self.key, self.value, self.gicon);
} else {
// remove selected sensor from panel
hotSensors.splice(hotSensors.indexOf(self.key), 1);
@@ -573,7 +829,8 @@ var VitalsMenuButton = GObject.registerClass({
this._last_query = now;
this._sensors.query((label, value, type, format) => {
- const typeKey = type.replace('-group', '');
+ let typeKey = type.replace('-group', '');
+ if (/^network-(?!rx$|tx$)/.test(typeKey)) typeKey = 'network';
let key = '_' + typeKey + '_' + label.replace(' ', '_').toLowerCase() + '_';
// if a sensor is disabled, gray it out
@@ -585,7 +842,7 @@ var VitalsMenuButton = GObject.registerClass({
}
// add/initialize any gpu groups that we haven't added yet
- if(typeKey.startsWith('gpu') && typeKey !== 'gpu#1') {
+ if (typeKey.startsWith('gpu') && typeKey !== 'gpu#1') {
const split = typeKey.split('#');
if(split.length == 2 && this._numGpus < parseInt(split[1])) {
// occasionally two lines from nvidia-smi will be read at once
@@ -608,8 +865,24 @@ var VitalsMenuButton = GObject.registerClass({
}
let items = this._values.returnIfDifferent(dwell, label, value, type, format, key);
- for (let item of Object.values(items))
- this._updateDisplay(_(item[0]), item[1], item[2], item[3]);
+ for (let item of items) {
+ if (item.type.startsWith('network-') && item.type.length == 10 && item.type != 'network-rx' && item.type != 'network-tx') {
+ // Geo / flags: stable key (no country in key); type stays network-<cc> for icon-us etc.
+ const stem = item.type.slice('network-'.length);
+ let flagGIcon = Gio.icon_new_for_string(this._sensorIconPath('network', 'icon-' + stem));
+ if (this._hotItems[item.key] && !this._settings.get_boolean('hide-icons')) {
+ // change icon in menu bar
+ let icon = this._hotItems[item.key].get_first_child();
+ if (icon instanceof St.Icon)
+ icon.gicon = flagGIcon;
+ }
+ // change icon in dropdown
+ let menuRow = this._sensorMenuItems[item.key];
+ if (menuRow) menuRow.gicon = flagGIcon;
+ }
+
+ this._updateDisplay(_(item.label), item.value, item.type, item.key);
+ }
}, dwell);
//if a new gpu has been detected during the last query, then increment the amount of times we've detected a new gpu
@@ -644,6 +917,10 @@ var VitalsMenuButton = GObject.registerClass({
export default class VitalsExtension extends Extension {
enable() {
+ if (Main.panel.statusArea['vitalsMenu']) {
+ Main.panel.statusArea['vitalsMenu'].destroy();
+ delete Main.panel.statusArea['vitalsMenu'];
+ }
vitalsMenu = new VitalsMenuButton(this);
let position = vitalsMenu._positionInPanel();
Main.panel.addToStatusArea('vitalsMenu', vitalsMenu, position[1], position[0]);