github patrickjaja/claude-desktop-bin v1.21459.0-2
Claude Desktop 1.21459.0 (patch release 2)

latest release: v1.21459.0-3
4 hours ago

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-bin

Debian/Ubuntu (APT Repository — recommended)

curl -fsSL https://patrickjaja.github.io/claude-desktop-bin/install.sh | sudo bash
sudo apt install claude-desktop-bin

Debian/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.deb

Fedora/RHEL (RPM Repository — recommended)

curl -fsSL https://patrickjaja.github.io/claude-desktop-bin/install-rpm.sh | sudo bash
sudo dnf install claude-desktop-bin

Fedora/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.rpm

NixOS / Nix

nix run github:patrickjaja/claude-desktop-bin

AppImage (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.AppImage

Update 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.desktop orphan - re-pin once (deliberately no compat symlink: it would surface a duplicate app entry in launchers).
  • Custom WM rules matching claude-desktop need updating to com.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 .desktop files become com.anthropic.Claude-<name>.desktop; --delete-profile cleans up both old and new names. The window app_id itself is shared across profiles; distinct per-profile grouping needs a per-profile desktopName override (follow-up).
  • Quick Entry keeps its own claude-quick-entry id. 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.

Links

Don't miss a new claude-desktop-bin release

NewReleases is sending notifications on new releases.