Initial commit: Claude Desktop for Linux

This commit is contained in:
Somvilla 2024-12-19 00:14:24 +00:00
commit 4a2230e692
3 changed files with 137 additions and 0 deletions

20
.SRCINFO Normal file
View file

@ -0,0 +1,20 @@
pkgbase = claude-desktop-bin
pkgdesc = Unofficial Linux build of Claude Desktop AI assistant
pkgver = 0.7.5
pkgrel = 1
url = https://github.com/k3d3/claude-desktop-linux-flake
arch = x86_64
license = custom
makedepends = p7zip
makedepends = imagemagick
makedepends = icoutils
makedepends = rust
makedepends = cargo
depends = electron
depends = nodejs
source = Claude-Setup-x64.exe::https://storage.googleapis.com/osprey-downloads-c02f6a0d-347c-492b-a752-3e0651722e97/nest-win-x64/Claude-Setup-x64.exe
source = git+https://github.com/k3d3/claude-desktop-linux-flake.git
sha256sums = SKIP
sha256sums = SKIP
pkgname = claude-desktop-bin

97
PKGBUILD Normal file
View file

@ -0,0 +1,97 @@
# Maintainer: Your Name <your@email.com>
pkgname=claude-desktop-bin
pkgver=0.7.5
pkgrel=1
pkgdesc="Unofficial Linux build of Claude Desktop AI assistant"
arch=('x86_64')
url="https://github.com/k3d3/claude-desktop-linux-flake"
license=('custom')
depends=(
'electron'
'nodejs'
)
makedepends=(
'p7zip'
'imagemagick'
'icoutils'
'rust'
'cargo'
)
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
7z x "AnthropicClaude-${pkgver}-full.nupkg"
# 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/"
# 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
EOF
# Create launcher script
install -Dm755 /dev/stdin "${pkgdir}/usr/bin/claude-desktop" << EOF
#!/bin/sh
exec electron /usr/lib/claude-desktop/app.asar "\$@"
EOF
}

20
README.md Normal file
View file

@ -0,0 +1,20 @@
# Claude Desktop for Arch Linux / Manjaro
Unofficial AUR package for Claude Desktop AI assistant.
## Installation
Using an AUR helper like yay:
yay -S claude-desktop-bin
Or manually:
git clone https://aur.archlinux.org/claude-desktop-bin.git
cd claude-desktop-bin
makepkg -si
## Features
- Native Linux support
- Global hotkey support (Ctrl+Alt+Space)
## Notes
- This is an unofficial package, not supported by Anthropic
- Report package-specific issues to the AUR package repository, not to Anthropic