Running Claude (Windows app) smoothly on Linux with Proton-GE
1. Installing Proton-GE
-
Installed proton-ge-custom-bin from the AUR.
-
Confirmed it landed at:
/usr/share/steam/compatibilitytools.d/proton-ge-custom/proton
2. Creating a wrapper script
~/.local/bin/claude-proton
:
#!/usr/bin/env bash
set -euo pipefail
PROTON_BIN="/usr/share/steam/compatibilitytools.d/proton-ge-custom/proton"
detect_steam_root() {
local cands=(
"$HOME/.local/share/Steam"
"$HOME/.steam/steam"
"$HOME/.var/app/com.valvesoftware.Steam/data/Steam"
)
for d in "${cands[@]}"; do
if [ -d "$d/steamapps" ]; then
echo "$d"; return 0
fi
done
return 1
}
STEAM_ROOT="$(detect_steam_root || true)"
if [ -z "${STEAM_ROOT:-}" ]; then
echo "Could not find your Steam client root (with steamapps/)." >&2
exit 1
fi
mkdir -p "$HOME/.config/protonfixes" "$HOME/.proton/claude"
export STEAM_COMPAT_CLIENT_INSTALL_PATH="$STEAM_ROOT"
export STEAM_COMPAT_DATA_PATH="${STEAM_COMPAT_DATA_PATH:-$HOME/.proton/claude}"
export PROTON_LOG=0
export DXVK_LOG_LEVEL=none
export VKD3D_DEBUG=none
export ELECTRON_NO_ATTACH_CONSOLE=1
export PROTONFIXES_DISABLE=1
export PROTON_DISABLE_XALIA=1
[ -d "$STEAM_COMPAT_DATA_PATH/pfx" ] || "$PROTON_BIN" wineboot -u
CLAUDE_EXE="$STEAM_COMPAT_DATA_PATH/pfx/drive_c/users/steamuser/AppData/Local/AnthropicClaude/claude.exe"
exec "$PROTON_BIN" "$CLAUDE_EXE" "$@"
Make it executable:
chmod +x ~/.local/bin/claude-proton
3. Desktop entry
~/.local/share/applications/Claude (Proton-GE).desktop
:
[Desktop Entry]
Name=Claude (Proton-GE)
Exec=sh -lc '/home/alice/.local/bin/claude-proton --disable-gpu-compositing'
Type=Application
StartupNotify=false
Comment=Claude via Proton-GE
Icon=CEDD_claude.0
Path=/home/alice/.proton/claude/pfx/drive_c/users/steamuser/AppData/Local/AnthropicClaude/app-0.13.37
StartupWMClass=claude.exe
X-KDE-RunOnDiscreteGpu=true
Refresh KDE menu:
kbuildsycoca6 --noincremental
4. Cleaning up old installs
-
Nuked the old Wine Claude install at
~/.wine/.../AnthropicClaude
. -
Deleted unused Steam compatdata prefixes:
rm -rf ~/.local/share/Steam/steamapps/compatdata/0 rm -rf ~/.local/share/Steam/steamapps/compatdata/test_prefix
-
Removed unused packages:
sudo pacman -Rns electron34 electron35 electron36
-
Kept
wine
,winetricks
,cabextract
for other apps.
5. Keyboard shortcuts
- Electron inside Proton mapped zoom differently.
- Zoom works with
Ctrl + ?
andCtrl + \`` (instead of
Ctrl + + / -`). - Accepted as “good enough.”
6. Window management
-
Tried multiple configs for KDE + Proton window frames.
-
Single-titlebar setup tricky due to Electron embedding.
-
Settled on using two titlebars (inner Claude bar + outer KDE bar).
- Functional (maximized dragging works).
- Slightly jank visually, but acceptable.
7. Misc
-
Suppressed Proton spam logs with:
export PROTON_DISABLE_XALIA=1
-
Disk usage: Proton prefix for Claude ~744 MB.
-
Cache cleaned:
sudo paccache -ruk0 yay -Scc
✅ Final result: Claude launches from the KDE menu via Proton-GE, with no input delay, usable zoom shortcuts, and draggable maximized windows (at the cost of a second titlebar).