When developing chat interfaces in DSH Web, a large number of plugin controls often stack around the input box. Manually managing these controls not only takes up screen space but can also easily cause layout issues. The dsh-composer-dynamic-island plugin uses a compact “upward-expanding island” pattern to fold selected controls, keeping the interface clean without moving DOM nodes or modifying the host React tree.
What This Is¶
This is a DSH client plugin maintained by says693. It provides a Community v0.15 compatible host surface for DSH Web, along with an optional Web adapter. The core functionality is to automatically fold selected controls into an upward-expanding island instead of moving them out of their original positions.
Core Features¶
- Folding and expanding: collapses selected controls into an upward-expanding island.
- Non-invasive node handling: does not move DOM nodes, nor change the host React tree structure.
- Automatic discovery: automatically detects native controls and contributions in active DSH input or composer surfaces.
- Manual selection: supports opting in to controls through the toolbar.
- Persistent configuration: stores configuration in the browser’s local storage.
Installation and Enablement¶
Add the plugin using the official install command:
dsh plugin add github:says693/dsh-composer-dynamic-island
After installation, the plugin will automatically attempt to discover and fold controls on the interface.
Typical Usage¶
- Change detected controls: open DSH settings, select the
Input Dynamic Islandmenu item, and choose the controls to fold from the pop-up list. - Interaction:
- Open: hover over or focus the three-dot handle at the top of the island.
- Pin: on a touch device, click the island to pin it.
- Close: move the mouse away or press the
Escapekey to close the island and restore focus.
Selection actions take effect immediately, and the configuration is retained in the browser’s local storage.
Applicable Scenarios and Notes¶
This plugin is suitable for scenarios where you want to simplify the DSH Web interface and reduce visual clutter.
- Permissions and privacy: the plugin declares
nonepermissions, makes no network requests, and does not access the file system. It only reads configuration state and control identifiers from the browser’s local storage and does not read conversation content, model provider settings, API keys, or any credentials. - Compatibility note: the Community v0.15 metadata is a community draft compatibility declaration, not official DSH certification. The optional Web adapter must be tested separately on each supported DSH Web host.
- Feature limitations: the plugin does not provide drag-and-drop, coordinate storage, or any user-visible button position editor. Panel position is calculated based on its fixed composer trigger.
To uninstall if needed, remove dsh-composer-dynamic-island from the configuration file and restart DSH. Configuration data in the browser is retained by default unless you manually delete the local storage key dsh-composer-dynamic-island-config-v1.
Short Conclusion¶
This plugin provides a lightweight way to manage DSH Web interface controls. Through folding and configuration storage, it simplifies the interface layout. For more details and source code, refer to the GitHub repository.