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

  1. XDG Desktop Entry: Writes a standard configuration file to ~/.local/share/applications/, allowing dsh web to be launched from the application launcher.
  2. Borderless Standalone Window: Opens a window using Chromium’s --app mode, containing only the interface content with no address bar, tabs, or bookmarks bar.
  3. Lifecycle Management: Starts dsh web if it is not running and stops the service it started after the window is closed.
  4. Command-Line Shim: Provides the dsh-lxi command for maintenance and diagnostics.
  5. 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: manageHyprlandRules is disabled by default. By default, the window follows the tiling manager’s layout, and the width and height in window do 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.