From 2d2743cbb12a2511187c5f8c0ca4f18bc81eba82 Mon Sep 17 00:00:00 2001 From: muwoo <2424880409@qq.com> Date: Thu, 19 Aug 2021 14:03:50 +0800 Subject: [PATCH 1/3] =?UTF-8?q?ref:=20=E4=BC=98=E5=8C=96=E5=8F=96=E8=89=B2?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/common/listener.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/common/listener.js b/src/main/common/listener.js index 7c20953..c86e5cf 100644 --- a/src/main/common/listener.js +++ b/src/main/common/listener.js @@ -85,7 +85,13 @@ class Listener { init(mainWindow) { this.fn = throttle(({x, y}, picker) => { - const img = robot.screen.capture(parseInt(x) - 5, parseInt(y) - 5, 9, 9); + const { scaleFactor } = screen.getDisplayNearestPoint({x, y}); + const img = robot.screen.capture( + x - parseInt(5 / scaleFactor), + y - parseInt(5 / scaleFactor), + 10, + 10 + ); const colors = {} From b58c37842a8d523597d68bc3f47c2a0cbd4fcec3 Mon Sep 17 00:00:00 2001 From: muwoo <2424880409@qq.com> Date: Thu, 19 Aug 2021 15:53:05 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=E8=A7=A6=E6=91=B8=E6=9D=BF?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E7=B3=BB=E7=BB=9F=E7=9B=91=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/common/icons/charger.png | Bin 0 -> 2520 bytes src/main/common/icons/chip.png | Bin 0 -> 2407 bytes src/main/common/icons/hard-disk-drive.png | Bin 0 -> 876 bytes src/main/common/icons/internet.png | Bin 0 -> 2515 bytes src/main/common/icons/power.png | Bin 0 -> 1719 bytes src/main/common/icons/ram.png | Bin 0 -> 1230 bytes src/main/common/listener.js | 14 ++- src/main/common/monitor.js | 124 ++++++++++++++++++++++ 8 files changed, 137 insertions(+), 1 deletion(-) create mode 100644 src/main/common/icons/charger.png create mode 100644 src/main/common/icons/chip.png create mode 100644 src/main/common/icons/hard-disk-drive.png create mode 100644 src/main/common/icons/internet.png create mode 100644 src/main/common/icons/power.png create mode 100644 src/main/common/icons/ram.png create mode 100644 src/main/common/monitor.js diff --git a/src/main/common/icons/charger.png b/src/main/common/icons/charger.png new file mode 100644 index 0000000000000000000000000000000000000000..be8f64f76e386ad292f0bcba25b5dca42045b628 GIT binary patch literal 2520 zcmY*bd0bQ159&OPJhu@{BZ zLjnL$`}aBfDEw}vslgTR>&*Dy6izjg>P`jVcAokw1E$zx!}j^O1CVSAK*lKm{-X$G zOahQd0^k)L0CF(^TUez+Z;ImJR5)#agu6SyDX1sep~v~m>gGuFNUHUQ{{ zN`qXmKu1H4JUA8SjsFw;gS_FCY-~-a$}-n*<`N0@p}eY zft6vRG4?%$bIjhD=I(`cic1K`?jTqbNX8CGEEY>iI1)kjad!EbuGrZdM{zhTGLe{+ zltf6fBE%&`62G#uvm=r$iI$dl1q07M9?M~H@v-b}A4LAE;~dToOJK4%%(z&rQkM}L zm&maVTvWKYca_q+5$w004-9{mxWhF62!~+RcOPt?gQ~+69=K zQfO$I@in~pBgX>oZ~Djb24?nt6Hs7e6WDpJMcUinUtdgdE6KifX?yR}n|Hi|6ARnt z_yqI&A${`KWy9$ctKIU|^oF(Rg_OA3l;#KQ=Dc$G#L9BIr14gupWnURJt}_czWDqX zDpp@Cdmec8xbN#Q*LLq%y{U{u7RtJ(acD_xq2;x76Y^CK&#u5~Zv3qSZG+8_-lbP@ zvGv(^`L55h%}?YRjU1^u?LpdL9f7Z^9Ni<(v1wu1g35}3d53#_;u2V3W7$M>_XeaUA`}K5Bu-%TW&+H2LXaO@mTNPo9_hgN&Hu6NrbnTnMLjWz>N+gQiTfHpYl_ z2`0g_+Bfj?HY0Mnpb)@Sfbq$9pk0S#lpY^q2f#*@M#*k#U9P@K1KyrbhKz z11z~*U2j~~7IW5Vda;eCF76Low%Q%6+IAj8kG5pRWnGXx#RuA0>r)=inF~2Wm1+6U z^ytDVbT_wRky)C$SM#5rqI$-I4Pz0>{%Y@-u6WdxuEvevZX)v%mg_TJu}5{1NKbP9B++Y=hpX!l z>Djak$MiY9LGtOQ-}x9yPALk_+WwG<*f3;(IYpGk>!4y7+Do}~6G1&8Tu#8oA~|yOwMhKi=v|7P1M2HjymWK{PU`JM))d$h1F--O7SVo6kc}7|ihpsk)wL zjec`&wV8bpchUbc52j_coif#R_aJpkVy{2d>%_)4qxMpKYr?MGMHHJ; zh?zG%oBd1#iTOo*Rjk<%zoxrYaGQZo1$)eIKsdMTWM2~D`VI(=1TXtjZZQe@*2BqG z^U0=JaL4+O_}$$LXMT$^ZVJ_MgT5a8>|MpwzrKSwG0jH;Z%(XN?IUg#2(_D4`^G`e zQOmEt757iNKW)f}(Q%z+YVMpz<__0KH?JO-htGq)i?844)D^CX*blr1IQfz}-o*;D zVl$!dQb~Zt7tG*;yoqeL&Z8M!^%1i8EQ2dl7O50f?&w9sO~kiuFKn!=XzB2iYp>8( zN}iLyscv&bha^J7LT_HVv~<}> zmVVR7zeT4Xjd#4NCu$m*pB~uRpL;S!8tQu;QWJ3n!+kXxLWAKCT-B2m3`IpI1V6v* zQuaE!n#!`7zYkMC^iuYQT@9Zpw!r&eC1h^iH6wj{9m3m=o6!roS125B$SClAjL{4! z-_>?j>QpRQU9bDv)Kfgj)X=KoYC6>MTL0<@{9T&Pyulwh8hUh_#^aag z+d%Wk_mbM$u8Ns}8_eP6kd&VUa79KoV!Zlhp;go4h^}&x zr&MgQFQO>x4QyxT;d8x?zUWwF|3Vr`WmTSU7)pe$*nIAg`O5*T{ORZG$T`R^di&G! z+YVjktSzui?`tGcmr7k`Pb8Y|Kpqw4-RNG}OWIQ8I6m+B;(5Zg%_n~#nAHU5{VGf} t(nXLn4e6@`L4F_ZG_Mbr+xdvh6Ogo~%IV^xaJlk-W&a)z=Nd;k?{9HfG}{0G literal 0 HcmV?d00001 diff --git a/src/main/common/icons/chip.png b/src/main/common/icons/chip.png new file mode 100644 index 0000000000000000000000000000000000000000..20d1e4d8fe02c0e4f042590f23551b756c4ca58f GIT binary patch literal 2407 zcmY*bdpwiv8^31^tC5N{r?n2q*h~~QEXOc8M2H;LmPIx!R>VSi%lp%TgdEmMD3f~8 zE3}0Uq|kw!b#lt_=THj2XVqK3_kKS2bA9jY{$AhfzOMU^=Q-)@WQ#(gkpKYH4m&GX z$XbY}3<7!=F~fQwBe|bKr2tTRdfB%CDQJzM*||~yII;-q&LSShB+D7(=}+dIYQ)5`)2z!uK&uT&-+=hC?edHi*Mvo8a+LQBitP270XU{dj$2 zV`Dslh$j+tA%JkAVNB4TX}#UXz{SOgfZVtZ$}I`p*29?`IwoUYz{@4)deZ z?_Q`>Gb9QBt8HdT#|N5T03Zf;SW$LyVWXMB1&Z#g9~H;UHlI^x(5=#{AE#|`pvJ3g z%yeN=lxEl6!XG%Jn9)i_TAw=?k89bm8HY>8HRNW|<^R&sI{V4ttc@p{L7)A+z)4q4 zN*K$G7^{xWF#k68iF{|yJG!KL_G$LtIVSE!SZ8bgDGSA8n&?Cvqz>UGj{)VBTBc|sIbSl@YSM=5jM9NChvYx?g17FNA&89SK0s4^9Qm7Y6jb zPx7XO!VT&o1&&vUfB0HN=LzfiRReY0r!osl9>d6^$@DLB9}}Jho>%LNbY2xe4oS4` zE3+|Fg9rD^ut7nG0KmdTOx7QuyCz> z9YavYq`yQ7Mc7`_?ld*W1K_RxU}~QgVP3kH)*R+|Jj{RCVH9<7c=0@%w~FvCu{$aj z=_YLnR3EwY*{)1*30it#_9fwuuRXGj%AUaF6I7T~CMp?2qOq96l_xM+uK+v|gep zgIFbeRqvpi4Q*(PYSo(|^Q&XKF+c<{)-C@Z}bz1qPc?lK82sYy1y@o1ZB^0D2=7xE+96DO6=hz3z}LRG?i zRKikeSacm<+lZPHp_u`buYFE{Db;$k!^#!>UZq0!;(>cu*OlBR(r0hHnRMoc!suHc zgOrpPezBMCXyc^DdOabGJcHge z*I_uiQ~JLB9L%q=&4O9)-=I9va%Tl8v~hWz{ax=cJb{*WNK@??VNamDTGIPY@8_LE z^?x5C$abwnJ)xw%VwhAeHJ$hxAmt-xcAIhRO#oY6`bC*JcZ~8GW)t6*n_wV%@+`4L zWZM^>A@6io<0a1U+Rjoke^9{fTL3NiIt32lFhQ Tu4|Qve;;;OJ6Q>~`^Wze@AUc3 literal 0 HcmV?d00001 diff --git a/src/main/common/icons/hard-disk-drive.png b/src/main/common/icons/hard-disk-drive.png new file mode 100644 index 0000000000000000000000000000000000000000..fe0bf9e0e81187a46dfcbacaa3042ba87fbbd359 GIT binary patch literal 876 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk)w#>VC6e(o)w^xH8yck9)#I3J7W;X?l$75C&EJfgS0#bCmc&wRy) z7BzQXKCIY%Xid=P*nIAXp58AXt`x{KyS+9;jkWH^daatQYt09z{1C31AXo3if9Z+; z1IJx|IBh&;@Au@t^gRDkv(As%9~7kjso6w4te;g?Rk3X=`^}He->=EtIW=MbGspkW z{#=&)blv7gN#2=R_1yfMp5H&zZ1Y39Vgi3XGykVY_m4FH`C!#VN%S)pIgt)pABHXi|&-%ZjD>1<3gYS&IiiDZH zTxl(pZmk~_o(plwaV0KUaJ|~vFx%+**8_Acv@$WU zGBMRQFt9Q(_+`p`0!2e^eoAIqC2kGf8M{k>8YDqB1m~xflqVLYGL)B>>t*I;7bhnc Zr0V4trO$q6BL!5%;OXk;vd$@?2>>QlaOnU5 literal 0 HcmV?d00001 diff --git a/src/main/common/icons/internet.png b/src/main/common/icons/internet.png new file mode 100644 index 0000000000000000000000000000000000000000..32ba236fab2ffcf6170cf96731f8ad181d8caab3 GIT binary patch literal 2515 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 YUDsk&t2i^%Me{rMUbm56>mDKg2b063{r~^~ literal 0 HcmV?d00001 diff --git a/src/main/common/icons/ram.png b/src/main/common/icons/ram.png new file mode 100644 index 0000000000000000000000000000000000000000..85ec3ff199f8fa3cd4c506370d000f4e7104dafb GIT binary patch literal 1230 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5SkC`tQyfTGCTej!EGrhgh998C+7ZhV+;(zK$(BQ-Uu z^KzC~o0!t?^G;dlE7y!Dz0cVxt+l@V}aq>xB~SVi!9I1GdId+ z2)rck_++h?&;yjPY< z=xn@@B;Wequj*)2v*^Q^OU7EfM=eAr#c{U=Sv=zXFz4yQo52<$Im%AGyOXp0znNV~o zqJCEMW~pk?Gp7R?dc&ggE&3#4m zIep{VmX;$^Pf7;ffBD04_2FN&C!h1NS>Hc3fidcBnZ}J)IsVS=NB!KJYL9R+J8sr; z-^>=^v{%hF{M~991DDC4J*#b=rtiPkz;I0CgQ4@=Q!j45F5h}H)8o2}W8 z|HajZ{sks9bX%2X87%mJe24VBo=dwECil7}w4VHA=*Fv-SRLUNzroE=Y~{<+g5N%~ zU#{R$Z!mo~{g8^Ogs|70-sx+@Ybq6H|1zDtpN;+3*F4woqjx!tAFiv*Ip~+^s`Yy1 z^ZlJyzHWTm-w6ggU;bcUdgaLDSB4w50JE-YiEBhjN@7W>RdP`(kYX@0Ff!0JFxE9R z3^BB@GB&g_GSoIOure^XT-BL^q9HdwB{QuOw}wUPhBts3BtbR==ckpFCl;kLl$V$5 gW#(lUCnpx9>g5-u&wghk1ysb~>FVdQ&MBb@0DFxeHvj+t literal 0 HcmV?d00001 diff --git a/src/main/common/listener.js b/src/main/common/listener.js index c86e5cf..d6aada4 100644 --- a/src/main/common/listener.js +++ b/src/main/common/listener.js @@ -6,6 +6,7 @@ import ioHook from 'iohook'; import {throttle, commonConst} from './utils'; import path from 'path'; import fs from "fs"; +import mito from './monitor'; const browsers = require("../browsers")(); const {picker, separator, superPanel} = browsers; @@ -239,10 +240,21 @@ class Listener { showCloseButton: true }); + const monitor = new TouchBarPopover({ + items: mito.touchBar, + label: '系统监控', + showCloseButton: true + }); + const touchBar = new TouchBar({ - items: [plugin, ...system] + items: [ + plugin, + monitor, + ...system + ] }); mainWindow.setTouchBar(touchBar); + mito.start(mainWindow); }); } diff --git a/src/main/common/monitor.js b/src/main/common/monitor.js new file mode 100644 index 0000000..8ef56a0 --- /dev/null +++ b/src/main/common/monitor.js @@ -0,0 +1,124 @@ +const {TouchBar} = require('electron') +const path = require('path') +const si = require('systeminformation'); +const spawn = require('child_process').spawn; + +const {TouchBarButton, TouchBarSpacer} = TouchBar; + +const LOAD_NORMAL = "#2ecc71"; +const LOAD_MEDIUM = "#f1c40f"; +const LOAD_HIGH = "#d35400"; +const LOAD_SEVERE = "#e74c3c"; + +const cpu = new TouchBarButton({ + label: '', + backgroundColor: "#bdc3c7", + icon: path.join(__dirname, 'icons/chip.png'), + iconPosition: "left", + click: () => { + spawn("/System/Applications/Utilities/Activity Monitor.app/Contents/MacOS/Activity\ Monitor", []); + } +}); + +const memory = new TouchBarButton({ + label: '', + backgroundColor: "#bdc3c7", + icon: path.join(__dirname, 'icons/ram.png'), + iconPosition: "left" +}); + +const network = new TouchBarButton({ + label: '', + backgroundColor: '#3498db', + icon: path.join(__dirname, 'icons/internet.png'), + iconPosition: "left" +}); + +const battery = new TouchBarButton({ + label: '', + backgroundColor: "#bdc3c7", + icon: path.join(__dirname, 'icons/power.png'), + iconPosition: "left" +}); + +const updateData = () => { + si.currentLoad(function(data) { + if (typeof data !== 'undefined' && data){ + const load = data.currentLoad.toFixed(0) + cpu.label = load+"%" + if (load <= 20) cpu.backgroundColor = LOAD_NORMAL; + else if (load > 20 && load <= 40) cpu.backgroundColor = LOAD_MEDIUM; + else if (load > 40 && load <= 80) cpu.backgroundColor = LOAD_HIGH; + else if (load > 80 && load <= 100) cpu.backgroundColor = LOAD_SEVERE; + } + }) + si.mem(function(data) { + if (typeof data !== 'undefined' && data){ + const load = ((100* data.active ) / data.total).toFixed(0) + memory.label = load+"%" + if (load <= 20) memory.backgroundColor = LOAD_NORMAL; + else if (load > 20 && load <= 40) memory.backgroundColor = LOAD_MEDIUM; + else if (load > 40 && load <= 80) memory.backgroundColor = LOAD_HIGH; + else if (load > 80 && load <= 100) memory.backgroundColor = LOAD_SEVERE; + } + + }) + si.networkStats("", function(data) { + if (typeof data !== 'undefined' && data){ + const kbtx = (data[0].tx_sec * 0.001).toFixed(0) + const kbrx = (data[0].rx_sec * 0.001).toFixed(0) + const l = (kbtx+kbrx).toString().length + + network.label = "⇡"+ (kbtx*0.001).toFixed(2) + +" ⇣"+ (kbrx*0.001).toFixed(2) +" MB/s" + + } + }) + + si.battery( function(data) { + if (typeof data !== 'undefined' && data){ + if (data.ischarging){ + battery.icon = path.join(__dirname, 'icons/charger.png') + }else{ + battery.icon = path.join(__dirname, 'icons/power.png') + } + const load = data.percent.toFixed(0) + battery.label = load+"%" + if (load <= 20) battery.backgroundColor = LOAD_SEVERE; + else if (load > 20 && load <= 40) battery.backgroundColor = LOAD_HIGH; + else if (load > 40 && load <= 80) battery.backgroundColor = LOAD_MEDIUM; + else if (load > 80 && load <= 100) battery.backgroundColor = LOAD_NORMAL + } + }) +} + +const touchBar = new TouchBar({ + items: [ + cpu, + new TouchBarSpacer({size: 'small'}), + memory, + new TouchBarSpacer({size: 'small'}), + network, + new TouchBarSpacer({size: 'small'}), + battery, + ] +}) + +let intervalObj; + +const start = (window) => { + window.on('blur', () => { + clearInterval(intervalObj); + }); + window.on('focus', () => { + intervalObj = setInterval(() => { + updateData(); + }, 1000); + }); + updateData(); +} + +export default { + start, + touchBar, +} From 7dd5407bbea916d32227695cef398368910d724b Mon Sep 17 00:00:00 2001 From: muwoo <2424880409@qq.com> Date: Mon, 23 Aug 2021 11:13:25 +0800 Subject: [PATCH 3/3] =?UTF-8?q?bugfix:=20=E4=BF=AE=E5=A4=8D=E8=B6=85?= =?UTF-8?q?=E7=BA=A7=E9=9D=A2=E6=9D=BF=E6=B5=85=E6=8B=B7=E8=B4=9D=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 ++- static/plugins/superPanel/index.js | 4 +++- static/utils.js | 25 ++++++++++++++++++++++++- 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index e8d6b21..7c4a1e5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rubick2", - "version": "0.0.3-beta.4", + "version": "0.0.3-beta.5", "author": "muwoo <2424880409@qq.com>", "description": "An electron-vue project", "license": null, @@ -81,6 +81,7 @@ "robotjs": "git+https://github.com/Toinane/robotjs.git", "semver": "^7.3.5", "sudo-prompt": "^9.2.1", + "systeminformation": "^5.8.0", "unzip": "^0.1.11", "uuid": "^8.3.2", "vue": "^2.5.16", diff --git a/static/plugins/superPanel/index.js b/static/plugins/superPanel/index.js index 8b7148f..de0b64f 100644 --- a/static/plugins/superPanel/index.js +++ b/static/plugins/superPanel/index.js @@ -4,6 +4,7 @@ const path = require('path'); const fs = require('fs'); const { spawn } = require ('child_process'); const mineType = require("mime-types"); +const {extend} = require('../../utils'); new Vue({ el: '#app', @@ -116,7 +117,8 @@ new Vue({ this.targetOptions = this.options.common; } else { // 有文件选择 - this.targetOptions = JSON.parse(JSON.stringify(this.options.selected)); + this.targetOptions = []; + extend(this.targetOptions, this.options.selected, true); // 检测上传 (this.selectData.optionPlugin || []).forEach(plugin => { plugin.features.forEach(fe => { diff --git a/static/utils.js b/static/utils.js index 581fb21..a2b6024 100644 --- a/static/utils.js +++ b/static/utils.js @@ -20,8 +20,31 @@ function getData(path, defaultValue) { } } +const isArray = Array.isArray || + function(object){ return object instanceof Array } + +function isPlainObject(obj) { + return isObject(obj) && Object.getPrototypeOf(obj) == Object.prototype +} + +function isObject(obj) { return typeof obj == "object" } + + +function extend(target, source, deep) { + for (let key in source) + if (deep && (isPlainObject(source[key]) || isArray(source[key]))) { + if (isPlainObject(source[key]) && !isPlainObject(target[key])) + target[key] = {} + if (isArray(source[key]) && !isArray(target[key])) + target[key] = [] + extend(target[key], source[key], deep) + } + else if (source[key] !== undefined) target[key] = source[key] +} + module.exports = { getlocalDataFile, saveData, - getData + getData, + extend }