dsh-workspace-colors:DSH Web 工作区专属着色与背景增强

DSH 的设计理念是「一切皆插件」。在使用 DSH Web 进行开发时,默认界面较为素净,缺乏区分度,开发者难以快速通过视觉识别不同的工作区。dsh-workspace-colors 插件通过给侧边栏工作区分配专属颜色、叠加页面背景色调,以及提供内存监控面板,解决了这一痛点,提升了界面的可读性与开发体验。

核心功能

这是一个零依赖的 DSH Web 外观增强插件,主要包含以下三个能力:

  1. 侧边栏工作区专属颜色:为侧边栏的每个工作区分配固定颜色,包括文件夹图标着色、标题行左侧色条及分组背景,适配深浅主题。
  2. 页面背景 tint:利用官方 ctx.theme.overrideTokens() token 覆盖层,给整个界面叠加一层色调。支持明/暗主题,提供 6 个预设色(豆沙绿、暖米、天青、淡紫、樱粉、墨蓝)。
  3. 内存回收面板:宿主半注册只读接口,用于上报 DSH 后端进程的 RSS/CPU 占用,以及 Chrome renderer 渲染进程的内存占用合计。同时支持通过配置文件开关 auto-reclaim.sh 守护进程。

安装与启用

使用官方安装命令添加插件:

dsh plugin --profile web add github:MirrMeur/dsh-workspace-colors

安装完成后,必须重启 dsh web 进程才能生效(浏览器刷新无法触发)。

使用配置

打开 设置 → 外观增强,可以配置以下选项:

  • 页面背景:开启开关,选择预设色,并拖动强度滑杆(默认 45%)。配置保存在浏览器 localStorage 中。
  • 工作区颜色:开启开关,点击「重新分配」按钮让系统按顺序为工作区分配颜色。
  • 内存回收:查看状态面板,并开启守护进程开关。

颜色规则与手动配置

插件基于 OKLCH 感知均匀色彩空间 构建。每个工作区颜色由一组固定的明度与彩度构成,只改变色相,确保所有工作区颜色质感一致。色相库包含 10 个预设(红、橙、金、绿、青、天、蓝、紫、品红、玫),按工作区首次出现的顺序自动分配。如果启用背景 tint 且工作区颜色与背景色相差异 ≤45°,系统会自动改派颜色以避免冲突。

如需手动指定工作区颜色,可修改 localStorage 中的配置:

const m = JSON.parse(localStorage.getItem('dsh-workspace-colors.map'));
m['日常工作'] = 215;          // 0-360 任意色相
localStorage.setItem('dsh-workspace-colors.map', JSON.stringify(m));

技术细节

插件宿主半依赖 webServer 注入,客户端半使用 slots/locale/theme 服务,不依赖 dsh-client-runtime。

关于内存回收接口的 POST restart 操作:该功能仅在 DSH 后端由 launchd 托管(ppid === 1)时有效。手工启动的后端进程杀掉后不会自动重启,此时接口会返回 409 not-launchd-managed 错误。

卸载

如需移除插件:

dsh plugin --profile web remove dsh-workspace-colors
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜