From 6e9b7cdb107fe6726a96be14b7ccd9b8ad171421 Mon Sep 17 00:00:00 2001 From: pompurin404 Date: Thu, 15 Aug 2024 19:43:03 +0800 Subject: [PATCH] Allow disable traffic in tray --- src/main/core/mihomoApi.ts | 21 +++++++++++------- src/renderer/src/pages/settings.tsx | 34 ++++++++++++++++++++--------- src/shared/types.d.ts | 1 + 3 files changed, 38 insertions(+), 18 deletions(-) diff --git a/src/main/core/mihomoApi.ts b/src/main/core/mihomoApi.ts index 323227c..942f7fa 100644 --- a/src/main/core/mihomoApi.ts +++ b/src/main/core/mihomoApi.ts @@ -144,6 +144,7 @@ export const stopMihomoTraffic = (): void => { } const mihomoTraffic = async (): Promise => { + const { showTraffic = true } = await getAppConfig() const controledMihomoConfig = await getControledMihomoConfig() let server = controledMihomoConfig['external-controller'] const secret = controledMihomoConfig.secret ?? '' @@ -155,16 +156,20 @@ const mihomoTraffic = async (): Promise => { mihomoTrafficWs.onmessage = (e): void => { const data = e.data as string const json = JSON.parse(data) as IMihomoTrafficInfo - if (trafficHopping) { - tray?.setTitle('↑' + `${calcTraffic(json.up)}/s`.padStart(12), { - fontType: 'monospaced' - }) + if (showTraffic) { + if (trafficHopping) { + tray?.setTitle('↑' + `${calcTraffic(json.up)}/s`.padStart(12), { + fontType: 'monospaced' + }) + } else { + tray?.setTitle('↓' + `${calcTraffic(json.down)}/s`.padStart(12), { + fontType: 'monospaced' + }) + } + trafficHopping = !trafficHopping } else { - tray?.setTitle('↓' + `${calcTraffic(json.down)}/s`.padStart(12), { - fontType: 'monospaced' - }) + tray?.setTitle('') } - trafficHopping = !trafficHopping tray?.setToolTip( '↑' + diff --git a/src/renderer/src/pages/settings.tsx b/src/renderer/src/pages/settings.tsx index 151de38..9c6b0a0 100644 --- a/src/renderer/src/pages/settings.tsx +++ b/src/renderer/src/pages/settings.tsx @@ -11,7 +11,8 @@ import { checkUpdate, patchControledMihomoConfig, isPortable, - setPortable + setPortable, + restartCore } from '@renderer/utils/ipc' import { IoLogoGithub } from 'react-icons/io5' import { platform, version } from '@renderer/utils/init' @@ -30,6 +31,7 @@ const Settings: React.FC = () => { controlDns = true, controlSniff = true, useDockIcon = true, + showTraffic = true, delayTestUrl, delayTestTimeout, autoCheckUpdate, @@ -124,15 +126,27 @@ const Settings: React.FC = () => { /> {platform === 'darwin' && ( - - { - patchAppConfig({ useDockIcon: v }) - }} - /> - + <> + + { + await patchAppConfig({ useDockIcon: v }) + }} + /> + + + { + await patchAppConfig({ showTraffic: v }) + await restartCore() + }} + /> + + )} {platform === 'win32' && ( diff --git a/src/shared/types.d.ts b/src/shared/types.d.ts index 686feef..0b648d5 100644 --- a/src/shared/types.d.ts +++ b/src/shared/types.d.ts @@ -217,6 +217,7 @@ interface IAppConfig { controlDns?: boolean controlSniff?: boolean useDockIcon?: boolean + showTraffic?: boolean useNameserverPolicy: boolean nameserverPolicy: { [key: string]: string | string[] } }