mirror of
https://github.com/DeeJanuz/frametop.git
synced 2026-10-17 15:00:36 +02:00
SteamVR's dashboard starts a floating window's move only for a press from the head or a hand: UndockedOverlay.startFloatingWindowMove reads the pressing device from the mouse event's CapsLock/NumLock bits and logs "mouse event carried no input path" for anything else. So the 3D mouse as a treadmill clicked and resized SteamVR's windows but couldn't move them, the regression since 2026-10-09. pointer/dashpatch wraps the grab bar's handler in the dashboard page: a press with no device runs it as the right hand, with that pose answered by /user/treadmill, and the move then follows /user/treadmill. frametop-dashpatch.service puts it in over the dashboard's debugger, again whenever SteamVR restarts. The installer turns the debugger on at 127.0.0.1:8089 (not 8087, which SteamOS forwards to the network on 8088); the uninstaller turns it off if Frametop turned it on. Headset test 2026-10-13: window moves with the treadmill role work. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
26 lines
1.6 KiB
Bash
Executable File
26 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Install, start, stop, or inspect the dashboard patch (ft-dashpatch.py) on the Frame.
|
|
# Usage: pointer/dashpatch/run.sh install|uninstall # user service, starts with SteamVR; install also
|
|
# # turns on SteamVR's dashboard debugger (127.0.0.1:8089)
|
|
# pointer/dashpatch/run.sh start|stop|restart|status|log [lines]
|
|
set -euo pipefail
|
|
root=$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)
|
|
. "$root/scripts/_env.sh"
|
|
frame="$root/scripts/frame.sh"
|
|
unit=frametop-dashpatch.service
|
|
case ${1:-status} in
|
|
install)
|
|
fill_template "$root/pointer/dashpatch/$unit" | on_frame "mkdir -p ~/.config/systemd/user && cat > ~/.config/systemd/user/$unit"
|
|
on_frame "chmod +x pointer/dashpatch/ft-dashpatch.py"
|
|
on_frame "/usr/bin/python3 -I pointer/dashpatch/ft-dashpatch.py on" || true
|
|
"$frame" --host "set -e; systemctl --user daemon-reload; systemctl --user enable $unit
|
|
$(start_with_steamvr $unit)" ;;
|
|
uninstall)
|
|
"$frame" --host "systemctl --user disable --now $unit 2>/dev/null; rm -f ~/.config/systemd/user/$unit; systemctl --user daemon-reload; echo removed"
|
|
on_frame "/usr/bin/python3 -I pointer/dashpatch/ft-dashpatch.py off" || true ;;
|
|
start|stop|restart) "$frame" --host "systemctl --user $1 $unit; systemctl --user is-active $unit" ;;
|
|
status) "$frame" --host "systemctl --user is-active $unit" || true; on_frame "/usr/bin/python3 -I pointer/dashpatch/ft-dashpatch.py status" || true ;;
|
|
log) "$frame" --host "journalctl --user -u $unit --no-pager -o cat -n ${2:-30}" ;;
|
|
*) echo "usage: $0 install|uninstall|start|stop|restart|status|log" >&2; exit 2 ;;
|
|
esac
|