Claude Desktop 1.34493.1 (patch release 3)
This release provides Claude Desktop version 1.34493.1 pre-patched for Linux.
Installation Options
Arch Linux (pacman Repository - recommended)
curl -fsSL https://patrickjaja.github.io/claude-desktop-extra/install-pacman.sh | sudo bash
sudo pacman -Syu claude-desktop-extraArch Linux (manual package)
# x86_64
sudo pacman -U https://github.com/patrickjaja/claude-desktop-extra/releases/download/v1.34493.1-3/claude-desktop-extra-1.34493.1-3-x86_64.pkg.tar.zst
# ARM64
sudo pacman -U https://github.com/patrickjaja/claude-desktop-extra/releases/download/v1.34493.1-3/claude-desktop-extra-1.34493.1-3-aarch64.pkg.tar.zstDebian/Ubuntu (APT Repository — recommended)
curl -fsSL https://patrickjaja.github.io/claude-desktop-extra/install.sh | sudo bash
sudo apt install claude-desktop-extraDebian/Ubuntu (manual .deb)
# x86_64
sudo apt install ./claude-desktop-extra_1.34493.1-3_amd64.deb
# ARM64
sudo apt install ./claude-desktop-extra_1.34493.1-3_arm64.debFedora/RHEL (RPM Repository — recommended)
curl -fsSL https://patrickjaja.github.io/claude-desktop-extra/install-rpm.sh | sudo bash
sudo dnf install claude-desktop-extraFedora/RHEL (manual .rpm)
# x86_64
sudo dnf install ./claude-desktop-extra-1.34493.1-3.x86_64.rpm
# ARM64
sudo dnf install ./claude-desktop-extra-1.34493.1-3.aarch64.rpmNixOS / Nix
nix run github:patrickjaja/claude-desktop-extraAppImage (Any Distro)
# x86_64
chmod +x Claude_Desktop-1.34493.1-x86_64.AppImage
./Claude_Desktop-1.34493.1-x86_64.AppImage
# ARM64
chmod +x Claude_Desktop-1.34493.1-aarch64.AppImage
./Claude_Desktop-1.34493.1-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 |
|---|---|
| Arch pacman (x86_64) | 2bb895faa7a614ce2eee6abbdeeb67139bad47c8e7fd66d8b8b22d3f14effc96
|
| Arch pacman (aarch64) | c10fda3b6df01903434e644a166b4123a77a5afe0daa1c511007d656bcc55cbe
|
| Tarball (x86_64) | 24c70da440024ebb622945dfdc2364836ba88d4b947eb94be55dd8fed581327f
|
| Tarball (aarch64) | 8c367e9dfee236965f55cb02564b8f8777a31ee911a1c0b02c0c4a3648ed6daa
|
| AppImage (x86_64) | d84fd701dc28b9535125be1ae15caa19045999e7a8b888fd6e3ab8e4a14d7b68
|
| AppImage (aarch64) | 4de394215be374e23e485b25f47724144942de98d645b3c13a40f48b0936f930
|
| Debian (amd64) | 3f3d728ad16970d1ae76e102cc962b4f3ebe723eb39f45d17801ffcc7fa99052
|
| Debian (arm64) | 567c57867b5dbd3e0208abdb3362de534453aafc8f299ed74d03bd1a66fd1fa9
|
| RPM (x86_64) | 6aa74f7388a3812ad0e7948ecd85d68a8cf75fc92d800f0f2cc1b7eb5918a9c8
|
| RPM (aarch64) | 71e4b7a90ae9ee6732b6033095ec4bf93d0bc9d19aa3fcbf356deef82717ac8f
|
Changes since last release
From CHANGELOG.md, 2026-08-24:
Bringing the window back to the front now works again (#233)
fix_dock_bounce exists to stop the taskbar demanding attention on KDE and GNOME - what upstream's
macOS dock bounce turns into on Linux. It did that by overriding six Electron methods whenever no
Claude window was focused, two of which mattered a lot more than intended:
BrowserWindow.show() silently became showInactive(), and BrowserWindow.focus() became a no-op.
If the window was already visible, show() became a no-op with no fallback at all.
Every path that reveals a hidden window runs precisely when nothing of Claude is focused - the tray's
"Show App", launching the app while it is already running, and our own Computer Use teach-mode
restore - so all of them were being swallowed. The patch is now scoped to the attention APIs it was
written for (flashFrame and requestUserAttention); show, focus, moveTop, app.focus and
webContents.focus are back to stock Electron behaviour.
The autostart entry now points at the launcher
Upstream builds the "Start at login" entry as Exec=<bundled electron> --startup, bypassing our
launcher entirely. A login launch therefore started with none of its setup: no
--ozone-platform=wayland (so on a Wayland session the autostarted instance came up under XWayland
while a manual launch was native Wayland), no GlobalShortcutsPortal feature flag, no PATH repair
(Cowork could not find qemu), no --password-store, no systemd scope, and for a named profile no
--user-data-dir - meaning an autostarted named profile silently used the default profile's data.
The launcher now exports CLAUDE_LAUNCHER and fix_startup_settings builds the entry from it,
re-adding --profile=<name> when a profile is active.
Launching the app shortly after login no longer opens it hidden (#233)
Session-restore detection used to key off one signal: if the graphical session had started less
than 60 seconds ago, the launch was treated as a restore and the main window was created hidden.
That caught the case it was written for - gnome-session relaunches saved clients without
--startup, so "start in system tray" was ignored on every login - but it also caught anyone who
simply clicked the launcher icon shortly after logging in. They got a tray icon, no window, and
born_hidden_reason: 'os_login' in the log, and had to click a second time to get in.
The heuristic now requires two conditions instead of one: the session must be young and an
enabled XDG autostart entry must exist, meaning the user actually asked for a hidden start. Someone
with autostart switched off is never suppressed. Every error path - missing entry, unreadable
socket, no /run/user - falls back to showing the window, since a wrongly hidden window is
invisible and hard to report while a wrongly shown one is a minor annoyance.
The predicate moved out of the patch into js/startup_session_restore_gate.js, where it is
syntax-checked and unit-tested (scripts/tests/linux/test-startup-gate.mjs, 10 checks covering
both users, X11 and Wayland, absolute WAYLAND_DISPLAY paths, XDG_CONFIG_HOME, and the
fail-safe direction). It also records its decision as a [startup-gate] line in
claude-patches.log.
New: activation diagnostics
Launching Claude while it is already running hands the request to the running process, which is meant
to reveal and focus its window. Upstream logs nothing whatsoever on that path, so when the window
does not come back there is no evidence to work from. fix_second_instance_diag records the received
argv and cwd, whether Chromium forwarded an --xdg-activation-token (the Wayland raise depends on
one, and the bundle never reads one itself), and each window's visible/focused/minimized state,
geometry and display - before the reveal, right after it, and again at +500 ms and +2 s. It also
names the case where the request arrived before any window existed. Output goes to
~/.config/Claude/logs/claude-patches.log. Behaviour-neutral, and it hooks only a public Electron
event, so there are no minified anchors to re-fit on an upstream bump.