summarylogtreecommitdiffstats
path: root/waykey.sh
blob: 465366dfb17ef3184613c34884fd4f29967da53c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/bin/bash
# Waykey CLI / Dashboard Launcher

# 1. Root Check
if [ "$EUID" -eq 0 ]; then
  echo "❌ Error: Waykey should NOT be run as root or with sudo."
  echo "Running as root breaks D-Bus connections and browser sandboxing."
  echo "Please run: ./waykey.sh"
  exit 1
fi

# 2. Environment Check
if [ -z "$XDG_RUNTIME_DIR" ] || [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then
  echo "⚠️ Warning: XDG_RUNTIME_DIR or DBUS_SESSION_BUS_ADDRESS not set."
  echo "This may cause issues with systemd-user or D-Bus communication."
fi

echo "🚀 Starting Waykey background service..."
if ! systemctl --user start waykey.service 2>/dev/null; then
    echo "❌ Failed to start waykey.service via systemctl --user."
    echo "Make sure you have a valid user session and systemd is running."
    exit 1
fi

# 3. Wait for Dashboard to be ready (max 5 seconds)
echo "⏳ Waiting for WayKey Dashboard (http://localhost:8080)..."
MAX_RETRIES=10
RETRY_COUNT=0
while ! node -e "require('http').get('http://localhost:8080/ping', res => res.statusCode === 200 ? process.exit(0) : process.exit(1)).on('error', () => process.exit(1))" 2>/dev/null; do
    sleep 0.5
    ((RETRY_COUNT++))
    if [ $RETRY_COUNT -ge $MAX_RETRIES ]; then
        echo "⚠️ Dashboard taking too long to respond. Attempting to open anyway..."
        break
    fi
done

echo "🌐 Opening Waykey Dashboard..."
xdg-open http://localhost:8080