Compare commits
2 Commits
683c770cbc
...
b09f6626ba
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b09f6626ba | ||
|
|
806f4c8f98 |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -2,3 +2,6 @@
|
|||||||
.stow-local-ignore
|
.stow-local-ignore
|
||||||
pi/.pi/agent/profiles
|
pi/.pi/agent/profiles
|
||||||
pi/.pi/agent/sessions
|
pi/.pi/agent/sessions
|
||||||
|
pi/.pi/agent/auth.json
|
||||||
|
pi/.pi/agent/settings.json
|
||||||
|
pi/.pi/agent/usage-cache.json
|
||||||
|
|||||||
140
install.sh
140
install.sh
@@ -7,35 +7,89 @@ set -euo pipefail
|
|||||||
DOTFILES_DIR="$(cd "$(dirname "$0")" && pwd)"
|
DOTFILES_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Dependencies (Fedora)
|
# Detect Linux distribution
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
|
||||||
DNF_PACKAGES=(
|
detect_distro() {
|
||||||
stow
|
if [[ -f /etc/os-release ]]; then
|
||||||
# sway ecosystem
|
. /etc/os-release
|
||||||
swayidle
|
echo "$ID"
|
||||||
# bar & notifications
|
else
|
||||||
mako
|
echo "unknown"
|
||||||
libnotify # notify-send
|
fi
|
||||||
# terminal & launcher
|
}
|
||||||
fuzzel
|
|
||||||
# audio & display
|
|
||||||
wireplumber # wpctl
|
|
||||||
pipewire-utils # pactl
|
|
||||||
brightnessctl
|
|
||||||
alsa-utils # speaker-test
|
|
||||||
# screen recording
|
|
||||||
wf-recorder
|
|
||||||
slurp
|
|
||||||
zenity
|
|
||||||
ffmpeg # needs RPM Fusion: https://rpmfusion.org
|
|
||||||
# misc
|
|
||||||
jq
|
|
||||||
firefox
|
|
||||||
)
|
|
||||||
|
|
||||||
echo "Installing dnf packages..."
|
DISTRO=$(detect_distro)
|
||||||
sudo dnf install -y "${DNF_PACKAGES[@]}"
|
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
# Dependencies
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
case "$DISTRO" in
|
||||||
|
fedora)
|
||||||
|
DNF_PACKAGES=(
|
||||||
|
stow
|
||||||
|
# sway ecosystem
|
||||||
|
swayidle
|
||||||
|
# bar & notifications
|
||||||
|
mako
|
||||||
|
libnotify # notify-send
|
||||||
|
# terminal & launcher
|
||||||
|
fuzzel
|
||||||
|
# audio & display
|
||||||
|
wireplumber # wpctl
|
||||||
|
pipewire-utils # pactl
|
||||||
|
brightnessctl
|
||||||
|
alsa-utils # speaker-test
|
||||||
|
# screen recording
|
||||||
|
wf-recorder
|
||||||
|
slurp
|
||||||
|
zenity
|
||||||
|
ffmpeg # needs RPM Fusion: https://rpmfusion.org
|
||||||
|
# misc
|
||||||
|
jq
|
||||||
|
firefox
|
||||||
|
)
|
||||||
|
|
||||||
|
echo "Installing packages for Fedora..."
|
||||||
|
sudo dnf install -y "${DNF_PACKAGES[@]}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
arch)
|
||||||
|
PACMAN_PACKAGES=(
|
||||||
|
stow
|
||||||
|
# sway ecosystem
|
||||||
|
swayidle
|
||||||
|
# bar & notifications
|
||||||
|
mako
|
||||||
|
libnotify # notify-send
|
||||||
|
# terminal & launcher
|
||||||
|
fuzzel
|
||||||
|
# audio & display
|
||||||
|
wireplumber # wpctl
|
||||||
|
pipewire-pulse # pactl
|
||||||
|
brightnessctl
|
||||||
|
alsa-utils # speaker-test
|
||||||
|
# screen recording
|
||||||
|
wf-recorder
|
||||||
|
slurp
|
||||||
|
zenity
|
||||||
|
ffmpeg
|
||||||
|
# misc
|
||||||
|
jq
|
||||||
|
firefox
|
||||||
|
)
|
||||||
|
|
||||||
|
echo "Installing packages for Arch Linux..."
|
||||||
|
sudo pacman -S --noconfirm "${PACMAN_PACKAGES[@]}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "ERROR: Unsupported distribution: $DISTRO"
|
||||||
|
echo "Supported distributions: fedora, arch"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Packages not in Fedora repos — install manually if missing
|
# Packages not in Fedora repos — install manually if missing
|
||||||
@@ -86,8 +140,42 @@ fi
|
|||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "Stowing dotfiles..."
|
echo "Stowing dotfiles..."
|
||||||
|
|
||||||
|
# Check for conflicts before stowing
|
||||||
|
CONFLICTS=()
|
||||||
for PACKAGE in "$DOTFILES_DIR"/*/; do
|
for PACKAGE in "$DOTFILES_DIR"/*/; do
|
||||||
PACKAGE="$(basename "$PACKAGE")"
|
PACKAGE="$(basename "$PACKAGE")"
|
||||||
|
|
||||||
|
# Skip hidden directories and .git
|
||||||
|
[[ "$PACKAGE" == .* ]] && continue
|
||||||
|
|
||||||
|
# Check if package has files that would conflict
|
||||||
|
while IFS= read -r -d '' dotfile; do
|
||||||
|
# Get the target path this would create
|
||||||
|
TARGET_PATH="${HOME}/${dotfile#$DOTFILES_DIR/$PACKAGE/}"
|
||||||
|
|
||||||
|
# If target exists and is NOT a symlink to the correct location, it's a conflict
|
||||||
|
if [[ -e "$TARGET_PATH" ]] && [[ ! -L "$TARGET_PATH" ]]; then
|
||||||
|
CONFLICTS+=("$PACKAGE (file: $TARGET_PATH)")
|
||||||
|
fi
|
||||||
|
done < <(find "$DOTFILES_DIR/$PACKAGE" -type f -print0 2>/dev/null || true)
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ ${#CONFLICTS[@]} -gt 0 ]]; then
|
||||||
|
echo "WARNING: Found conflicts with existing configs:"
|
||||||
|
for conflict in "${CONFLICTS[@]}"; do
|
||||||
|
echo " ✗ $conflict"
|
||||||
|
done
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Stow all packages
|
||||||
|
for PACKAGE in "$DOTFILES_DIR"/*/; do
|
||||||
|
PACKAGE="$(basename "$PACKAGE")"
|
||||||
|
|
||||||
|
# Skip hidden directories
|
||||||
|
[[ "$PACKAGE" == .* ]] && continue
|
||||||
|
|
||||||
echo " $PACKAGE"
|
echo " $PACKAGE"
|
||||||
stow --dir="$DOTFILES_DIR" --target="$HOME" --restow "$PACKAGE"
|
stow --dir="$DOTFILES_DIR" --target="$HOME" --restow "$PACKAGE"
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"anthropic": {
|
|
||||||
"type": "oauth",
|
|
||||||
"refresh": "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",
|
|
||||||
"access": "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",
|
|
||||||
"expires": 1772856280733
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"lastChangelogVersion": "0.56.1",
|
|
||||||
"packages": [
|
|
||||||
"npm:pi-subagents",
|
|
||||||
"npm:@aliou/pi-guardrails",
|
|
||||||
"npm:pi-mcp-adapter",
|
|
||||||
"npm:pi-ask-tool-extension",
|
|
||||||
"npm:pi-web-access"
|
|
||||||
],
|
|
||||||
"defaultProvider": "anthropic",
|
|
||||||
"defaultModel": "claude-sonnet-4-6",
|
|
||||||
"hideThinkingBlock": true
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
"timestamp": 1772832937691,
|
|
||||||
"data": {
|
|
||||||
"claude": {
|
|
||||||
"session": 82,
|
|
||||||
"weekly": 9,
|
|
||||||
"sessionResetsIn": "3h 24m",
|
|
||||||
"weeklyResetsIn": "6d 22h"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"rateLimitedUntil": {}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user