feat: 原生系统提示词只读展示、会话末尾 fork、深浅色主题

This commit is contained in:
Rick Ye
2026-09-09 03:16:13 +08:00
parent b9bb72ada9
commit bb0aedd27c
15 changed files with 376 additions and 219 deletions
+10 -2
View File
@@ -1,4 +1,4 @@
import { app, BrowserWindow, ipcMain, Menu, shell } from 'electron'
import { app, BrowserWindow, ipcMain, Menu, nativeTheme, shell } from 'electron'
import { existsSync } from 'node:fs'
import { join } from 'node:path'
import { registerIpc } from './ipc'
@@ -32,13 +32,16 @@ function registerWindowControls(): void {
}
async function createWindow(): Promise<void> {
// 窗口底色跟随深浅色(加载/resize 时不闪白);构造函数里已按持久化偏好设置过
// nativeTheme.themeSource,这里用实际生效值
const dark = nativeTheme.shouldUseDarkColors
const win = new BrowserWindow({
width: 1280,
height: 840,
minWidth: 960,
minHeight: 640,
show: false,
backgroundColor: '#ffffff',
backgroundColor: dark ? '#212121' : '#ffffff',
title: 'Inkreach Agent',
// 窗口/任务栏图标(Windows/Linux;macOS 打包时由 build 配置提供 icns)
...(existsSync(APP_ICON) ? { icon: APP_ICON } : {}),
@@ -52,6 +55,11 @@ async function createWindow(): Promise<void> {
}
})
// 深浅色切换时同步窗口底色(避免暗色下 resize/加载闪白块)
nativeTheme.on('updated', () => {
win.setBackgroundColor(nativeTheme.shouldUseDarkColors ? '#212121' : '#ffffff')
})
// 最大化状态同步给渲染层(切换「最大化/还原」字形)
const sendWinState = (): void => win.webContents.send('win:state', win.isMaximized())
win.on('maximize', sendWinState)