mirror of
https://github.com/DeeJanuz/frametop.git
synced 2026-10-06 01:00:06 +02:00
Several KDE Plasma screens floating in SteamVR, each a real monitor of any resolution and shape, shown by our own compositor (ft-screens), with a layout, wrist pinning, and visibility modes; a Bluetooth mouse that drives all of SteamVR as a room-anchored 3D pointer (input relay, ft-pointer helper, ft_pointer SteamVR driver); two settings apps; and Bluetooth LE fixes. Installs on the headset with ./install.sh. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
20 lines
1.3 KiB
Bash
Executable File
20 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Build ft-screens in the dev container on the Frame (screens/build/ft-screens).
|
|
# compositor.c is the wlroots side (C; wlroots headers aren't C++), vr.cpp the OpenVR side.
|
|
# vr.cpp needs OpenVR's IVRIPCResourceManagerClient (ImportDmabuf), which the header
|
|
# shipped with SteamVR on the Frame predates, so the build uses the public header from
|
|
# Valve's openvr repo (pinned; the Frame's runtime supports its interface versions).
|
|
set -euo pipefail
|
|
root=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)
|
|
"$root/scripts/sync.sh" >/dev/null
|
|
exec "$root/scripts/frame.sh" -C screens 'set -e; mkdir -p build/include
|
|
openvr=v2.15.6
|
|
[ -f build/include/openvr-$openvr ] || { curl -fsSL "https://raw.githubusercontent.com/ValveSoftware/openvr/$openvr/headers/openvr.h" -o build/include/openvr.h && touch build/include/openvr-$openvr; }
|
|
gcc -std=c11 -O2 -Wall -Wno-unused-parameter -c -o build/compositor.o compositor.c \
|
|
$(pkg-config --cflags wlroots-0.20 wayland-server xkbcommon libdrm pixman-1)
|
|
g++ -std=c++17 -O2 -Wall -Wno-missing-field-initializers -Ibuild/include -c -o build/vr.o vr.cpp
|
|
g++ -o build/ft-screens build/compositor.o build/vr.o \
|
|
$(pkg-config --libs wlroots-0.20 wayland-server xkbcommon) \
|
|
-L/opt/steamvr/bin/linuxarm64 -lopenvr_api -Wl,-rpath,/opt/steamvr/bin/linuxarm64
|
|
echo "built build/ft-screens"'
|