#!/usr/bin/env bash # Run on the travel laptop: closes any Chromium running for you on the remote # machine (Chromium allows one process per profile, so a running instance # would swallow the new window), then launches it there with its window # drawn here. # # Usage: remote-chromium.sh [--x11] (default: waypipe) # Remote host: $REMOTE_HOST, default teemu-thinkpad-ubuntu set -euo pipefail HOST="${REMOTE_HOST:-teemu-thinkpad-ubuntu}" MODE="waypipe" [ "${1:-}" = "--x11" ] && MODE="x11" if [ "$MODE" = "waypipe" ] && ! command -v waypipe >/dev/null 2>&1; then echo "waypipe not installed here - run: sudo apt install waypipe (needed on both machines)" exit 1 fi ssh "$HOST" bash -s <<'EOF' # snap build (Ubuntu) and the Debian package - matches the browser binary only, # not shells/editors that merely mention "chromium" PAT='chromium-browser/chrome|/usr/lib/chromium/chromium' if pgrep -u "$USER" -f "$PAT" >/dev/null; then echo "Chromium is running on $(hostname) - closing it gracefully..." pkill -TERM -u "$USER" -f "$PAT" for _ in $(seq 1 10); do pgrep -u "$USER" -f "$PAT" >/dev/null || break sleep 1 done if pgrep -u "$USER" -f "$PAT" >/dev/null; then echo "Still running after 10s - force killing." pkill -KILL -u "$USER" -f "$PAT" fi fi EOF case "$MODE" in waypipe) exec waypipe ssh "$HOST" chromium --ozone-platform=wayland ;; x11) exec ssh -X "$HOST" chromium ;; esac