Repository navigation
Linux native support: audit results, parity fixes, and a GPU probe #13143
Replies: 1 comment 2 replies
|
Thanks for sharing the Ubuntu/GNOME/Wayland/NVIDIA results — the GPU-process details are especially useful. I maintain an unofficial Linux desktop port aligned with upstream 0.2.2-rc.2: source · x64/arm64 releases. It packages AppImage, deb and rpm. Both architectures passed CI packaging and packaged-runtime checks; I verified the x64 welcome window on Manjaro KDE/X11, but have not tested NVIDIA/Wayland or the arm64 GUI interactively. Your tray finding matches a failure mode we wanted to avoid: hiding a window when no visible tray is available. Our build hides on close only when it detects a supported Linux tray host; otherwise closing quits. It also ships a bundled One question about the GPU probe: it changes both I'd be glad to compare your GNOME/Wayland results with the rc.2 build and share any reproducible differences. More details about our port are in Discussion #13027. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Linux native support: audit results, parity fixes, and a GPU probe
Hi all! I've been running DSH on Linux natively (AppImage build, Ubuntu 24.04, GNOME/Wayland, NVIDIA GT 1030). I've spent a lot of time on Linux compatibility and want to share what I found, along with the fixes I've been working on. I'm sharing this in the hope it's useful as a starting point for Linux support.
Everything below is validated on a live install (
0.2.2-rc.1, packaged AppImage). The clean branch with only the Linux-support commits is here:EuVinicios/deepseek-harness@linux-support(based ondsh-v0.2.2-rc.1, cherry-picked — no unrelated changes).Download — ready to install on any Linux desktop
DeepSeek Harness for Linux — v0.2.2-rc.1 — portable AppImage (download,
chmod +x, run) or the proper install viainstall-user.sh(menu entry, GPU acceleration enabled,dshCLI in~/.local/bin, atomiccurrentsymlink). SHA256SUMS included.What I found
1. GPU acceleration works, but the launcher disables it
The packaged app is launched with
--disable-gpu(software rendering). A controlled Electron probe on this machine (NVIDIA GT 1030, driver 580, Wayland/XWayland) shows that with--disable-gpu-sandbox --no-sandbox, GPU acceleration works:gpu_compositing: enabledwebgl: enabledwebgpu: enabledSo the real problem on this machine was not the GPU stack — it was the GPU process sandbox under XWayland.
--disable-gpu-sandboxkeeps the rest of the GPU pipeline intact.2. Three parity gaps in rc.1 (Linux)
Install dsh command: the menu item only exists on macOS and Windows, and the launcher script it installs (apps/desktop/cli/dsh) is hardcoded to../MacOS/DeepSeek Harnessandapp.asar/dsh/...— on Linux the executable isresources/app/deepseek-harness(no FUSE). So the command would be broken even if enabled. The fix adds a Linux branch to the command-manager worker that installs into~/.local/bin(user-writable, no elevation needed — unlike macOS's/usr/local/bin+ osascript), plus the login-shell PATH lookup for shadowed-command detection (same mechanism as macOS).icon-windows.png.3. CLI launcher: multi-platform paths
The launcher script (
apps/desktop/cli/dsh) is copied verbatim to all platforms, so it resolves the binary and the dsh tree entry per platform at runtime (uname -s):Contents/MacOS/DeepSeek Harnessapp.asar/dsh/...deepseek-harness(besideresources/)resources/app/dsh/...(unpacked — the bundled Node cannot read ASAR)The cli-launcher fixture now exercises the Linux layout (
binary + resources/), and the command-manager flow fixture exercises the Linux shell PATH lookup (same mechanism as macOS: detects a shadoweddshon PATH).4. Linux updater integration
The app's "Check for updates" button now works on Linux: the update coordinator spawns a systemd user unit (
dsh-updater.service), which builds the new version from the repo and installs it atomically (symlink flip ofcurrent).Live validation (after restart on the new build)
--ozone-platform=x11 --disable-gpu-sandbox --no-sandbox--type=gpu-process --disable-gpu-sandbox— no--use-gl=disabled(previously the GPU process was dead on arrival with--use-gl=disabled)--disable-gpu-compositing— GPU compositing is activedsh --version→0.2.2-rc.1from the packaged launcher (resolves the Linux layout: binary besideresources/, dsh tree unpacked)What I changed
feat(linux): tray on Linux (the path back),Install dsh commandenabled, window icon.fix(linux): build under demand via unit manual; no handoff of the same version.feat(linux): desktop updater integration with the native update system.fix(linux): desktop update channel comparison.build(desktop): Linux packaging scripts (package:desktop:linux-x64).feat(linux): Linux support for desktop packaging and runtime (initial).Looking for feedback
package:desktop:linux-x64), or the launcher?linux/starter (launcher + updater unit + install.sh)? I'm happy to share it.Thanks for the great work — the harness is the best agent harness I've used.
All reactions