diff --git a/glances/outputs/glances_curses.py b/glances/outputs/glances_curses.py index d5a11bd455..eb43c2ccce 100644 --- a/glances/outputs/glances_curses.py +++ b/glances/outputs/glances_curses.py @@ -48,6 +48,7 @@ class _GlancesCurses: '5': {'handler': '_handle_top_menu'}, '6': {'switch': 'meangpu'}, '7': {'switch': 'disable_npu'}, + '8': {'switch': 'disable_mpp'}, '/': {'switch': 'process_short_name'}, 'a': {'sort_key': 'auto'}, 'A': {'switch': 'disable_amps'}, @@ -106,7 +107,7 @@ class _GlancesCurses: _sort_loop = sort_processes_stats_list # Define top menu - _top = ['quicklook', 'cpu', 'percpu', 'npu', 'gpu', 'mem', 'memswap', 'load'] + _top = ['quicklook', 'cpu', 'percpu', 'npu', 'mpp', 'gpu', 'mem', 'memswap', 'load'] _quicklook_max_width = 58 # Define left sidebar @@ -445,13 +446,13 @@ def enable_top(self): def disable_fullquicklook(self): """Disable the full quicklook mode""" - for p in ['quicklook', 'cpu', 'npu', 'gpu', 'mem', 'memswap']: + for p in ['quicklook', 'cpu', 'npu', 'mpp', 'gpu', 'mem', 'memswap']: setattr(self.args, 'disable_' + p, False) def enable_fullquicklook(self): """Disable the full quicklook mode""" self.args.disable_quicklook = False - for p in ['cpu', 'npu', 'gpu', 'mem', 'memswap']: + for p in ['cpu', 'npu', 'mpp', 'gpu', 'mem', 'memswap']: setattr(self.args, 'disable_' + p, True) def end(self): diff --git a/glances/outputs/static/css/style.scss b/glances/outputs/static/css/style.scss index 9529a82171..88851e60ff 100644 --- a/glances/outputs/static/css/style.scss +++ b/glances/outputs/static/css/style.scss @@ -277,6 +277,13 @@ body { } } +#mpp { + * > td span { + display: inline-block; + width: 4em; + } +} + #gpu { * > td span { display: inline-block; diff --git a/glances/outputs/static/js/App.vue b/glances/outputs/static/js/App.vue index d4f0fc6138..92c1b1cfce 100644 --- a/glances/outputs/static/js/App.vue +++ b/glances/outputs/static/js/App.vue @@ -54,6 +54,10 @@
| + {{ engine.name }} + | ++ {{ $filters.number(engine.load, 1) }}% + N/A + | ++ {{ engine.sessions }} sess + | +
u?G(t,i,o,!0,!1,p):w(e,r,n,i,o,a,s,l,p)},N=(t,e,r,n,i,o,a,s,l)=>{let c=0;const u=e.length;let p=t.length-1,d=u-1;for(;c<=p&&c<=d;){const n=t[c],u=e[c]=l?Uu(e[c]):Hu(e[c]);if(!ju(n,u))break;f(n,u,r,null,i,o,a,s,l),c++}for(;c<=p&&c<=d;){const n=t[p],c=e[d]=l?Uu(e[d]):Hu(e[d]);if(!ju(n,c))break;f(n,c,r,null,i,o,a,s,l),p--,d--}if(c>p){if(c<=d){const t=d+1,p=td)for(;c<=p;)M(t[c],i,o,!0),c++;else{const m=c,h=c,g=new Map;for(c=h;c<=d;c++){const t=e[c]=l?Uu(e[c]):Hu(e[c]);null!=t.key&&g.set(t.key,c)}let A,b=0;const y=d-h+1;let v=!1,x=0;const w=new Array(y);for(c=0;c u?G(t,i,o,!0,!1,p):w(e,r,n,i,o,a,s,l,p)},N=(t,e,r,n,i,o,a,s,l)=>{let c=0;const u=e.length;let p=t.length-1,d=u-1;for(;c<=p&&c<=d;){const n=t[c],u=e[c]=l?Uu(e[c]):Hu(e[c]);if(!ju(n,u))break;f(n,u,r,null,i,o,a,s,l),c++}for(;c<=p&&c<=d;){const n=t[p],c=e[d]=l?Uu(e[d]):Hu(e[d]);if(!ju(n,c))break;f(n,c,r,null,i,o,a,s,l),p--,d--}if(c>p){if(c<=d){const t=d+1,p=td)for(;c<=p;)M(t[c],i,o,!0),c++;else{const m=c,h=c,g=new Map;for(c=h;c<=d;c++){const t=e[c]=l?Uu(e[c]):Hu(e[c]);null!=t.key&&g.set(t.key,c)}let A,b=0;const y=d-h+1;let v=!1,x=0;const w=new Array(y);for(c=0;ce(t,r,void 0,o&&o[r]));else{const r=Object.keys(t);i=new Array(r.length);for(let n=0,a=r.length;nt?np(t)?dp(t):Ac(t.parent):null,bc=Po(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>Ac(t.parent),$root:t=>Ac(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>kc(t),$forceUpdate:t=>t.f||(t.f=()=>{yl(t.update)}),$nextTick:t=>t.n||(t.n=bl.bind(t.proxy)),$watch:t=>Ml.bind(t)}),yc=(t,e)=>t!==jo&&!t.__isScriptSetup&&Ho(t,e),vc={get({_:t},e){if("__v_skip"===e)return!0;const{ctx:r,setupState:n,data:i,props:o,accessCache:a,type:s,appContext:l}=t;if("$"!==e[0]){const t=a[e];if(void 0!==t)switch(t){case 1:return n[e];case 2:return i[e];case 4:return r[e];case 3:return o[e]}else{if(yc(n,e))return a[e]=1,n[e];if(i!==jo&&Ho(i,e))return a[e]=2,i[e];if(Ho(o,e))return a[e]=3,o[e];if(r!==jo&&Ho(r,e))return a[e]=4,r[e];wc&&(a[e]=0)}}const c=bc[e];let u,p;return c?("$attrs"===e&&ls(t.attrs,0,""),c(t)):(u=s.__cssModules)&&(u=u[e])?u:r!==jo&&Ho(r,e)?(a[e]=4,r[e]):(p=l.config.globalProperties,Ho(p,e)?p[e]:void 0)},set({_:t},e,r){const{data:n,setupState:i,ctx:o}=t;return yc(i,e)?(i[e]=r,!0):n!==jo&&Ho(n,e)?(n[e]=r,!0):!Ho(t.props,e)&&(("$"!==e[0]||!(e.slice(1)in t))&&(o[e]=r,!0))},has({_:{data:t,setupState:e,accessCache:r,ctx:n,appContext:i,props:o,type:a}},s){let l;return!!(r[s]||t!==jo&&"$"!==s[0]&&Ho(t,s)||yc(e,s)||Ho(o,s)||Ho(n,s)||Ho(bc,s)||Ho(i.config.globalProperties,s)||(l=a.__cssModules)&&l[s])},defineProperty(t,e,r){return null!=r.get?t._.accessCache[e]=0:Ho(r,"value")&&this.set(t,e,r.value,null),Reflect.defineProperty(t,e,r)}};function xc(t){return Uo(t)?t.reduce((t,e)=>(t[e]=null,t),{}):t}let wc=!0;function _c(t){const e=kc(t),r=t.proxy,n=t.ctx;wc=!1,e.beforeCreate&&Cc(e.beforeCreate,t,"bc");const{data:i,computed:o,methods:a,watch:s,provide:l,inject:c,created:u,beforeMount:p,mounted:d,beforeUpdate:m,updated:f,activated:h,deactivated:g,beforeDestroy:A,beforeUnmount:b,destroyed:y,unmounted:v,render:x,renderTracked:w,renderTriggered:_,errorCaptured:C,serverPrefetch:I,expose:k,inheritAttrs:E,components:B,directives:S,filters:D}=e;if(c&&function(t,e){Uo(t)&&(t=Dc(t));for(const r in t){const n=t[r];let i;i=Xo(n)?"default"in n?Tl(n.from||r,n.default,!0):Tl(n.from||r):Tl(n),Xs(i)?Object.defineProperty(e,r,{enumerable:!0,configurable:!0,get:()=>i.value,set:t=>i.value=t}):e[r]=i}}(c,n,null),a)for(const t in a){const e=a[t];qo(e)&&(n[t]=e.bind(r))}if(i){0;const e=i.call(r,r);0,Xo(e)&&(t.data=Ws(e))}if(wc=!0,o)for(const t in o){const e=o[t],i=qo(e)?e.bind(r,r):qo(e.get)?e.get.bind(r,r):Ro;0;const a=!qo(e)&&qo(e.set)?e.set.bind(r):Ro,s=hp({get:i,set:a});Object.defineProperty(n,t,{enumerable:!0,configurable:!0,get:()=>s.value,set:t=>s.value=t})}if(s)for(const t in s)Ic(s[t],n,r,t);if(l){const t=qo(l)?l.call(r):l;Reflect.ownKeys(t).forEach(e=>{!function(t,e){if(zu){let r=zu.provides;const n=zu.parent&&zu.parent.provides;n===r&&(r=zu.provides=Object.create(n)),r[t]=e}}(e,t[e])})}function O(t,e){Uo(e)?e.forEach(e=>t(e.bind(r))):e&&t(e.bind(r))}if(u&&Cc(u,t,"c"),O(oc,p),O(ac,d),O(sc,m),O(lc,f),O(zl,h),O(Xl,g),O(fc,C),O(mc,w),O(dc,_),O(cc,b),O(uc,v),O(pc,I),Uo(k))if(k.length){const e=t.exposed||(t.exposed={});k.forEach(t=>{Object.defineProperty(e,t,{get:()=>r[t],set:e=>r[t]=e,enumerable:!0})})}else t.exposed||(t.exposed={});x&&t.render===Ro&&(t.render=x),null!=E&&(t.inheritAttrs=E),B&&(t.components=B),S&&(t.directives=S),I&&Kl(t)}function Cc(t,e,r){cl(Uo(t)?t.map(t=>t.bind(e.proxy)):t.bind(e.proxy),e,r)}function Ic(t,e,r,n){let i=n.includes(".")?Rl(r,n):()=>r[n];if(Vo(t)){const r=e[t];qo(r)&&Nl(i,r)}else if(qo(t))Nl(i,t.bind(r));else if(Xo(t))if(Uo(t))t.forEach(t=>Ic(t,e,r,n));else{const n=qo(t.handler)?t.handler.bind(r):e[t.handler];qo(n)&&Nl(i,n,t)}else 0}function kc(t){const e=t.type,{mixins:r,extends:n}=e,{mixins:i,optionsCache:o,config:{optionMergeStrategies:a}}=t.appContext,s=o.get(e);let l;return s?l=s:i.length||r||n?(l={},i.length&&i.forEach(t=>Ec(l,t,a,!0)),Ec(l,e,a)):l=e,Xo(e)&&o.set(e,l),l}function Ec(t,e,r,n=!1){const{mixins:i,extends:o}=e;o&&Ec(t,o,r,!0),i&&i.forEach(e=>Ec(t,e,r,!0));for(const i in e)if(n&&"expose"===i);else{const n=Bc[i]||r&&r[i];t[i]=n?n(t[i],e[i]):e[i]}return t}const Bc={data:Sc,props:Fc,emits:Fc,methods:Tc,computed:Tc,beforeCreate:Oc,created:Oc,beforeMount:Oc,mounted:Oc,beforeUpdate:Oc,updated:Oc,beforeDestroy:Oc,beforeUnmount:Oc,destroyed:Oc,unmounted:Oc,activated:Oc,deactivated:Oc,errorCaptured:Oc,serverPrefetch:Oc,components:Tc,directives:Tc,watch:function(t,e){if(!t)return e;if(!e)return t;const r=Po(Object.create(null),t);for(const n in e)r[n]=Oc(t[n],e[n]);return r},provide:Sc,inject:function(t,e){return Tc(Dc(t),Dc(e))}};function Sc(t,e){return e?t?function(){return Po(qo(t)?t.call(this,this):t,qo(e)?e.call(this,this):e)}:e:t}function Dc(t){if(Uo(t)){const e={};for(let r=0;r=a?l:l*("desc"==r[n]?-1:1)}return t.index-e.index}(t,e,r)})}function Yn(t,e,r){for(var n=-1,i=e.length,o={};++n-1;)a!==t&&Vt.call(a,l,1),Vt.call(t,l,1);return t}function qn(t,e){for(var r=t?e.length:0,n=r-1;r--;){var i=e[r];if(r==n||i!==o){var o=i;vo(i)?Vt.call(t,i,1):pi(t,i)}}return t}function Zn(t,e){return t+fe(wr()*(e-t+1))}function Vn(t,e){var r="";if(!t||e<1||e>h)return r;do{e%2&&(r+=t),(e=fe(e/2))&&(t+=t)}while(e);return r}function zn(t,e){return No(Eo(t,e,il),t+"")}function Xn(t){return zr(Ga(t))}function $n(t,e){var r=Ga(t);return jo(r,ln(e,0,r.length))}function ti(t,e,r,n){if(!ea(t))return t;for(var o=-1,s=(e=vi(e,t)).length,a=s-1,l=t;null!=l&&++oo?0:o+e),(r=r>o?o:r)<0&&(r+=o),o=e>r?0:r-e>>>0,e>>>=0;for(var s=n(o);++i