This commit is contained in:
Executable
+58
@@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
repo_path=${LUMBRIDGE_REPO:-/home/metal/Desktop/Lumbridge Code/lumbridge}
|
||||
window_title='Lumbridge · GPUI workspace'
|
||||
bacon_title='Lumbridge · Bacon'
|
||||
manifest_path="$repo_path/spikes/gpui-shell/Cargo.toml"
|
||||
binary_path="$repo_path/spikes/gpui-shell/target/debug/lumbridge-spike-gpui"
|
||||
|
||||
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 cargo wmctrl; do
|
||||
if ! command -v "$command_name" >/dev/null 2>&1; then
|
||||
echo "required command not found: $command_name" >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ ! -x "$binary_path" ]]; then
|
||||
cargo build --locked --manifest-path "$manifest_path"
|
||||
fi
|
||||
|
||||
existing_id=$(wmctrl -l | awk -v title="$window_title" 'index($0, title) { print $1; exit }')
|
||||
if [[ -z "$existing_id" ]]; then
|
||||
"$binary_path" >"$XDG_RUNTIME_DIR/lumbridge-gpui.log" 2>&1 &
|
||||
for _attempt in $(seq 1 80); 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 "Lumbridge window did not become visible; see $XDG_RUNTIME_DIR/lumbridge-gpui.log" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Gigabyte G34WQC is 3440x1440 at X=0. Lumbridge owns its left half; Bacon
|
||||
# remains visible beside it on the right half of the same monitor.
|
||||
bacon_id=$(wmctrl -l | awk -v title="$bacon_title" 'index($0, title) { print $1; exit }')
|
||||
if [[ -n "$bacon_id" ]]; then
|
||||
wmctrl -i -r "$bacon_id" -b remove,maximized_vert,maximized_horz
|
||||
wmctrl -i -r "$bacon_id" -e 0,1720,0,1720,1400
|
||||
fi
|
||||
|
||||
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 "Lumbridge is visible in window $existing_id on the left half of the Gigabyte display."
|
||||
Reference in New Issue
Block a user