@iasiv5/dsh-skins 0.0.1 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.en.md +203 -0
- package/README.i18n.yaml +6 -0
- package/README.md +203 -0
- package/cordis.patch.yml +4 -0
- package/lib/client.js +3656 -0
- package/lib/index.js +2025 -0
- package/package.json +77 -4
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 iasiv5
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.en.md
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# dsh-skins — Skin pack for DSH Web
|
|
2
|
+
|
|
3
|
+
[](../../releases)
|
|
4
|
+
[](../../actions/workflows/ci.yml)
|
|
5
|
+
[](./LICENSE)
|
|
6
|
+
[](https://www.npmjs.com/package/@iasiv5/dsh-skins)
|
|
7
|
+
[](#faq)
|
|
8
|
+
|
|
9
|
+
English · [中文](./README.md)
|
|
10
|
+
|
|
11
|
+
Hot-swappable brand skins for DeepSeek Harness Web — with a one-click path back to the official interface.
|
|
12
|
+
|
|
13
|
+

|
|
14
|
+
|
|
15
|
+
## Up and running in 30 seconds
|
|
16
|
+
|
|
17
|
+
This section answers: how to install, how to switch skins.
|
|
18
|
+
|
|
19
|
+
```sh
|
|
20
|
+
dsh plugin --profile web add @iasiv5/dsh-skins
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
1. Run the install command above.
|
|
24
|
+
2. Restart DSH Web (for example `systemctl restart` the matching service, depending on your deployment).
|
|
25
|
+
3. Refresh the page.
|
|
26
|
+
4. Click **Skin Switcher** at the bottom of the sidebar and pick a skin.
|
|
27
|
+
|
|
28
|
+
On a fresh install with no saved choice, 美人志 (meirenzhi, "Mortal's Journey · Beauty Chronicle") is the factory-default skin. For reproducible installs, pin the exact version (identical to what a one-click update lands on):
|
|
29
|
+
|
|
30
|
+
```sh
|
|
31
|
+
dsh plugin --profile web add @iasiv5/dsh-skins@1.0.0
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Update and uninstall:
|
|
35
|
+
|
|
36
|
+
```sh
|
|
37
|
+
dsh plugin --profile web update @iasiv5/dsh-skins # update
|
|
38
|
+
dsh plugin --profile web remove @iasiv5/dsh-skins # uninstall
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
With the [dsh-m](https://github.com/iasiv5/dsh-m) plugin marketplace installed, you can also install / uninstall this plugin with one click inside the DSH Web UI.
|
|
42
|
+
|
|
43
|
+
<details>
|
|
44
|
+
<summary>Hand the install to your Agent (prompt install)</summary>
|
|
45
|
+
|
|
46
|
+
Copy the whole block below to an Agent inside DSH Web:
|
|
47
|
+
|
|
48
|
+
```text
|
|
49
|
+
Install the DSH skin plugin @iasiv5/dsh-skins for me:
|
|
50
|
+
1. Run: dsh plugin --profile web add @iasiv5/dsh-skins
|
|
51
|
+
2. Once it succeeds, restart DSH Web (if it runs under systemd, restart the service).
|
|
52
|
+
3. Remind me to refresh the page afterwards.
|
|
53
|
+
If the install fails, send me the command output verbatim and retry at most once.
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
</details>
|
|
57
|
+
|
|
58
|
+
## Five appearances
|
|
59
|
+
|
|
60
|
+
This section answers: which skins exist and what each feels like.
|
|
61
|
+
|
|
62
|
+
| Choice ID | Kind | Description |
|
|
63
|
+
|---|---|---|
|
|
64
|
+
| `official` | built-in option | Plain paper & dark ink · breathing white space · naturally itself |
|
|
65
|
+
| `meirenzhi` | full skin · factory default | Jade faces & flowered looks · moonlit silks by night · asking the Dao in mortal dust |
|
|
66
|
+
| `openbmc` | full skin | Ice-silk waves · storm-wing backdrop · ice-blue palette |
|
|
67
|
+
| `uefi-harness` | full skin | Violet spark · sunset wash · indigo-blue palette |
|
|
68
|
+
| `tgcf` | full skin | A thousand lights · vermilion & gold · night shared bright |
|
|
69
|
+
|
|
70
|
+
- `official` restores the official DeepSeek Harness branding, backdrop and favicon, while keeping the skin switcher and the official light/dark palettes.
|
|
71
|
+
- `meirenzhi` (凡人修仙传 · A Mortal's Journey: Beauty Chronicle) is an **unofficial fan work** with no affiliation with or authorization from the copyright holders; the 6 bundled wallpapers are AI-generated fan art, the Reach-for-the-Sky Vial site icon embeds the owner-provided emblem artwork, the BEAUTY badge is rendered with HTML/CSS, and the fireflies use CSS pseudo-elements and radial gradients — no official artwork is bundled. Vermilion-and-gold in both light and dark, slogan "From mortal dust, immortals bloom" (风起凡尘 · 红颜问道).
|
|
72
|
+
- `openbmc` (OpenBMC Harness): the brand slots reuse the OpenBMC project's official logo letterforms and blue-green brand gradient, used solely for identification; all rights remain with the OpenBMC project. The backdrop is the "Left Wind, Right Thunder" storm artwork, ice-blue in both light and dark, slogan "Govern before the storm" (察于未萌 · 治于未乱).
|
|
73
|
+
- `uefi-harness` (UEFI Harness): the brand slots carry the UEFI Forum's official logo (rights note under "Known limits"). The backdrop is the "Integrated Circuits" circuit-board artwork, violet-and-indigo in both light and dark, slogan "Boot before everything" (启于固件 · 行于万象).
|
|
74
|
+
- `tgcf` (Heaven Official's Blessing · No Taboos) is an **unofficial fan work** with no affiliation with or authorization from the copyright holders; the factory wallpapers are AI-generated fan art, while the site icon and drifting-butterfly decoration are original code-drawn SVG — no official artwork is bundled. Vermilion-and-gold dark mode, pale-gold light mode, slogan "No Taboos".
|
|
75
|
+
- Every skin ships one palette per light/dark mode and follows the appearance setting automatically.
|
|
76
|
+
|
|
77
|
+
## Screenshots
|
|
78
|
+
|
|
79
|
+
All captures below are real browser screenshots covering all four extension skins, new and old alike; every wallpaper can be swapped any time from the personalization panel (next section).
|
|
80
|
+
|
|
81
|
+
### 凡人修仙传 · 美人志 (factory default)
|
|
82
|
+
|
|
83
|
+
| | |
|
|
84
|
+
|---|---|
|
|
85
|
+
|  |  |
|
|
86
|
+
|  |  |
|
|
87
|
+
|  |  |
|
|
88
|
+
|
|
89
|
+
Solo portraits in order: Ziling, Nangong Que (dark), Yinyue, Mu Peiling and Nangong Wan; the first shot is the factory wallpaper "Yuntai Gathering" (group).
|
|
90
|
+
|
|
91
|
+
### 天官赐福 · No Taboos
|
|
92
|
+
|
|
93
|
+
| | |
|
|
94
|
+
|---|---|
|
|
95
|
+
|  |  |
|
|
96
|
+
|
|
97
|
+
### OpenBMC Harness
|
|
98
|
+
|
|
99
|
+

|
|
100
|
+
|
|
101
|
+
### UEFI Harness
|
|
102
|
+
|
|
103
|
+

|
|
104
|
+
|
|
105
|
+
## Personalization: wallpaper, slogan and translucency
|
|
106
|
+
|
|
107
|
+
This section answers: what you can tune, how, and where the settings live.
|
|
108
|
+
|
|
109
|
+
Every skin's key visuals are open to adjustment. Click the gear button on a skin card and that skin's personalization panel docks beside the switcher (stacked vertically on narrow windows). All four skins (`tgcf` / `openbmc` / `uefi-harness` / `meirenzhi`) share the same field set:
|
|
110
|
+
|
|
111
|
+
| Field | What you can do | Factory value |
|
|
112
|
+
|---|---|---|
|
|
113
|
+
| **Wallpaper** | Pick from the skin's built-in artwork, or upload your own images into a personal library | Each skin's default artwork |
|
|
114
|
+
| **Slogan** | The new-session guidance line, one Chinese and one English copy | The skin's factory slogan |
|
|
115
|
+
| **Translucency** | 0–100%, one value driving three visual layers: panel tint, wallpaper scrim and blur. 0% is pure, fully visible wallpaper; 100% hides it completely | tgcf / meirenzhi 35, openbmc / uefi-harness 55 |
|
|
116
|
+
|
|
117
|
+

|
|
118
|
+
|
|
119
|
+
### Upload your own wallpaper (personal library)
|
|
120
|
+
|
|
121
|
+
- PNG / JPEG / WebP / GIF are accepted: ≤ 20MB each, GIF ≤ 12MP; animated WebP and SVG are rejected.
|
|
122
|
+
- Multi-select is supported — files upload one by one, each announcing its progress and any failure reason.
|
|
123
|
+
- The library has no count cap and is shared by all skins.
|
|
124
|
+
- Deleting a referenced image, or clearing the library, lists every affected skin and field first and acts only after you confirm.
|
|
125
|
+
|
|
126
|
+
### Every change applies and persists on its own
|
|
127
|
+
|
|
128
|
+
- Any change in the panel applies immediately and is written automatically after a brief (~0.5s) debounce.
|
|
129
|
+
- Two tabs sync within about a second; while offline, write controls disable themselves so edits are never lost silently.
|
|
130
|
+
- Reset-to-default is the one guarded action: it lists the settings it will reset, and after you confirm it returns to factory values and persists automatically.
|
|
131
|
+
- While the panel is open, clicking another skin's card moves the panel straight to that skin's settings.
|
|
132
|
+
|
|
133
|
+
### Where settings live, and whether they survive
|
|
134
|
+
|
|
135
|
+
- Configuration and the library live under `$DSH_HOME/dsh-skins/`, physically isolated from the plugin install directory: upgrades, rollbacks and one-click updates cannot touch them.
|
|
136
|
+
- Only overrides are stored: untouched fields automatically follow the new version's defaults, and leftovers of retired fields are cleaned up at load.
|
|
137
|
+
- A damaged state file triggers recovery mode: indexes are rebuilt and bad files quarantined — your images are never wiped.
|
|
138
|
+
- Uploads pass magic-number validation and size caps; concurrent writes merge per field and never clobber each other.
|
|
139
|
+
|
|
140
|
+
## The skin switcher
|
|
141
|
+
|
|
142
|
+
This section answers: what lives in the switcher and how to use it.
|
|
143
|
+
|
|
144
|
+
The **Skin Switcher** popover at the bottom of the sidebar has two sections:
|
|
145
|
+
|
|
146
|
+
1. **Appearance**: Light, Dark, System. It calls the official theme service and stays in sync with Settings → General → Appearance.
|
|
147
|
+
2. **Choose Skin**: the first entry is DeepSeek Harness (Official), followed by the extension skins. Clicking switches instantly and persists the choice; the popover stays open for continuous preview.
|
|
148
|
+
|
|
149
|
+

|
|
150
|
+
|
|
151
|
+
When the sidebar is collapsed, the entry folds into a round palette icon; multiple `sidebar.footer.action` entries stack vertically without overlapping. Choosing "Official" only undoes the extension skins — your light/dark/system preference is untouched.
|
|
152
|
+
|
|
153
|
+
The URL switches skins too: `/?skin=official`, `/?skin=meirenzhi`, `/?skin=openbmc`, `/?skin=uefi-harness`, `/?skin=tgcf`.
|
|
154
|
+
|
|
155
|
+
## One-click updates and the security design
|
|
156
|
+
|
|
157
|
+
This section answers: how updates work, and why it is safe to let the plugin install them.
|
|
158
|
+
|
|
159
|
+
Opening the skin switcher makes the Host check the latest stable version of `@iasiv5/dsh-skins` on the npm registry (the `latest` dist-tag); when a newer version exists, the update row shows the current version, the latest version and a link to the npm version page:
|
|
160
|
+
|
|
161
|
+
1. Click **Update**; download, install and verification run automatically.
|
|
162
|
+
2. Click **Restart now** (or **Later**); the new version takes effect after the restart.
|
|
163
|
+
3. Running Agents block the restart; retry once they finish.
|
|
164
|
+
|
|
165
|
+
Every step is verified in code, not on trust:
|
|
166
|
+
|
|
167
|
+
- only strict `X.Y.Z` stable versions are accepted (the npm `latest` dist-tag);
|
|
168
|
+
- the remote package name, repository identity and version metadata must all agree (including the `dist.integrity` digest);
|
|
169
|
+
- the actual install is pinned to that exact version, never drifting with a semver range;
|
|
170
|
+
- after installing, the profile and the installed package are re-verified; any failure restores the previous version automatically;
|
|
171
|
+
- under service managers such as systemd, the restart is handed back to the unit's `Restart` policy instead of killing the process.
|
|
172
|
+
|
|
173
|
+
## FAQ
|
|
174
|
+
|
|
175
|
+
**How do I get fully back to the official interface?**
|
|
176
|
+
Pick "DeepSeek Harness (Official)" in the skin switcher, or open `/?skin=official`. It undoes the extension skin's branding, backdrop and favicon while keeping the switcher and the official light/dark palettes; your light/dark/system preference stays untouched.
|
|
177
|
+
|
|
178
|
+
**What happens when an update fails?**
|
|
179
|
+
Updates follow a "back up first, then install" transaction: any verification failure automatically restores the previous version, and the popover shows the failure reason (in Chinese and English). If it still fails, update manually with `dsh plugin --profile web update @iasiv5/dsh-skins`.
|
|
180
|
+
|
|
181
|
+
**Which DSH Web versions are supported?**
|
|
182
|
+
Verified with DSH Web `0.1.1-rc.2`. Later rc builds of the same series are expected to work, but unverified versions carry no promise.
|
|
183
|
+
|
|
184
|
+
**Does my appearance preference sync across browsers?**
|
|
185
|
+
In the browser on the DSH host machine (loopback), the preference is persisted by the DSH Host and shared naturally. Other remote browsers keep the preference in their own `localStorage` — independent per browser, never overwritten.
|
|
186
|
+
|
|
187
|
+
**Do personalization settings survive upgrades?**
|
|
188
|
+
Yes. Configuration and the library live in the `$DSH_HOME/dsh-skins/` data directory; self-updates only replace the plugin install directory and physically cannot touch it — rollbacks preserve it too. Only disk-level damage can lose configuration, and even then recovery mode keeps the library images.
|
|
189
|
+
|
|
190
|
+
## Known limits
|
|
191
|
+
|
|
192
|
+
- Other skin plugins may also touch the body backdrop, brand slots or favicon; avoid enabling multiple visual skin plugins at the same time.
|
|
193
|
+
- The `openbmc` brand slots reuse the OpenBMC project's official logo letterforms and brand gradient, used solely for identification; all rights remain with the OpenBMC project.
|
|
194
|
+
- The `uefi-harness` mark is the UEFI Forum's official trademark (the red cube, from uefi.org's published uefi_logo_red.gif, embedded as vector paths traced via Wikimedia Commons "Logo of the UEFI Forum.svg"); it is used solely to identify the skin, and all rights remain with the UEFI Forum.
|
|
195
|
+
- `tgcf` is an unofficial fan work: its name and imagery reference "Heaven Official's Blessing" with no affiliation with or authorization from the copyright holders (MXTX, bilibili, et al.); all bundled visuals are original drawings and no official artwork is included. Should a rights holder object, the skin will be republished under a neutral name (e.g. "A Thousand Lights · Vermilion & Gold").
|
|
196
|
+
|
|
197
|
+
## License
|
|
198
|
+
|
|
199
|
+
[MIT](./LICENSE)
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
Want to read the source, build your own skin, or contribute? See [docs/developers.md](./docs/developers.md) (how it works, skin authoring guide, local verification and the debug API).
|
package/README.i18n.yaml
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# Bilingual README pairing record: the git blob hash of each side as of the
|
|
2
|
+
# last confirmed-consistent state. Both languages carry equal authority;
|
|
3
|
+
# after editing either side, bring the other along and re-record with:
|
|
4
|
+
# node scripts/verify-readme-pairing.mjs --write
|
|
5
|
+
README.md: 176f4f5f3706650e90cea41188369d77989dcae5
|
|
6
|
+
README.en.md: 6afc01d954fd7c40ba37151c0b9b9f73c4967021
|
package/README.md
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# dsh-skins — DSH Web 多皮肤插件
|
|
2
|
+
|
|
3
|
+
[](../../releases)
|
|
4
|
+
[](../../actions/workflows/ci.yml)
|
|
5
|
+
[](./LICENSE)
|
|
6
|
+
[](https://www.npmjs.com/package/@iasiv5/dsh-skins)
|
|
7
|
+
[](#faq)
|
|
8
|
+
|
|
9
|
+
[English](./README.en.md) · 中文
|
|
10
|
+
|
|
11
|
+
为 DeepSeek Harness Web 换上可热切换的品牌皮肤,随时一键回到官方界面。
|
|
12
|
+
|
|
13
|
+

|
|
14
|
+
|
|
15
|
+
## 30 秒上手
|
|
16
|
+
|
|
17
|
+
本节回答:怎么装上、怎么换皮肤。
|
|
18
|
+
|
|
19
|
+
```sh
|
|
20
|
+
dsh plugin --profile web add @iasiv5/dsh-skins
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
1. 执行上面的安装命令。
|
|
24
|
+
2. 重启 DSH Web(例如 `systemctl restart` 对应的服务,按你的部署方式而定)。
|
|
25
|
+
3. 刷新页面。
|
|
26
|
+
4. 点击侧栏底部的「皮肤切换」,挑选皮肤。
|
|
27
|
+
|
|
28
|
+
首次安装且尚无已保存的选择时,默认启用「凡人修仙传 · 美人志」(出厂皮肤)。需要可复现安装时,固定到精确版本(与一键更新落地后的形态完全一致):
|
|
29
|
+
|
|
30
|
+
```sh
|
|
31
|
+
dsh plugin --profile web add @iasiv5/dsh-skins@1.0.0
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
更新与卸载:
|
|
35
|
+
|
|
36
|
+
```sh
|
|
37
|
+
dsh plugin --profile web update @iasiv5/dsh-skins # 更新
|
|
38
|
+
dsh plugin --profile web remove @iasiv5/dsh-skins # 卸载
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
安装了 [dsh-m](https://github.com/iasiv5/dsh-m) 插件市场的话,也可以直接在 DSH Web 界面里一键安装 / 卸载本插件。
|
|
42
|
+
|
|
43
|
+
<details>
|
|
44
|
+
<summary>把安装交给 Agent(提示词安装法)</summary>
|
|
45
|
+
|
|
46
|
+
把下面这段整体复制给 DSH Web 里的 Agent:
|
|
47
|
+
|
|
48
|
+
```text
|
|
49
|
+
帮我安装 DSH 皮肤插件 @iasiv5/dsh-skins:
|
|
50
|
+
1. 执行 dsh plugin --profile web add @iasiv5/dsh-skins;
|
|
51
|
+
2. 安装成功后重启 DSH Web(若由 systemd 管理,重启对应服务即可);
|
|
52
|
+
3. 最后提醒我刷新页面。
|
|
53
|
+
若安装失败,把命令输出原样发给我,最多重试一次。
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
</details>
|
|
57
|
+
|
|
58
|
+
## 五款外观
|
|
59
|
+
|
|
60
|
+
本节回答:有哪些皮肤、各是什么气质。
|
|
61
|
+
|
|
62
|
+
| 选择 ID | 类型 | 描述 |
|
|
63
|
+
|---|---|---|
|
|
64
|
+
| `official` | 内置选项 | 素笺玄墨 · 留白生辉 · 本色天成 |
|
|
65
|
+
| `meirenzhi` | 正式皮肤 · 出厂默认 | 云鬓花颜 · 霞衣夜月 · 凡尘问道 |
|
|
66
|
+
| `openbmc` | 正式皮肤 | 冰绡叠浪 · 风雷入画 · 缥碧盈卷 |
|
|
67
|
+
| `uefi-harness` | 正式皮肤 | 紫电初醒 · 流霞渐染 · 绀青成韵 |
|
|
68
|
+
| `tgcf` | 正式皮肤 | 千灯引路 · 朱红鎏金 · 长夜同明 |
|
|
69
|
+
|
|
70
|
+
- `official` 恢复 DeepSeek Harness 官方品牌、背景与 favicon,并保留皮肤切换器与官方明暗配色。
|
|
71
|
+
- `meirenzhi`(凡人修仙传 · 美人志)是**非官方粉丝作品**,与《凡人修仙传》版权方无关联、未获授权;内置 6 张壁纸均为 AI 生成粉丝画作,掌天瓶站点图标采用产品主人提供的图样,BEAUTY 徽章由 HTML/CSS 绘制,萤火粒子由 CSS 伪元素与径向渐变绘制,均不含官方素材。绯红鎏金亮暗双态,出厂标语「风起凡尘 · 红颜问道」。
|
|
72
|
+
- `openbmc`(OpenBMC Harness):品牌位沿用 OpenBMC 项目官方 logo 的字标字形与蓝绿品牌渐变,仅作标识用途,权利归 OpenBMC 项目所有;背景铺「左风右雷」风雷原画,冰蓝缥碧亮暗双态,出厂标语「察于未萌 · 治于未乱」。
|
|
73
|
+
- `uefi-harness`(UEFI Harness):品牌位用 UEFI Forum 官方标志(权利说明见「已知边界」);背景铺「集成电路」电路板原画,紫电绀青亮暗双态,出厂标语「启于固件 · 行于万象」。
|
|
74
|
+
- `tgcf`(天官赐福 · 百无禁忌)是**非官方粉丝作品**,与《天官赐福》版权方无关联、未获授权;出厂壁纸为 AI 生成粉丝画作,站点图标与飘蝶装饰均为原创代码绘制的 SVG,不含任何官方素材。暗色朱红鎏金、亮色素白金线,出厂标语「百无禁忌」。
|
|
75
|
+
- 每套皮肤明暗各一套配色,跟随「外观配色」自动切换。
|
|
76
|
+
|
|
77
|
+
## 界面预览
|
|
78
|
+
|
|
79
|
+
以下均为浏览器实拍,四套扩展皮肤新旧俱备;图中壁纸随时可在个性化面板里更换(见下一节)。
|
|
80
|
+
|
|
81
|
+
### 凡人修仙传 · 美人志(出厂默认)
|
|
82
|
+
|
|
83
|
+
| | |
|
|
84
|
+
|---|---|
|
|
85
|
+
|  |  |
|
|
86
|
+
|  |  |
|
|
87
|
+
|  |  |
|
|
88
|
+
|
|
89
|
+
单人壁纸依次为:紫灵、南宫阙(深色)、银月、慕沛灵、南宫婉;首张为出厂默认「云台雅集 · 合照」。
|
|
90
|
+
|
|
91
|
+
### 天官赐福 · 百无禁忌
|
|
92
|
+
|
|
93
|
+
| | |
|
|
94
|
+
|---|---|
|
|
95
|
+
|  |  |
|
|
96
|
+
|
|
97
|
+
### OpenBMC Harness
|
|
98
|
+
|
|
99
|
+

|
|
100
|
+
|
|
101
|
+
### UEFI Harness
|
|
102
|
+
|
|
103
|
+

|
|
104
|
+
|
|
105
|
+
## 个性化:壁纸、标语与通透度
|
|
106
|
+
|
|
107
|
+
本节回答:能调什么、怎么调、配置存哪。
|
|
108
|
+
|
|
109
|
+
每套皮肤的关键视觉都开放调整。点击皮肤卡片右侧的齿轮按钮,换肤弹层旁会展开该皮肤的个性化面板(窄窗口时上下堆叠)。四套皮肤(`tgcf` / `openbmc` / `uefi-harness` / `meirenzhi`)共用同一组可调项:
|
|
110
|
+
|
|
111
|
+
| 可调项 | 能做什么 | 出厂值 |
|
|
112
|
+
|---|---|---|
|
|
113
|
+
| **壁纸** | 从皮肤自带的「内置精选」里挑,或上传自己的图片进「个人图库」 | 各皮肤的默认画作 |
|
|
114
|
+
| **标语** | 新会话页的引导语,中文、英文各一份 | 皮肤出厂标语 |
|
|
115
|
+
| **通透度** | 0–100% 单值联动三个视觉层:面板底色、壁纸遮罩、模糊。0% 纯壁纸完全透出,100% 完全遮蔽 | tgcf / meirenzhi 35,openbmc / uefi-harness 55 |
|
|
116
|
+
|
|
117
|
+

|
|
118
|
+
|
|
119
|
+
### 上传自己的壁纸(个人图库)
|
|
120
|
+
|
|
121
|
+
- 支持 PNG / JPEG / WebP / GIF:单张 ≤ 20MB,GIF ≤ 12MP;动画 WebP 与 SVG 不收。
|
|
122
|
+
- 支持一次多选,逐张自动上传,逐张播报进度与失败原因。
|
|
123
|
+
- 图库没有数量上限,所有皮肤共用一份。
|
|
124
|
+
- 删除被引用的图片或清空图库前,会先列出全部受影响的皮肤与字段,确认后才会执行。
|
|
125
|
+
|
|
126
|
+
### 即改即存,无需保存
|
|
127
|
+
|
|
128
|
+
- 面板内任何修改立即生效,停顿约半秒自动写入配置。
|
|
129
|
+
- 双标签页约 1 秒内自动同步;离线时写入控件自动禁用,不会静默丢改动。
|
|
130
|
+
- 「恢复默认」是唯一带二次确认的操作:先列出将被重置的设置,确认后立即回出厂并自动保存。
|
|
131
|
+
- 面板展开时点击其他皮肤卡片,面板会随即切到该皮肤的设置。
|
|
132
|
+
|
|
133
|
+
### 配置存在哪、会不会丢
|
|
134
|
+
|
|
135
|
+
- 配置与图库存于 `$DSH_HOME/dsh-skins/`,与插件安装目录物理隔离:升级、回滚、一键更新都碰不到它。
|
|
136
|
+
- 配置只存「改过什么」:未改动的字段自动跟随新版本的默认值,已下线字段的残留会在加载时自动清理。
|
|
137
|
+
- 配置文件损坏时进入恢复模式:只重建索引、隔离坏文件,绝不清除你的图片。
|
|
138
|
+
- 上传走魔数校验与尺寸上限;并发写入按字段合并,互不覆盖。
|
|
139
|
+
|
|
140
|
+
## 皮肤切换器
|
|
141
|
+
|
|
142
|
+
本节回答:切换器里有什么、怎么用。
|
|
143
|
+
|
|
144
|
+
侧栏底部的「皮肤切换」弹层包含两个区块:
|
|
145
|
+
|
|
146
|
+
1. **外观配色**:浅色、深色、跟随系统。调用官方主题服务,与「设置 → 通用 → 外观」保持同步。
|
|
147
|
+
2. **选择皮肤**:第一项为 DeepSeek Harness(官方),其后是扩展皮肤。点击立即切换并持久化,弹层保持打开,方便连续预览。
|
|
148
|
+
|
|
149
|
+

|
|
150
|
+
|
|
151
|
+
侧栏收起时,入口收为圆形调色盘图标;多个 `sidebar.footer.action` 入口会纵向排列、互不遮挡。选择「官方」只撤销扩展皮肤,不动你的明暗偏好。
|
|
152
|
+
|
|
153
|
+
URL 也能切皮肤:`/?skin=official`、`/?skin=meirenzhi`、`/?skin=openbmc`、`/?skin=uefi-harness`、`/?skin=tgcf`。
|
|
154
|
+
|
|
155
|
+
## 一键更新与安全设计
|
|
156
|
+
|
|
157
|
+
本节回答:怎么更新、为什么敢让它自己装。
|
|
158
|
+
|
|
159
|
+
打开皮肤切换器时,Host 会检查 npm registry 上 `@iasiv5/dsh-skins` 的最新正式版(latest 标签);发现新版本后,更新栏会显示当前版本、最新版本与 npm 版本页链接:
|
|
160
|
+
|
|
161
|
+
1. 点击「更新」,下载、安装、校验自动完成;
|
|
162
|
+
2. 点击「立即重启」(或选「稍后」),新版本重启后生效;
|
|
163
|
+
3. 有 Agent 正在运行时阻止重启,任务结束后再试。
|
|
164
|
+
|
|
165
|
+
每一步都有代码校验,不靠信任:
|
|
166
|
+
|
|
167
|
+
- 只接受严格的 `X.Y.Z` 正式版本号(npm latest 标签);
|
|
168
|
+
- 校验远端包名、仓库标识与版本元数据一致(含 `dist.integrity` 完整性摘要);
|
|
169
|
+
- 实际安装固定到该精确版本,不跟随语义化版本范围漂移;
|
|
170
|
+
- 安装后复验 profile 与已安装包,失败自动恢复原版本;
|
|
171
|
+
- systemd 等服务管理器下,重启交回服务的 `Restart` 策略,不硬杀进程。
|
|
172
|
+
|
|
173
|
+
## FAQ
|
|
174
|
+
|
|
175
|
+
**怎么彻底回到官方界面?**
|
|
176
|
+
在皮肤切换器中选择「DeepSeek Harness(官方)」,或访问 `/?skin=official`。它撤销扩展皮肤的品牌、背景与 favicon,保留皮肤切换器与官方明暗配色,也不会改动你的浅色/深色/跟随系统偏好。
|
|
177
|
+
|
|
178
|
+
**更新失败会怎样?**
|
|
179
|
+
更新遵循「先备份、再安装」的事务流程,任何校验失败都会自动恢复原版本,弹层显示失败原因(中英双语)。仍失败时可用 `dsh plugin --profile web update @iasiv5/dsh-skins` 手动更新。
|
|
180
|
+
|
|
181
|
+
**支持哪些 DSH Web 版本?**
|
|
182
|
+
已使用 DSH Web `0.1.1-rc.2` 验证。同系列 rc 版本理论上兼容,未经验证的版本不作承诺。
|
|
183
|
+
|
|
184
|
+
**外观偏好在不同的浏览器间同步吗?**
|
|
185
|
+
在 DSH 所在机器的浏览器(loopback)上,偏好由 DSH Host 持久化,天然共享。其他远程浏览器由插件将偏好存入本地 `localStorage`,各浏览器独立、互不覆盖。
|
|
186
|
+
|
|
187
|
+
**个性化配置会随升级丢吗?**
|
|
188
|
+
不会。配置与图库存放在 `$DSH_HOME/dsh-skins/` 数据目录,自更新只替换插件安装目录,物理上碰不到它;回滚同样保留。只有磁盘级损坏可能丢失配置——那时恢复模式仍会保住图库图片。
|
|
189
|
+
|
|
190
|
+
## 已知边界
|
|
191
|
+
|
|
192
|
+
- 其他皮肤插件也可能修改 body 背景、品牌位或 favicon;应避免同时启用多个视觉皮肤插件。
|
|
193
|
+
- `openbmc` 的品牌位沿用 OpenBMC 项目官方 logo 的字标字形与品牌渐变色,仅作标识用途,权利归 OpenBMC 项目所有。
|
|
194
|
+
- `uefi-harness` 的标志为 UEFI Forum 官方商标(红色立方体,源自 uefi.org 发布的 uefi_logo_red.gif,经 Wikimedia Commons「Logo of the UEFI Forum.svg」矢量描摹嵌入),仅作标识用途,权利归 UEFI Forum 所有。
|
|
195
|
+
- `tgcf` 为非官方粉丝作品:名称与意象取自《天官赐福》,与墨香铜臭、哔哩哔哩等版权方无任何关联,未获得授权;全部内置视觉为原创代码绘制,不含官方素材。若版权方提出异议,将以中性名称(如「千灯 · 朱红鎏金」)重新发布该皮肤。
|
|
196
|
+
|
|
197
|
+
## License
|
|
198
|
+
|
|
199
|
+
[MIT](./LICENSE)
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
想读源码、自制皮肤或参与开发?请看 [docs/developers.md](./docs/developers.md)(工作原理、皮肤开发指南、本地验证与调试 API)。
|
package/cordis.patch.yml
ADDED