Package Details: claude-desktop-bin 0.7.7-1

Git Clone URL: https://aur.archlinux.org/claude-desktop-bin.git (read-only, click to copy)
Package Base: claude-desktop-bin
Description: Unofficial Linux build of Claude Desktop AI assistant
Upstream URL: https://github.com/k3d3/claude-desktop-linux-flake
Licenses: custom
Submitter: Somvilla
Maintainer: Somvilla
Last Packager: Somvilla
Votes: 0
Popularity: 0.000000
First Submitted: 2024-12-19 00:17 (UTC)
Last Updated: 2024-12-21 15:38 (UTC)

Latest Comments

AstroSteveo commented on 2025-03-11 06:31 (UTC) (edited on 2025-03-11 06:32 (UTC) by AstroSteveo)

The PKGBUILD is missing the required en-US.json file preventing the app from running. It is also missing the asar package as a dependency. I have updated the PKGBUILD to implement these changes. Additionally, I added MimeType=x-scheme-handler/claude to the claude-desktop.desktop file to fix Google login.

# Maintainer: Your Name <your@email.com>
pkgname=claude-desktop-bin
pkgver=0.7.8
pkgrel=2
pkgdesc="Unofficial Linux build of Claude Desktop AI assistant"
arch=('x86_64')
url="https://github.com/k3d3/claude-desktop-linux-flake"
license=('custom')
depends=(
    'electron34'
    'nodejs'
)
makedepends=(
    'p7zip'
    'imagemagick'
    'icoutils'
    'rust'
    'cargo'
    'asar'
)
source=(
    "Claude-Setup-x64.exe::https://storage.googleapis.com/osprey-downloads-c02f6a0d-347c-492b-a752-3e0651722e97/nest-win-x64/Claude-Setup-x64.exe"
    "git+https://github.com/k3d3/claude-desktop-linux-flake.git"
)
sha256sums=('SKIP' 'SKIP')  # We'll add proper hashes later

prepare() {
    cd "${srcdir}"
    # Build patchy-cnb
    cd claude-desktop-linux-flake/patchy-cnb
    cargo build --release
}

package() {
    cd "${srcdir}"
    # Create working directory
    mkdir -p build
    cd build
    # Extract the Windows installer
    7z x ../Claude-Setup-x64.exe
    # Find and extract the nupkg file dynamically
    NUPKG_FILE=$(ls AnthropicClaude*-full.nupkg)
    7z x "$NUPKG_FILE"
    # Extract and convert icons
    wrestool -x -t 14 lib/net45/claude.exe -o claude.ico
    icotool -x claude.ico
    # Install icons
    for f in claude_*.png; do
    if [ -f "$f" ]; then
        size=$(identify -format "%wx%h" "$f" | cut -d'x' -f1)
        install -Dm644 "$f" "${pkgdir}/usr/share/icons/hicolor/${size}x${size}/apps/claude-desktop.png"
    fi
        done
    # Process app.asar
    mkdir -p electron-app
    cp "lib/net45/resources/app.asar" electron-app/
    cp -r "lib/net45/resources/app.asar.unpacked" electron-app/
    cd electron-app
    asar extract app.asar app.asar.contents
    # Replace native bindings with our Linux version
    local target_triple="x86_64-unknown-linux-gnu"
    install -Dm755 "${srcdir}/claude-desktop-linux-flake/patchy-cnb/target/release/libpatchy_cnb.so" \
        "app.asar.contents/node_modules/claude-native/claude-native-binding.node"
    cp "app.asar.contents/node_modules/claude-native/claude-native-binding.node" \
        "app.asar.unpacked/node_modules/claude-native/claude-native-binding.node"
    # Copy Tray icons
    mkdir -p app.asar.contents/resources
    cp ../lib/net45/resources/Tray* app.asar.contents/resources/
    # Repack app.asar
    asar pack app.asar.contents app.asar
    # Install application files
    install -dm755 "${pkgdir}/usr/lib/claude-desktop"
    cp app.asar "${pkgdir}/usr/lib/claude-desktop/"
    cp -r app.asar.unpacked "${pkgdir}/usr/lib/claude-desktop/"

    # Ensure tray icons are in the proper location
    mkdir -p "${pkgdir}/usr/lib/claude-desktop/resources"
    cp -r app.asar.contents/resources/Tray* "${pkgdir}/usr/lib/claude-desktop/resources/"

    # Create desktop entry
    install -Dm644 /dev/stdin "${pkgdir}/usr/share/applications/claude-desktop.desktop" << EOF
[Desktop Entry]
Name=Claude
Exec=claude-desktop %U
Icon=claude-desktop
Type=Application
Categories=Office;Utility;
Comment=Claude Desktop AI assistant
MimeType=x-scheme-handler/claude
EOF

    # Add the missing file 
    mkdir -p "${pkgdir}/usr/lib/electron34/resources/"
    echo '{}' > "${pkgdir}/usr/lib/electron34/resources/en-US.json"

    # Create launcher script
    install -Dm755 /dev/stdin "${pkgdir}/usr/bin/claude-desktop" << EOF
#!/bin/sh
exec electron34 /usr/lib/claude-desktop/app.asar "\$@"
EOF

    # Add license file
    mkdir -p "${pkgdir}/usr/share/licenses/${pkgname}"
    echo "See https://github.com/k3d3/claude-desktop-linux-flake for license information" > "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}

lingster commented on 2025-01-14 17:52 (UTC)

you may need to install asar first for this to work.

npm i -g asar

That1Calculator commented on 2025-01-13 20:54 (UTC)

As of the latest build (which should be 0.7.8), my tray icon seems to have gone away, and it's not telling Dbus its name.

DeltaWhy commented on 2025-01-06 14:15 (UTC)

Doesn't build as-is - it needs 'asar' but it's not listed as a makedep.