Bundle
dsh-fullwidth
Conversation full-width by default + pretext text measurement (DSH plugin)
- Source
- publieople
- License
- BSD-3-Clause
- Updated
- Updated 5 days ago
Readme
# dsh-fullwidth
**English** | [简体中文](README.zh.md)
Make the DeepSeek Harness **chat window span the whole center column by default** (no more big empty margins beside a collapsed sidebar), and add an interactive **text measurement** tool powered by [@chenglou/pretext](https://github.com/chenglou/pretext).
## Features
- **Full-width conversation (default on).** DSH centers the transcript/composer at a reading width `--dsh-chat-content-width` (~748px), leaving large empty margins. This plugin re-declares that variable to `100%` so the transcript and composer fill the entire center column.
- **Settings toggle.** Turn it off in **Settings → Full-width & Text Measurement** (remembered in `localStorage`).
- **Pretext text measurement.** Measure text height / line count / line breaks entirely in the browser, without DOM reflow (no `getBoundingClientRect` / `offsetHeight`).
- **i18n.** UI copy ships in zh/en via the DSH locale runtime (`ctx.locale`).
## How it works
The conversation root (`data-phase` containing `[data-conversation-scroll]`) declares the shared width axis `--dsh-chat-content-width`. The plugin re-declares it to `100%` with a high-specificity rule:
```css
[data-phase]:has([data-conversation-scroll]){--dsh-chat-content-width:100% !important;}
```
The selector is stable across DSH builds (it does not depend on CSS-modules hashed class names). Turning the toggle off removes the rule and returns to the default reading column.
## Install
In a DSH profile:
```sh
dsh plugin --profile web add github:publieople/dsh-fullwidth#v0.0.5
```
Zero build (the compiled `lib/` is committed) — restart the profile after install.
Runtime injection via dsh-super-injector:
```sh
dev_build_plugin {dir: <repo>}
dev_inject_plugin {dir: <repo>}
```
## Build from source
```sh
npm install
npm run build # host: src -> lib
npm run build:client # client: tsdown -> lib/client.js (inlines pretext)
```
## Requirements
- A DSH web profile with the client runtime (`@deepseek-ai/dsh-client-locale`, `-runtime`, `-ui-settings`, `-ui-slots`).
- DSH `>=0.1.1-rc.1`.
## License
BSD-3-Clause.
Install
dsh plugin --profile web add github:publieople/dsh-fullwidth
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-fullwidth from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.