Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- Windows: content sits on an inset reading plate below the header, with a fine edge; the document editor reads directly on it. (#453)
- Pixel theme: window headers no longer use a live background blur; windows use one tinted frame around the reading plate, which saves GPU work with many windows open. (#454)
- Terminals: terminal text can sit directly on the window's reading plate. Settings → Terminal → Terminal Background chooses Auto (transparent on macOS, opaque on Windows and Linux), Transparent or Opaque; changing it keeps the running shell and its output. (#456)
- Control Center: quick switches for theme (Cove or Pixel), light, dark or follow system, pixel background, motion signals and the minimap; plugin themes are chosen in Settings, and "Top-right banner" is now "Notification banner" in Settings. (#457)

### 🐛 Fixed

Expand Down
2 changes: 1 addition & 1 deletion docs/plugins/THEMES.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
A theme plugin can change OpenCove's visual foundation, materials, typography,
component skins and motion. It does not need a backend or a canvas window.
Install, update, reload, disable and uninstall it through the same plugin manager
or CLI as any other package. Enabled themes appear in the top-right Control Center and Settings → Appearance.
or CLI as any other package. Enabled themes appear in Settings → Appearance; while one is active, the Control Center shows its name.

## Ownership and scope

Expand Down
7 changes: 4 additions & 3 deletions docs/ui/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -309,9 +309,10 @@
- 模态界面复用共享 Dialog 的 inert、Tab 约束与焦点恢复。手机打开搜索先聚焦关闭控件,
避免自动唤起软键盘;定位后关闭搜索,返回导航控件,不聚焦终端输入。
弹层交接后旧界面不得通过延迟恢复抢走新界面的焦点。
- 控制中心开关保留标签与真实 checked 状态,不重复显示开/关状态文字;
所有主题来自既有主题 registry,选项使用轻量预览与单选语义。控制中心与设置页共用插件主题可用性规则,
展示已启用且就绪的主题名称与来源;禁用或卸载时隐藏选项,但不改写用户保存的主题选择。
- 控制中心只放快捷设置:主题族(Cove / Pixel)、明暗(Pixel 没有跟随系统,切到 Pixel 时按系统当前
的明暗选)、像素背景、动态信号(新建、关闭、工作中三种像素效果一起开关)和缩略图。开关保留标签与真实
checked 状态,不重复显示开/关状态文字。主题详情、预览和插件主题在设置 → 外观;当前是插件主题时,
控制中心显示它的名字,不可用或加载失败时给出提示,但不改写用户保存的主题选择。通知横幅在设置 → 通用。

参考:WAI-ARIA APG Dialog (Modal) 与 Combobox 的焦点约束、返回目标与输入焦点模型。

Expand Down
6 changes: 3 additions & 3 deletions scripts/ui-style-ratchet.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"src/app/renderer/styles/base.css": 1,
"src/app/renderer/styles/canvas-node-window.css": 1,
"src/app/renderer/styles/command-center.css": 6,
"src/app/renderer/styles/control-center.css": 7,
"src/app/renderer/styles/control-center.css": 5,
"src/app/renderer/styles/cove-fields.css": 5,
"src/app/renderer/styles/cove-window.css": 9,
"src/app/renderer/styles/cove-window.responsive.css": 1,
Expand Down Expand Up @@ -86,7 +86,7 @@
"src/app/renderer/styles/app-startup-state.css": 12,
"src/app/renderer/styles/base.css": 1,
"src/app/renderer/styles/command-center.css": 4,
"src/app/renderer/styles/control-center.css": 5,
"src/app/renderer/styles/control-center.css": 3,
"src/app/renderer/styles/cove-window.css": 4,
"src/app/renderer/styles/document-node.css": 2,
"src/app/renderer/styles/image-node.css": 1,
Expand Down Expand Up @@ -148,7 +148,7 @@
"src/app/renderer/styles/app-notifications.css": 7,
"src/app/renderer/styles/app-startup-state.css": 19,
"src/app/renderer/styles/command-center.css": 18,
"src/app/renderer/styles/control-center.css": 16,
"src/app/renderer/styles/control-center.css": 14,
"src/app/renderer/styles/cove-fields.css": 9,
"src/app/renderer/styles/cove-window.css": 17,
"src/app/renderer/styles/cove-window.responsive.css": 3,
Expand Down
20 changes: 20 additions & 0 deletions src/app/renderer/i18n/locales/en.controlCenter.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
export const enControlCenter = {
controlCenter: {
open: 'Control Center',
title: 'Control Center',
quickSettings: 'Quick settings',
sidebar: 'Sidebar',
minimap: 'Minimap',
theme: 'Theme',
familyCove: 'Cove',
familyPixel: 'Pixel',
mode: 'Light or dark',
pixelBackground: 'Pixel background',
motionSignals: 'Motion signals',
moreSettings: 'Theme and display settings',
shown: 'Shown',
hidden: 'Hidden',
on: 'On',
off: 'Off',
},
} as const
2 changes: 1 addition & 1 deletion src/app/renderer/i18n/locales/en.settingsPanel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ export const enSettingsPanel = {
'Show a native system notification when an agent transitions from working to standby.',
},
agentStandbyBanner: {
enabledLabel: 'Top-right banner',
enabledLabel: 'Notification banner',
enabledHelp: 'Show an in-app banner when an agent transitions from working to standby.',
contextTitle: 'Banner context',
contextHelp: 'Choose what context chips are shown in the banner.',
Expand Down
15 changes: 2 additions & 13 deletions src/app/renderer/i18n/locales/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import { enRole } from './en.role'
import { enWorkspaceCanvas } from './en.workspaceCanvas'
import { enSidebarView } from './en.sidebarView'
import { enCanvasCollapse } from './en.canvasCollapse'
import { enControlCenter } from './en.controlCenter'
import { enSpaceCollapse } from './en.spaceCollapse'

export const en = {
Expand All @@ -30,6 +31,7 @@ export const en = {
'This theme is unavailable. The default theme is shown until it is enabled again.',
},
...enCanvasCollapse,
...enControlCenter,
...enSpaceCollapse,
common: {
actions: 'Actions',
Expand Down Expand Up @@ -131,19 +133,6 @@ export const en = {
restartToUpdateShort: 'Restart',
restartToUpdateTitle: 'Version {{version}} is ready to install',
},
controlCenter: {
open: 'Control Center',
title: 'Control Center',
quickSettings: 'Quick settings',
sidebar: 'Sidebar',
minimap: 'Minimap',
theme: 'Theme',
agentStandbyBanner: 'Top-right banner',
shown: 'Shown',
hidden: 'Hidden',
on: 'On',
off: 'Off',
},
whatsNew: {
title: "What's New",
subtitleRange: 'Updated from {{fromVersion}} to {{toVersion}}.',
Expand Down
20 changes: 20 additions & 0 deletions src/app/renderer/i18n/locales/zh-CN.controlCenter.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
export const zhCNControlCenter = {
controlCenter: {
open: '控制中心',
title: '控制中心',
quickSettings: '快捷设置',
sidebar: '侧边栏',
minimap: '缩略图',
theme: '主题',
familyCove: 'Cove',
familyPixel: 'Pixel',
mode: '明暗',
pixelBackground: '像素背景',
motionSignals: '动态信号',
moreSettings: '主题与显示设置',
shown: '已显示',
hidden: '已隐藏',
on: '已开启',
off: '已关闭',
},
} as const
4 changes: 2 additions & 2 deletions src/app/renderer/i18n/locales/zh-CN.settingsPanel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -156,8 +156,8 @@ export const zhCNSettingsPanel = {
enabledHelp: '当 Agent 从工作状态变为待命时,显示原生系统通知。',
},
agentStandbyBanner: {
enabledLabel: '右上角横幅',
enabledHelp: '当 Agent 从工作状态变为待命时,显示应用内右上角横幅。',
enabledLabel: '通知横幅',
enabledHelp: '当 Agent 从工作状态变为待命时,在应用内显示通知横幅。',
contextTitle: '横幅信息',
contextHelp: '控制右上角提醒横幅中显示的上下文信息。',
showTask: '显示任务',
Expand Down
15 changes: 2 additions & 13 deletions src/app/renderer/i18n/locales/zh-CN.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { zhCNCommonRemoteEndpoints } from './zh-CN.commonRemoteEndpoints'
import { zhCNMessages } from './zh-CN.messages'
import { zhCNSidebarView } from './zh-CN.sidebarView'
import { zhCNCanvasCollapse } from './zh-CN.canvasCollapse'
import { zhCNControlCenter } from './zh-CN.controlCenter'
import { zhCNSpaceCollapse } from './zh-CN.spaceCollapse'
import { zhCNShell } from './zh-CN.shell'
import { zhCNSpaceExplorer } from './zh-CN.spaceExplorer'
Expand All @@ -30,6 +31,7 @@ export const zhCN = {
unavailableTheme: '此主题暂不可用。启用后将恢复,目前显示默认主题。',
},
...zhCNCanvasCollapse,
...zhCNControlCenter,
...zhCNSpaceCollapse,
common: {
actions: '操作',
Expand Down Expand Up @@ -130,19 +132,6 @@ export const zhCN = {
restartToUpdateShort: '重启更新',
restartToUpdateTitle: '版本 {{version}} 已准备好安装',
},
controlCenter: {
open: '控制中心',
title: '控制中心',
quickSettings: '快捷设置',
sidebar: '侧边栏',
minimap: '缩略图',
theme: '主题',
agentStandbyBanner: '右上角横幅',
shown: '已显示',
hidden: '已隐藏',
on: '已开启',
off: '已关闭',
},
whatsNew: {
title: '更新内容',
subtitleRange: '从 {{fromVersion}} 更新到 {{toVersion}}。',
Expand Down
16 changes: 13 additions & 3 deletions src/app/renderer/shell/components/AppShellOverlays.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,12 @@ export function AppShellOverlays({
anchorRef={controlCenterAnchorRef}
uiTheme={agentSettings.uiTheme}
isMinimapVisible={activeWorkspace?.isMinimapVisible ?? false}
isStandbyBannerEnabled={agentSettings.standbyBannerEnabled}
isPixelBackgroundEnabled={agentSettings.canvasPixelBackgroundEnabled}
areMotionSignalsEnabled={
agentSettings.nodeCreationPixelEffectEnabled &&
agentSettings.nodeClosePixelEffectEnabled &&
agentSettings.agentWorkingPixelEffectEnabled
}
hasActiveWorkspace={activeWorkspace !== null}
onClose={() => {
onCloseControlCenter()
Expand All @@ -80,10 +85,15 @@ export function AppShellOverlays({

onMinimapVisibilityChange(!activeWorkspace.isMinimapVisible)
}}
onToggleStandbyBanner={() => {
onChangePixelBackground={enabled => {
setAgentSettings(prev => ({ ...prev, canvasPixelBackgroundEnabled: enabled }))
}}
onChangeMotionSignals={enabled => {
setAgentSettings(prev => ({
...prev,
standbyBannerEnabled: !prev.standbyBannerEnabled,
nodeCreationPixelEffectEnabled: enabled,
nodeClosePixelEffectEnabled: enabled,
agentWorkingPixelEffectEnabled: enabled,
}))
}}
onOpenSettings={() => {
Expand Down
Loading
Loading