# dsh-settings-nav-order
**Long-press and drag to reorder the settings panel's nav sections.**
**English** · [中文](README.md)
[](#installation)
[](LICENSE)
Long-pressing "通用设置" (General) and dragging it down — the dragged row turns translucent and follows the cursor; releasing saves.
---
## What it does
In the DeepSeek Harness settings panel, the order of nav sections is fixed by each plugin's own `order` value. The more plugins you install, the harder it gets to arrange them the way you work.
This plugin adds a **hidden gesture**: **long-press any section for ~0.3 s, drag it up or down, release to save.** Next time you open the settings panel, your order is still there.
It ships **no UI of its own** — no new settings page, no slot registrations, no visual change to the nav. You will not find it anywhere in the interface. That is deliberate.
| | |
|---|---|
| **Before** |  |
| **After** |  |
## Features
- **Long-press to drag** — after a 0.3 s hold the row becomes **50% translucent with an outline and shadow**, and follows the pointer vertically in real time
- **Release to save** — the order is written to the plugin's own folder; there is no save button
- **Survives restarts** — your order is re-applied the next time the panel opens
- **Accidental-drag protection** — primary button only; moving more than 6 px during the hold cancels the drag; the click that ends a drag is swallowed so you never switch pages by accident
- **Render-resistant** — a `MutationObserver` follows panel re-opens and React re-renders, re-applying your order every time
- **Clean uninstall** — removes every listener, observer and style, and restores the official order immediately
- **Does not touch shared config** — never writes `settings.yaml`, never modifies external data
## Installation
Requires Node.js plus `dsh` and `pnpm`:
```sh
npm install -g @deepseek-ai/dsh pnpm
```
Then install the plugin (replace `web` with your profile name):
```sh
dsh plugin --profile web add dsh-settings-nav-order
```
**Restart `dsh` afterwards** — a newly added bundle is not hot-applied to a running process:
```sh
dsh --profile web
```
Then **refresh the browser page** and open the settings panel (the gear at the bottom of the sidebar).
> Installing from GitHub source also works: `dsh plugin --profile web add github: