Claude Desktop 1.21459.0 (patch release 2)
This release provides Claude Desktop version 1.21459.0 pre-patched for Linux.
Installation Options
Arch Linux (AUR)
yay -S claude-desktop-binDebian/Ubuntu (APT Repository — recommended)
curl -fsSL https://patrickjaja.github.io/claude-desktop-bin/install.sh | sudo bash
sudo apt install claude-desktop-binDebian/Ubuntu (manual .deb)
# x86_64
sudo apt install ./claude-desktop-bin_1.21459.0-2_amd64.deb
# ARM64
sudo apt install ./claude-desktop-bin_1.21459.0-2_arm64.debFedora/RHEL (RPM Repository — recommended)
curl -fsSL https://patrickjaja.github.io/claude-desktop-bin/install-rpm.sh | sudo bash
sudo dnf install claude-desktop-binFedora/RHEL (manual .rpm)
# x86_64
sudo dnf install ./claude-desktop-bin-1.21459.0-2.x86_64.rpm
# ARM64
sudo dnf install ./claude-desktop-bin-1.21459.0-2.aarch64.rpmNixOS / Nix
nix run github:patrickjaja/claude-desktop-binAppImage (Any Distro)
# x86_64
chmod +x Claude_Desktop-1.21459.0-x86_64.AppImage
./Claude_Desktop-1.21459.0-x86_64.AppImage
# ARM64
chmod +x Claude_Desktop-1.21459.0-aarch64.AppImage
./Claude_Desktop-1.21459.0-aarch64.AppImageUpdate existing AppImage (delta download — only changed blocks):
appimageupdatetool Claude_Desktop-*-x86_64.AppImage # Or from within the AppImage: ./Claude_Desktop-*-x86_64.AppImage --appimage-update
Checksums
| File | SHA256 |
|---|---|
| Tarball (x86_64) | 6223aa2efb7b3165957ef420e69fe82a72e13bdad75fb29f694fe44fd7471b04
|
| Tarball (aarch64) | 4dbf54d8be9a8498b06cf270a70a5b1848ded46827950a48d14b72e0c075c2d8
|
| AppImage (x86_64) | 76c959c5b79f027414ef274ba7eed8638d99f07490219c11e15d4e4eeef16f48
|
| AppImage (aarch64) | 791789c0866fc63b5f918bcb62d2b58ce0cfae5ddea29a47f20fcd8f5ef59096
|
| Debian (amd64) | f1f5c91283bcefd414de742fb97591214d80563be761bf8974c778d98aa8da6c
|
| Debian (arm64) | 7398ef2715ace421806c165508b76e4036b38ae36b14eb7bf98c8c2aeb7c163c
|
| RPM (x86_64) | c75d3eba4ad6f0c050cb9c92e066d5145782c210f0f923ba940d22a7824b13c1
|
| RPM (aarch64) | df8fbdef4e73ef1d191736be3f3c48da79ce6a076569c8485979c5f4dea858f0
|
Changes since last release
Updated to Claude Desktop v1.21459.0
Routine upstream bump. Computer Use is still macOS/Windows-only upstream, so our Linux Computer Use support stays. One tool-description tweak re-fitted (open_application on Linux no longer tells the model to request allowlist access first, since our bridges reach every app). No new Linux-relevant changes upstream.
App identity aligned to upstream: com.anthropic.Claude
All packages now ship the official build's app identity end to end. Previously the build pinned the bundle's desktopName back to claude-desktop.desktop and named every .desktop file, StartupWMClass, and systemd scope to match. The pin is removed: the bundle keeps upstream's desktopName (com.anthropic.Claude.desktop), every package (AUR, deb, rpm, AppImage, Nix) installs com.anthropic.Claude.desktop with StartupWMClass=com.anthropic.Claude, the launcher scope is app-com.anthropic.Claude-PID.scope, and the claude:// handler registers on the new name. A build tripwire fails loud if upstream ever renames desktopName again.
The point of the reverse-DNS id: xdg-desktop-portal resolves an unsandboxed app from its systemd scope back to a .desktop file, which is what makes portal activation routing and KDE's persistent screen-share / Computer Use grants work. The single-segment claude-desktop id could not do that, and keeping it meant permanent naming drift from the official package.
One-time migration on upgrade:
- Pinned taskbar/dock shortcuts referencing the old
claude-desktop.desktoporphan - re-pin once (deliberately no compat symlink: it would surface a duplicate app entry in launchers). - Custom WM rules matching
claude-desktopneed updating tocom.anthropic.Claude. - KDE screen-share / Computer Use consent asks once more (portal grants are keyed to the app id), then persists - persistence is precisely what the reverse-DNS id fixes.
- Named profiles: per-profile
.desktopfiles becomecom.anthropic.Claude-<name>.desktop;--delete-profilecleans up both old and new names. The windowapp_iditself is shared across profiles; distinct per-profile grouping needs a per-profiledesktopNameoverride (follow-up). - Quick Entry keeps its own
claude-quick-entryid. Launcher binary (claude-desktop), icon name, and userData (~/.config/Claude) are all unchanged - no re-login.
Removed 4 patches: we no longer keep "guard-only" patches
Dropped 4 patches (41 -> 37) that no longer modified the bundle and only asserted upstream's own behavior: the CLI-governor memory fix (#128), the /etc/claude-desktop/managed-settings.json reader (main + boot bundle), and the title-bar fix - all native in the official build. We keep only patches that modify the bundle.
KDE Plasma Wayland no longer misrouted to the "exotic" XWayland fallback (#194)
Computer Use on a KDE Plasma 6.6+ Wayland session could fall through to the "exotic - ydotool/x11-bridge" fallback (ending on XWayland) instead of the native kwin-portal-bridge. The mode gate in cu_mode_preamble.js keyed off XDG_SESSION_DESKTOP === "KDE" - an exact-match on a variable set by the display manager, whose value is not standardized (SDDM/GDM may report plasma, an absolute path, or nothing). The downstream DE detection in cu_linux_executor.js used the reliable XDG_CURRENT_DESKTOP (Plasma sets it to KDE), so the two disagreed: diagnostics printed de=kde while the bridge was never selected. The gate now keys off XDG_CURRENT_DESKTOP (case-insensitive substring) and accepts WAYLAND_DISPLAY as a Wayland signal, matching the downstream logic and the label the kwin-portal-bridge itself reads. The KWin >= 6.6 version probe still guards the route, so a non-KWin or too-old session correctly falls back.
Diagnostics surface the raw session env behind KDE routing
To make a future routing mismatch diagnosable without shell access, --diagnose now prints XDG_SESSION_DESKTOP next to XDG_CURRENT_DESKTOP, and the runtime [claude-cu] diagnostics: block adds a line with the raw XDG_CURRENT_DESKTOP / XDG_SESSION_DESKTOP / XDG_SESSION_TYPE values plus the resolved kwin-mode. A de=kde with kwin-mode=false now reads as a self-explaining signature in claude-patches.log.
Quick Entry no longer restores a stale window app_id after first use
After Quick Entry is shown, fix_quick_entry_app_id resets CHROME_DESKTOP so later windows get the main app_id back. That reset target was a hardcoded claude literal, but upstream renamed the app identity (desktopName) to com.anthropic.Claude in v1.19367.0, so on Wayland compositors that create a separate toplevel after Quick Entry (GNOME, wlroots) those windows could inherit a stale, non-matching app_id - breaking taskbar/dock grouping and per-app window rules. The reset now reads desktopName from the app's own package.json at runtime (falling back to the literal only if that read fails), so it can't go stale on the next upstream rename. Verified non-breaking on KDE Plasma 6 Wayland (main window kept the then-pinned claude-desktop, Quick Entry claude-quick-entry; with the app-identity alignment above, the runtime read now resolves the main id to com.anthropic.Claude).
Launcher: CLAUDE_GPU_BACKEND=angle-gl escape hatch
New opt-in launcher env var that renders via ANGLE's GL backend (--use-gl=angle --use-angle=gl) instead of the native Wayland/GBM path. Some GPU + kernel-driver combos (e.g. Intel xe) abort Electron's Ozone/Wayland GPU-process init ("GPU process isn't usable. Goodbye.") but work fine through ANGLE-GL, which keeps GPU acceleration - a milder fallback to try before CLAUDE_DISABLE_GPU.