[BUG] [Claude Desktop Linux] Tray icon broken — minifier produces undefined variable 'oe' instead of 'Ae' (Electron module) + menuBarEnabled reset on update
Bug Description
Two issues prevent system tray icons from appearing on Claude Desktop for Linux.
Bug 1: Minifier variable reference error in tray icon theme detection
In the minified app.asar (.vite/build/index.js), the XH() function that creates the system tray icon has a broken variable reference on the Linux code path:
sa ? e = Ae.nativeTheme.shouldUseDarkColors ? "Tray-Win32-Dark.ico" : "Tray-Win32.ico"
: e = oe.nativeTheme.shouldUseDarkColors ? "TrayIconTemplate-Dark.png" : "TrayIconTemplate.png"
sa=process.platform === "win32"(Windows check)Ae=require("electron")(Electron module — correct)oe= undefined (should beAe)
On Windows (sa is true): uses Ae.nativeTheme — works fine.
On Linux (sa is false): uses oe.nativeTheme — crashes with:
ReferenceError: oe is not defined
at XH (/tmp/.mount_claudei0eKwh/.../app.asar/.vite/build/index.js:665:63804)
This is a Vite minifier/tree-shaking/scope-hoisting bug in the build pipeline that incorrectly renames the Electron module variable on the Linux code path.
Note: The AUR package (claude-desktop-bin) has a fix_tray_icon_theme.py that patches this same area of the code, which independently confirms the build output is broken for Linux.
Bug 2: menuBarEnabled config reset on update
The tray icon creation in XH() is gated behind a config setting:
const t = Vn("menuBarEnabled");
// ...
if(!!t) {
Ds = new Ae.Tray(...)
}
When Claude Desktop updates, the menuBarEnabled setting is removed from ~/.config/Claude/config.json, causing the tray icon to silently not be created even when the code would otherwise work.
Combined Effect
Users hit Bug 2 (config reset removes the setting) AND Bug 1 (code crashes on Linux path even if setting were present). Both must be fixed for tray icons to work on Linux.
Steps to Reproduce
- Install Claude Desktop on Linux via AppImage
- Update to version 1.1.2321
- Launch Claude Desktop
- Observe: no system tray icon appears
- Check
~/.config/Claude/logs/main.logforReferenceError: oe is not defined - Check
~/.config/Claude/config.json—menuBarEnabledis missing
Workaround
- Add
"menuBarEnabled": trueto~/.config/Claude/config.json(top level) - Extract the AppImage squashfs-root and run from there instead of the FUSE mount — the extracted
app.asarhas the correctAe.nativeThemereference (reason for discrepancy unclear)
Environment
- OS: Bazzite Linux (Fedora-based, rpm-ostree), KDE Plasma 6 on Wayland
- Claude Desktop version: 1.1.2321
- Electron: 40.2.1
- Node: 24.11.1
- AppImage source: aaddrick/claude-desktop-debian
- Tray protocol: StatusNotifierItem (SNI) — required by KDE Plasma 6
Expected Behavior
System tray icon should appear on Linux, matching Windows behavior.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗