Spaces:
Running
Running
| # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| # THE Z AI โ Computer Mode Startup (FIXED v4) | |
| # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| echo "===== Application Startup at $(date '+%Y-%m-%d %H:%M:%S') =====" | |
| echo "๐ฅ๏ธ Starting Z Computer Mode Server v4..." | |
| # โโ 1. Start Virtual Display โโโโโโโโโโโโโโโโโโโโโ | |
| pkill Xvfb 2>/dev/null || true | |
| sleep 0.5 | |
| Xvfb :1 -screen 0 1920x1080x24 -ac +extension GLX +render -noreset & | |
| XVFB_PID=$! | |
| echo "โ Xvfb started (PID: $XVFB_PID)" | |
| sleep 2 | |
| # โโ 2. Export DISPLAY โโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| export DISPLAY=:1 | |
| export XAUTHORITY=/root/.Xauthority | |
| touch $XAUTHORITY | |
| xauth generate :1 . trusted 2>/dev/null || true | |
| echo "โ DISPLAY=$DISPLAY" | |
| # โโ 3. Start Fluxbox WM โโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| pkill fluxbox 2>/dev/null || true | |
| fluxbox & | |
| FLUX_PID=$! | |
| echo "โ Fluxbox started (PID: $FLUX_PID)" | |
| sleep 3 | |
| # โโ 4. ุฎูููุฉ ู ููููุฉ ูุงุถุญุฉ ุจุนุฏ Fluxbox โโโโโโโโโโโโ | |
| # Fluxbox ูููุบู xsetroot โ ูุถุนูุง ุจุนุฏู ูููุฑุฑูุง | |
| xsetroot -solid "#1a1a2e" 2>/dev/null || true | |
| # ุงุณุชุฎุฏู convert (ImageMagick) ูุฑุณู ุฎูููุฉ ู ููููุฉ ู ุน ูุต ูุงุถุญ | |
| # ุญุชู ูุนุฑู ุงูู AI ุฃู ุงูุดุงุดุฉ ุญูุฉ ูููุณุช ุณูุฏุงุก | |
| convert -size 1920x1080 \ | |
| gradient:"#1a1a2e-#16213e" \ | |
| -fill "#00d4aa" \ | |
| -pointsize 48 \ | |
| -gravity Center \ | |
| -annotate 0 "Z AI Computer Mode โ Ready" \ | |
| -fill "#4a90d9" \ | |
| -pointsize 28 \ | |
| -gravity South \ | |
| -annotate 0 "Screen: 1920x1080 | DISPLAY=:1 | $(date '+%H:%M:%S')" \ | |
| /tmp/wallpaper.png 2>/dev/null && \ | |
| feh --bg-fill /tmp/wallpaper.png 2>/dev/null || \ | |
| xsetroot -solid "#1a1a2e" 2>/dev/null || true | |
| echo "โ Wallpaper set" | |
| # โโ 5. Verify display works โโโโโโโโโโโโโโโโโโโโโโ | |
| echo "๐ Testing display..." | |
| if xdotool getdisplaygeometry 2>/dev/null; then | |
| echo "โ Display working!" | |
| else | |
| echo "โ ๏ธ xdotool test failed โ continuing anyway" | |
| fi | |
| # โโ 6. Test screenshot โโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| scrot -q 80 /tmp/test_shot.png 2>/dev/null && \ | |
| echo "โ Screenshot test: OK" || \ | |
| echo "โ ๏ธ scrot test failed" | |
| # โโ 7. Detect browser โโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| if command -v firefox-esr &>/dev/null; then | |
| echo "โ Browser: firefox-esr" | |
| BROWSER="firefox-esr" | |
| elif command -v firefox &>/dev/null; then | |
| echo "โ Browser: firefox" | |
| BROWSER="firefox" | |
| elif command -v chromium-browser &>/dev/null; then | |
| echo "โ Browser: chromium-browser" | |
| BROWSER="chromium-browser" | |
| else | |
| echo "โ ๏ธ No browser found" | |
| BROWSER="" | |
| fi | |
| export DEFAULT_BROWSER="$BROWSER" | |
| # โโ 8. Pre-warm Firefox (ุงุฎุชูุงุฑู โ ูุณุฑูุน ุฃูู ูุชุญ) โ | |
| if [ -n "$BROWSER" ]; then | |
| $BROWSER --headless --no-sandbox about:blank &>/dev/null & | |
| sleep 2 | |
| pkill -f "headless" 2>/dev/null || true | |
| echo "โ Browser pre-warmed" | |
| fi | |
| echo "๐ Starting Python API on port ${PORT:-7860}..." | |
| cd /app | |
| exec python3 app.py | |