summaryrefslogtreecommitdiffstats
path: root/install.sh
diff options
context:
space:
mode:
authorKen D'Ambrosio <ken@claude>2026-06-12 21:11:59 +0000
committerKen D'Ambrosio <ken@claude>2026-06-12 21:11:59 +0000
commit247d3f77bb83cefae9c7760c7ce84c5e45240190 (patch)
treeae347a356c01353d018836ae8a259d57d209396a /install.sh
Initial commit: eSheep Wayland desktop pet
Python/GTK3/gtk-layer-shell port of the classic Windows eSheep. All 54 original animations via the upstream animations.xml sprite sheet. Features beyond the base animation engine: - Window walking via Wayfire IPC - UFO abduction sequence (drawn procedurally) - Flower-sniff: anim 26 + sprite overlay (anim 27) - Soft/hard landing bounce (patched anim 9/10 seq_nexts) - Periodic small hop to trigger natural bounce without windows - Click-to-drag sheep with mouse - Multi-sheep bump and greet interactions - --count, --daemon, --exit flags Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'install.sh')
-rwxr-xr-xinstall.sh80
1 files changed, 80 insertions, 0 deletions
diff --git a/install.sh b/install.sh
new file mode 100755
index 0000000..e625f71
--- /dev/null
+++ b/install.sh
@@ -0,0 +1,80 @@
+#!/usr/bin/env bash
+# eSheep installer for Linux/Wayland
+set -e
+
+INSTALL_DIR="$HOME/.local/share/esheep"
+BIN_DIR="$HOME/.local/bin"
+
+echo "=== eSheep Wayland installer ==="
+
+# Detect distro
+if command -v apt-get &>/dev/null; then
+ echo "Installing system dependencies (apt)..."
+ sudo apt-get install -y \
+ python3 \
+ python3-gi \
+ python3-gi-cairo \
+ python3-pil \
+ gir1.2-gtk-3.0 \
+ gir1.2-gtklayershell-0.1 \
+ python3-pip
+
+ echo "Installing Python packages..."
+ pip3 install --user numpy wayfire --break-system-packages 2>/dev/null || \
+ pip3 install --user numpy wayfire
+
+elif command -v pacman &>/dev/null; then
+ echo "Installing system dependencies (pacman)..."
+ sudo pacman -S --needed python python-gobject python-pillow gtk3 gtk-layer-shell python-numpy
+
+ echo "Installing Python packages..."
+ pip install --user wayfire
+
+elif command -v dnf &>/dev/null; then
+ echo "Installing system dependencies (dnf)..."
+ sudo dnf install -y python3 python3-gobject python3-pillow gtk3 gtk-layer-shell python3-numpy
+ pip3 install --user wayfire
+
+else
+ echo "WARNING: Unknown distro. Install manually:"
+ echo " - python3, python3-gi (PyGObject), python3-pil (Pillow), numpy"
+ echo " - GTK 3.0 GObject introspection"
+ echo " - gtk-layer-shell GObject introspection (gir1.2-gtklayershell-0.1)"
+ echo " - pip install wayfire"
+fi
+
+echo "Installing eSheep to $INSTALL_DIR..."
+mkdir -p "$INSTALL_DIR" "$BIN_DIR"
+
+cp "$(dirname "$0")/esheep.py" "$INSTALL_DIR/"
+cp "$(dirname "$0")/animations.xml" "$INSTALL_DIR/"
+
+# Launcher script
+cat > "$BIN_DIR/esheep" << EOF
+#!/usr/bin/env bash
+exec python3 "$INSTALL_DIR/esheep.py" --xml "$INSTALL_DIR/animations.xml" "\$@"
+EOF
+chmod +x "$BIN_DIR/esheep"
+
+# Desktop entry
+mkdir -p "$HOME/.local/share/applications"
+cat > "$HOME/.local/share/applications/esheep.desktop" << EOF
+[Desktop Entry]
+Name=eSheep
+Comment=Desktop sheep for Wayland
+Exec=$BIN_DIR/esheep
+Icon=application-x-executable
+Type=Application
+Categories=Amusement;
+Keywords=sheep;pet;desktop;
+EOF
+
+echo ""
+echo "=== Installation complete! ==="
+echo ""
+echo "Run: esheep"
+echo "Run with multiple sheep: esheep --count 3"
+echo ""
+echo "Make sure Wayfire's 'ipc' plugin is enabled for window walking:"
+echo " Add 'ipc' to the 'plugins' line in ~/.config/wayfire.ini"
+echo ""