From 794458b006e6398b6914436af08d60ff89c65eef Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Sat, 11 Sep 2021 22:26:29 +0800 Subject: [PATCH] perf: mac theme icon --- packages/core/src/utils/util.log.js | 2 +- packages/core/start2.js | 3 +-- packages/gui/public/logo/win-16.svg | 20 +++++++++++++++ packages/gui/src/background.js | 38 ++++++++++++++++++----------- packages/gui/src/bridge/backend.js | 1 + packages/gui/src/utils/util.log.js | 2 +- 6 files changed, 48 insertions(+), 18 deletions(-) create mode 100644 packages/gui/public/logo/win-16.svg diff --git a/packages/core/src/utils/util.log.js b/packages/core/src/utils/util.log.js index a0e5c711..0934cebe 100644 --- a/packages/core/src/utils/util.log.js +++ b/packages/core/src/utils/util.log.js @@ -10,5 +10,5 @@ log4js.configure({ appenders: { std: { type: 'stdout' }, file: { type: 'file', pattern: 'yyyy-MM-dd', daysToKeep: 3, filename} }, categories: { default: { appenders: ['file', 'std'], level: level } } }) -const logger = log4js.getLogger('server') +const logger = log4js.getLogger('core') module.exports = logger diff --git a/packages/core/start2.js b/packages/core/start2.js index 6e459147..6eaa8fb7 100644 --- a/packages/core/start2.js +++ b/packages/core/start2.js @@ -1,2 +1 @@ -// eslint-disable-next-line no-unused-vars -const mitmproxy = require('./start/mitmproxy.js') +const https = require('https') diff --git a/packages/gui/public/logo/win-16.svg b/packages/gui/public/logo/win-16.svg new file mode 100644 index 00000000..504b59db --- /dev/null +++ b/packages/gui/public/logo/win-16.svg @@ -0,0 +1,20 @@ + + + window + + + + + + + + + + + + + + + + + diff --git a/packages/gui/src/background.js b/packages/gui/src/background.js index c3af7c55..341fff54 100644 --- a/packages/gui/src/background.js +++ b/packages/gui/src/background.js @@ -1,7 +1,7 @@ 'use strict' /* global __static */ import path from 'path' -import { app, protocol, BrowserWindow, Menu, Tray, ipcMain, dialog, powerMonitor } from 'electron' +import { app, protocol, BrowserWindow, Menu, Tray, ipcMain, dialog, powerMonitor, nativeImage, nativeTheme } from 'electron' import { createProtocol } from 'vue-cli-plugin-electron-builder/lib' import backend from './bridge/backend' import DevSidecar from '@docmirror/dev-sidecar' @@ -23,7 +23,6 @@ let forceClose = false protocol.registerSchemesAsPrivileged([ { scheme: 'app', privileges: { secure: true, standard: true } } ]) - // 隐藏主窗口,并创建托盘,绑定关闭事件 function setTray (app) { // 用一个 Tray 来表示一个图标,这个图标处于正在运行的系统的通知区 @@ -41,32 +40,43 @@ function setTray (app) { } ] // 设置系统托盘图标 - let icon = '128x128.png' + const iconRootPath = path.join(__dirname, '../extra/icons/tray') + let iconPath = path.join(iconRootPath, 'icon.png') + const iconWhitePath = path.join(iconRootPath, 'icon-white.png') + const iconBlackPath = path.join(iconRootPath, 'icon-black.png') if (isMac) { - icon = '16x16-black.png' + iconPath = nativeTheme.shouldUseDarkColors ? iconWhitePath : iconBlackPath + } + + const trayIcon = nativeImage.createFromPath(iconPath) + const appTray = new Tray(trayIcon) + + // 当桌面主题更新时 + if (isMac) { + nativeTheme.on('updated', () => { + console.log('i am changed') + if (nativeTheme.shouldUseDarkColors) { + console.log('i am dark.') + tray.setImage(iconWhitePath) + } else { + console.log('i am light.') + tray.setImage(iconBlackPath) + // tray.setPressedImage(iconWhitePath) + } + }) } - const iconPath = path.join(__dirname, '../extra/icons/', icon) - const appTray = new Tray(iconPath) // 图标的上下文菜单 const contextMenu = Menu.buildFromTemplate(trayMenuTemplate) // 设置托盘悬浮提示 appTray.setToolTip('DevSidecar-开发者边车辅助工具') - // 单击托盘小图标显示应用 appTray.on('click', () => { // 显示主程序 win.show() }) - // 设置托盘菜单 - // appTray.setContextMenu(contextMenu) - - // appTray.on('double-click', function () { - // log.info('double click') - // win.show() - // }) appTray.on('right-click', function (event, bounds) { setTimeout(function () { appTray.popUpContextMenu(contextMenu) diff --git a/packages/gui/src/bridge/backend.js b/packages/gui/src/bridge/backend.js index 041e878e..78e262ce 100644 --- a/packages/gui/src/bridge/backend.js +++ b/packages/gui/src/bridge/backend.js @@ -14,6 +14,7 @@ const modules = { export default { install (context) { for (const module in modules) { + console.log('install', module) modules[module].install(context) } }, diff --git a/packages/gui/src/utils/util.log.js b/packages/gui/src/utils/util.log.js index f1cefed9..533a6666 100644 --- a/packages/gui/src/utils/util.log.js +++ b/packages/gui/src/utils/util.log.js @@ -10,5 +10,5 @@ log4js.configure({ appenders: { std: { type: 'stdout' }, file: { type: 'file', pattern: 'yyyy-MM-dd', daysToKeep: 3, filename } }, categories: { default: { appenders: ['file', 'std'], level } } }) -const logger = log4js.getLogger('server') +const logger = log4js.getLogger('gui') module.exports = logger