#!/usr/bin/env bash set -euo pipefail repo_path=${LUMBRIDGE_REPO:-/home/metal/Desktop/Lumbridge Code/lumbridge} window_title='Lumbridge ยท Bacon' if [[ ! -d "$repo_path/.git" ]]; then echo "Lumbridge repository not found at $repo_path" >&2 exit 1 fi export DISPLAY=${DISPLAY:-:0} export XAUTHORITY=${XAUTHORITY:-/run/user/1000/gdm/Xauthority} export XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR:-/run/user/1000} export DBUS_SESSION_BUS_ADDRESS=${DBUS_SESSION_BUS_ADDRESS:-unix:path=/run/user/1000/bus} for command_name in gnome-terminal wmctrl; do if ! command -v "$command_name" >/dev/null 2>&1; then echo "required command not found: $command_name" >&2 exit 1 fi done existing_id=$(wmctrl -l | awk -v title="$window_title" 'index($0, title) { print $1; exit }') if [[ -z "$existing_id" ]]; then gnome-terminal \ --title="$window_title" \ -- bash -lc "cd '$repo_path' && source /home/metal/.cargo/env && exec bacon" & for _attempt in $(seq 1 50); do existing_id=$(wmctrl -l | awk -v title="$window_title" 'index($0, title) { print $1; exit }') [[ -n "$existing_id" ]] && break sleep 0.1 done fi if [[ -z "$existing_id" ]]; then echo "Bacon terminal did not become visible" >&2 exit 1 fi # Gigabyte G34WQC is 3440x1440 at X=0. Leave room for GNOME's top bar. wmctrl -i -r "$existing_id" -b remove,maximized_vert,maximized_horz wmctrl -i -r "$existing_id" -e 0,0,0,1720,1400 wmctrl -i -a "$existing_id" echo "Bacon is running in window $existing_id on the left half of the Gigabyte display."