# Linux 插件与配置 从 Windows DSH 的“WSL 与 Windows”进入 Linux 时,0.5.0 默认继承**当前主环境**的插件、设置和模型账号。Desktop 的来源为 `desktop` 配置;Windows Web 的来源为它当前使用的配置。Windows 与 Linux 的对话、工作区和文件继续分别保存。 ## 入口 - **WSL 与 Windows → Linux 插件与配置**:开关插件、设置、模型账号的继承,查看已继承插件及独立调整数量。 - **WSL 对话顶部 → Linux 配置**:直接打开 Linux 原生插件管理,可以添加、停用、移除插件或修改其设置;完成后点击“返回对话”。 - **工作区标题右侧的小切换按钮**:在原生工作区和紧凑对话列表间切换。两种视图都显示 WSL 对话。原生工作区保留 Windows 原有功能,并增加带 `WSL` 标记的 Linux 项目分组。 环境管理只保留侧栏上部的“WSL 与 Windows”,底部重复入口已移除。Linux 嵌入页面默认隐藏内层侧栏,为对话留出空间。 ## 继承规则 | 内容 | 默认行为 | Linux 独立调整 | | --- | --- | --- | | 第三方插件 | 继承主配置已安装的依赖及启用列表,在 Linux 安装依赖 | 在 Linux 插件管理中添加、停用、移除或更换版本 | | Cordis 配置 | 继承主配置和主 DSH 数据目录的 `cordis.patch.yml` | 按字段保留 Linux 修改,其余字段继续跟随主环境 | | 模型账号 | 继承主 DSH 的账号记录,在 Linux 独立保存 | Linux 中更换或刷新过的账号记录保留,不与主环境的 token 字段拼接 | | 对话、工作区、项目文件 | 各自在所属环境保存 | 不参与继承 | 第一次继承时,同名设置采用主环境的值,修改前保存备份;Linux 原有的专有项继续保留。之后每次准备环境会对照上次继承值:Linux 没改过的项目随主环境更新,Linux 改过或主动删除的项目优先保留。主环境删除插件时,仅移除仍在跟随它的启用和依赖记录,已有安装层留在磁盘上。 例如,主环境的对话显示方式原为“标准”,Linux 首次获得相同设置。若你随后在 Linux 改为另一显示方式,下一次同步仍保留 Linux 的选择;其他没有单独修改的设置继续更新。 ## 同步时机 继承发生在准备 Linux 环境时。已经运行的 Linux 实例直接复用,切换对话不会重新安装或覆盖设置。更改主环境插件、配置或继承开关后,等待 Linux 当前任务结束,从“运行与连接管理”停止该环境,再次进入即可应用。 关闭某一继承开关只停止后续同步,**不会删除已经继承的数据**。再次打开开关后,已有的 Linux 独立调整仍保留。直接执行 `dsh-wsl setup/start` 没有主 DSH 配置上下文,需要在 Linux 中自行配置。 ## 平台适配 插件包来自 Windows 已安装版本,但依赖由 Linux npm 安装,原生模块和安装脚本在 Linux 执行。Windows 的 `node_modules` 不直接作为 Linux 运行目录。相同插件组合复用已经准备的安装层,避免每次进入都重新下载。 插件声明不支持 Linux 时,继承结果会显示“不支持当前 Linux 平台”。配置中的 Windows 可执行文件路径、盘符路径或系统专用功能仍需在 Linux 配置中调整;继承设置不会使仅支持 Windows 的第三方插件自动兼容 Linux。第三方安装脚本自行下载资源时,仍需要相应网络条件。 ## 备份与恢复 托管目录位于所选 Linux 用户的 `~/.local/share/dsh-wsl-native/`: | 路径 | 用途 | | --- | --- | | `dsh-home/profiles/web/` | Linux 的插件清单与配置 | | `dsh-home/.credentials.yaml` | Linux 账号文件,权限为 `0600` | | `backups/inherit-<时间>-<编号>/` | 本次修改前的配置与被替换插件链接 | | `inheritance-state.json` | 上次继承值的 SHA-256,不包含账号密钥原文 | | `plugin-layers/`、`plugin-packages/` | Linux 依赖安装层及插件包 | Windows 在 `/dsh-wsl-native/inheritance/` 保存各发行版、用户的继承开关与结果,插件包缓存放在 `plugin-cache/`。这些本机配置、账号、缓存和备份不会随 GitHub 发布上传。 需要恢复某项设置时,先停止对应 Linux 环境,将备份中的明确文件恢复到原位置;恢复账号文件后保持 `0600` 权限。不要用整个旧目录覆盖后来新增的会话和插件。写入发生冲突或失败时,原有备份保留,面板显示错误;确认原文件状态后再重试。