Files
lumbridge-code/scripts/open-metal-bacon.sh
T
2026-08-31 15:42:26 -07:00

45 lines
1.4 KiB
Bash
Executable File

#!/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}
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."