Introduction¶
dsh web provides a complete Web interface, but on Linux desktops there are three inconveniences: no independent taskbar entry and Alt-Tab item; the service lifecycle is tied to the terminal; and community desktop-oriented plugins mainly target Windows and macOS, with implementations for Linux XDG desktop entries being relatively rare. The dsh-linux-integration plugin aims to fill these three gaps.
What It Is¶
dsh-linux-integration is a DSH bundle maintained by ffyfox. It reuses an existing Chromium-based browser on the system, integrates dsh web into the desktop environment using a standard XDG desktop entry, and does not modify the behavior of dsh web itself.
Core Features¶
- XDG Desktop Entry: Writes a standard configuration file to
~/.local/share/applications/, allowingdsh webto be launched from the application launcher. - Borderless Standalone Window: Opens a window using Chromium’s
--appmode, containing only the interface content with no address bar, tabs, or bookmarks bar. - Lifecycle Management: Starts
dsh webif it is not running and stops the service it started after the window is closed. - Command-Line Shim: Provides the
dsh-lxicommand for maintenance and diagnostics. - Configuration Interface: Integrated into the DSH sidebar plugin page.
Install and Enable¶
Run the following command in the terminal to install the plugin:
dsh plugin --profile web add dsh-linux-integration
After installation, restart dsh web once. The installation process registers the plugin in the profile’s dsh.profile.bundles.
If you need to install a specific version from GitHub, you can use:
dsh plugin --profile web add github:ffyfox/dsh-linux-integration#v0.7.0
Usage¶
Click DeepSeek Harness from the application launcher (KRunner, application menu, or taskbar pinned item).
The launcher workflow is as follows:
1. Acquires a single-instance lock to ensure that only one instance manages the service lifecycle.
2. Detects whether dsh web is already listening (HTTP 401 also counts as listening).
3. If it is not listening, starts a dsh web.
4. Polls until an authenticated URL with a token is available.
5. Opens a standalone window in --app mode.
Command-Line Tool¶
After installation, a dsh-lxi command-line shim is generated under the profile’s node_modules/.bin/. Because it is not in the system PATH, it must be invoked via dsh plugin exec.
| Command | Purpose |
|---|---|
dsh plugin --profile web exec dsh-lxi install |
Install or repair desktop integration (idempotent) |
dsh plugin --profile web exec dsh-lxi uninstall |
Remove desktop integration while preserving configuration and backups |
dsh plugin --profile web exec dsh-lxi status |
View installation status |
dsh plugin --profile web exec dsh-lxi doctor |
Diagnose and provide repair suggestions |
dsh plugin --profile web exec dsh-lxi set <key> <value> |
Change one configuration item and reinstall |
dsh plugin --profile web exec dsh-lxi open |
Open dsh in a standalone window |
dsh plugin --profile web exec dsh-lxi stop |
Stop the running dsh web |
dsh plugin --profile web exec dsh-lxi restart |
Restart dsh web |
dsh plugin --profile web exec dsh-lxi runtime |
View current runtime status |
Configuration¶
The configuration file is located at ~/.config/dsh-lxi/config.json.
Configuration Items¶
| Key | Description |
|---|---|
host / port |
The address used when the launcher starts dsh web. |
window |
Initial size of the standalone window (logical pixels). |
browser |
auto, or chrome / chromium / brave / edge / vivaldi / opera, or the absolute path to a browser executable. |
profileMode |
dedicated (default) or shared. |
profile |
Which dsh profile the desktop icon launches. Default: web. |
devProfile |
If non-empty, adds a context menu option “Run with development configuration” to the desktop entry. |
autoInstall |
Whether to auto-install or self-heal when dsh web starts. |
manageKwinRules |
Whether to manage KWin window rules (KDE only). |
manageHyprlandRules |
Whether to manage Hyprland window rules (Hyprland only). Disabled by default. |
Modifying Configuration¶
It is recommended to modify settings through the Web interface:
1. Open the DSH Web interface.
2. In the sidebar “Plugins” page, find the dsh-linux-integration card.
3. Click the “Configure” button on the dsh-lxi row to edit it.
You can also edit the configuration file directly or use the command:
dsh plugin --profile web exec dsh-lxi set window 1400x900
System Requirements and Notes¶
- System Environment: A Linux system is required.
- Browser: A Chromium-based browser is required (Chrome, Chromium, Brave, Edge, Vivaldi, or Opera). Firefox is not supported because it cannot provide a standalone window without an address bar.
- DSH Version: The configuration interface requires DSH 0.2 or later.
- Hyprland:
manageHyprlandRulesis disabled by default. By default, the window follows the tiling manager’s layout, and the width and height inwindowdo not take effect. If you need a fixed size, manually enable this option.
Summary¶
dsh-linux-integration allows DeepSeek Harness to run on the Linux desktop like a native application. Through standard XDG entries and automated lifecycle management, it resolves the issues of terminal dependency and window management.