bug: Windows 10 默认外观(壁纸「无」、桌面透明度 0%)左侧栏半透明,透出桌面与背后窗口

Open
#9,867 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
43/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
electron, typescript
Domain
desktop, frontend

Research direction

Start with apps/desktop/src/main/vibrancyConfig.ts and docs/design-rules/wallpaper.md. On Windows 10, trace the reported desktopBlur value through resolveVibrancyConfig, and compare its background settings with html[data-desktop-background] and the sidebar styling. Reproduce at 0% transparency; done means the sidebar is opaque at the default setting while the documented wallpaper and transparency behavior remains correct.

Written by the indexing model from the issue text.

Description

bug

问题描述 / What happened

实际行为

Windows 10 桌面端 0.1.130,主题为 CINDY Light(window-theme-mode.json:familyId: "cindy"、resolvedIsDark: false),外观从未改动过(壁纸「无」、桌面透明度保持默认 0%):

  • 主窗口左侧的任务侧栏整块是半透明的,可以直接看到窗口背后的桌面、其他应用窗口,以及那些窗口里的文字/图标;
  • 透出的内容没有任何遮挡,侧栏条目之间的空隙就是真实桌面,和侧栏自己的文字叠在一起,整块界面看起来很杂乱;
  • 右侧主内容区没有看到同样的情况,只有侧栏这一条是「挖空」的;
  • 不是眨眼就消失的闪烁,是一直这样。

期望行为

按 docs/design-rules/wallpaper.md:0% 桌面透明度时不应进入桌面背景模式,窗口保持主题实色(Light #f8f8f6 / Dark #1f1f1e),侧栏不透出桌面;只有用户主动调高桌面透明度、或选择了壁纸之后才透出背景。Windows 10 没有 Mica / 原生 Acrylic 那层侧栏材质,不应该留下「靠原生材质兜底」的空档。

环境 / Environment

  • Cindy 版本:0.1.130(D:\CINDY\Cindy.exe 的 ProductVersion / FileVersion 均为 0.1.130;%APPDATA%\Cindy\updates\patch-info.json 为 cindy-0.1.130-hotfix.zip)
  • 平台与版本:Windows 10 企业版 22H2,build 19045
  • 安装方式:Windows 安装包安装(安装在 D:\CINDY),非 Microsoft Store 版本
  • 外观设置:壁纸「无」、桌面透明度默认 0%;%APPDATA%\Cindy 下不存在 appearance-settings.json,即没有任何 wallpaper / desktop 透明度覆盖值
  • 其他:未做显卡或合成相关的额外设置(需要的话可以补 chrome://gpu 与主进程日志)

复现步骤 / Steps to reproduce

  1. 在 Windows 10 22H2 上启动 Cindy 0.1.130(CINDY Light 主题)。
  2. 设置 → 外观:壁纸保持「无」,桌面透明度不拖动(默认 0%)。
  3. 回到主界面,观察左侧任务侧栏。

结果:侧栏半透明,能直接看到桌面与其他窗口的内容;右侧内容区保持不透明。

日志与截图 / Logs & screenshots

  • 提报者暂未附截图(需要的话可以补充,或由 QA 在复现环境补图);没有观察到相关报错日志。
  • 本地外观相关状态:window-theme-mode.json = {"resolvedIsDark":false,"systemIsDark":false,"familyId":"cindy","systemModeFollowsSystem":true};无 appearance-settings.json。

初步分析与相关记录

  • 现象与已关闭的 #9424(Windows 0% 时侧栏透出桌面)、#9531(Linux 同现象)属于同一类问题。PR #9425 把「进入桌面背景模式」的条件收敛为 visibility > 0 || platform === 'darwin',Linux 侧已由 #9531 复盘。
  • 但 0.1.130 在 Windows 10 上仍能复现。按 apps/desktop/src/main/vibrancyConfig.ts 的 resolveVibrancyConfig:Windows 上只要 desktopBlur 是数字,第一分支就返回 backgroundColor: '#00000000'(Windows 10 下 backgroundMaterial 为 'none',等于无模糊全透明);只有走到 isWindows11() 为假的回落分支才会用实色 opaqueBg。因此怀疑两种可能:
    1. 渲染进程在 0% 时仍然上报了数字型 desktopBlur(例如 0),于是命中透明分支,窗口整体透明,而 html[data-desktop-background=true] body::before { left: var(--sidebar-visible-width, 0px) } 又刻意跳过侧栏,桌面就从侧栏透出来;
    2. 或者主进程确实返回了实色,但侧栏自身那层磨砂带 alpha、且没有对应的原生材质兜底,于是仍能透出桌面。
  • 建议排查:在 Windows 10 上打印 getSystemVersion()、上报的 desktopBlur、以及解析出的 backgroundMaterial / backgroundColor 和 html[data-desktop-background] 的取值,确认 0% 时实际走了哪条分支;并考虑在没有原生侧栏材质的平台(Windows 10 / Windows 11 缺材质时)让侧栏始终使用不透明实色。
Dominant language
TypeScript
Stars
2.8k
Forks
412
Avg merge
12h 7m
Merged PRs (30d)
671

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from makecindy/cindy

All issues in makecindy/cindy

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.