DSH-Arch-Setup/README.md
Шурупов Илья Викторович cf9443753e Add one-command Arch DSH setup
Package the portable DSH profiles, local plugins, desktop integration, Firefox wrapper, and ownership-aware installer lifecycle. Bundle checksum-pinned OpenVSCode, editor extensions, translation assets, and cloudflared so unreliable upstream artifact downloads cannot break a clean installation.
2026-09-12 19:13:36 +03:00

3.7 KiB

DSH Arch Setup

One-command installation of a customized DeepSeek Harness environment on x86-64 Arch Linux.

Install

git clone https://git.ilusha-basic.online/ilusha/DSH-Arch-Setup.git
cd DSH-Arch-Setup
./install.sh

The installer may request sudo once to install missing Arch packages. It then:

  • installs @deepseek-ai/dsh@0.1.1-rc.2 under ~/.local;
  • links every repository-owned plugin into ~/.dsh/plugins;
  • installs all external Web-profile plugins from the committed pnpm lockfile;
  • installs checksum-pinned cloudflared 2026.8.3 locally instead of running its unpinned network postinstall;
  • verifies and extracts the bundled OpenVSCode Server 1.109.5 runtime without starting it;
  • checksum-verifies and installs the bundled local VSIX artifacts listed in manifests/vscode-extension-artifacts.tsv;
  • applies narrow compatibility patches required by dsh-touched-git;
  • installs the Firefox app profile, launcher, desktop entry, and icons;
  • installs and starts dsh-web.service as a systemd user service.

Open DSH from the desktop application menu or run:

dsh-app

Provider credentials are intentionally not included. Configure accounts on first launch. Sublime Merge is optional; install it separately if you want the dsh-open-in-smerge action.

Installer options

./install.sh --skip-system-packages
./install.sh --skip-network --no-start

The second form is intended for local layout tests; it does not install DSH packages, editor components, or start the service.

Update

git pull --ff-only
./install.sh

The installer is idempotent. Before replacing a path it does not already manage, it moves the old path under ~/.local/state/dsh-arch-setup/backups/.

Validate

./test/run.sh

Tests use temporary homes and never start or stop the live DSH service.

Uninstall

./uninstall.sh

The uninstaller stops the user service, removes unchanged managed files and exact repository links, restores backups, and removes generated installations only when they did not predate the first setup run. Credentials, sessions, attachments, settings, and user-modified files are preserved.

Included local plugins

  • dsh-compact-sidebar
  • dsh-fleet-control
  • dsh-fullwidth
  • dsh-header-menu
  • dsh-open-in-smerge
  • dsh-project-tree
  • dsh-sidebar-match-bg
  • dsh-touched-git
  • dsh-ui-tweaks
  • dsh-web-hotkeys

External DSH plugins are declared in profile/web/package.json and pinned by profile/web/pnpm-lock.yaml. dsh-ui-translate@0.4.0 is vendored with its MIT license and notices because its upstream Git package cannot build on a clean install; the remaining external plugins are downloaded by pnpm. OpenVSCode extensions are bundled as license-retaining VSIX files and checksum-pinned in manifests/vscode-extension-artifacts.tsv, avoiding Open VSX availability during installation. Upstream extension sources and licenses are listed in THIRD_PARTY_EXTENSIONS.md; bundled binary provenance is in THIRD_PARTY_BINARIES.md.

Deliberately excluded

The repository never contains:

  • DSH credentials, OAuth state, sessions, attachments, or caches;
  • Firefox cookies, logins, history, session state, or generated preferences;
  • repository-path history from Sublime Merge integration;
  • OpenVSCode editor state or downloaded node_modules;
  • machine-specific PID files, logs, backups, or window geometry.

Browser limitations

OpenVSCode runs as a web application. Firefox retains hard-reserved shortcuts such as Ctrl+W, Ctrl+T, and Ctrl+L. The included dedicated profile enables web shortcut handling and the Firefox context-menu mouse-up workaround, but Chromium remains more compatible with VS Code Web input handling.