Files
coredesktop/claude.sh
T
2026-09-29 14:03:04 -06:00

62 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
#
# Purpose : Install Claude Code using the official native installer
set -euo pipefail
# Check if Claude Code is already installed
if command -v claude &>/dev/null; then
echo "Claude Code is already installed: $(claude --version)"
else
echo "Installing Claude Code..."
curl -fsSL https://claude.ai/install.sh | bash
fi
# The native installer places the binary in ~/.local/bin
LINE='export PATH="$HOME/.local/bin:$PATH"'
if grep -qF "$LINE" ~/.bashrc; then
echo "~/.local/bin already on PATH in .bashrc"
else
echo "$LINE" >> ~/.bashrc
echo "~/.local/bin added to PATH in .bashrc"
fi
# Desktop notifications via notify-send (libnotify)
SETTINGS_FILE="$HOME/.claude/settings.json"
if [ -f "$SETTINGS_FILE" ]; then
echo "Claude Code settings already exist at $SETTINGS_FILE"
else
echo "Writing Claude Code settings to $SETTINGS_FILE..."
mkdir -p "$(dirname "$SETTINGS_FILE")"
cat > "$SETTINGS_FILE" <<'EOF'
{
"hooks": {
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "notify-send 'Claude Code' 'Needs your input'"
}
]
}
],
"Stop": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "notify-send 'Claude Code' 'Task completed'"
}
]
}
]
}
}
EOF
fi
echo "Done. Run 'claude' to log in and get started."