mirror of
https://github.com/DeeJanuz/frametop.git
synced 2026-10-06 03:00:06 +02:00
Frametop: a multi-screen desktop and universal 3D mouse for the Steam Frame
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>
This commit is contained in:
commit
d439bc3f25
61 files changed
+8785
No files matched your search
Executable
+45
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env bash
|
||||
# Create or update the "dev" build container on the Steam Frame (Fedora 44 toolbox,
|
||||
# aarch64, via distrobox). Safe to re-run: it only creates what's missing and dnf
|
||||
# skips installed packages. This package list is the source of truth for rebuilding
|
||||
# the container.
|
||||
# Usage: setup/dev-container.sh (on the Frame, or from a PC over SSH)
|
||||
# Needs distrobox in ~/.local/bin on the Frame (see the top-level README).
|
||||
set -euo pipefail
|
||||
|
||||
root=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)
|
||||
. "$root/scripts/_env.sh"
|
||||
|
||||
packages=(
|
||||
# toolchains
|
||||
gcc gcc-c++ clang clang-devel cmake meson ninja-build make pkgconf-pkg-config cargo rust git
|
||||
# libraries for Frametop's native pieces
|
||||
pipewire-devel libxkbcommon-devel libinput-devel systemd-devel dbus-devel libdrm-devel
|
||||
mesa-libgbm-devel wayland-devel vulkan-loader-devel vulkan-headers plasma-wayland-protocols wlroots-devel
|
||||
# ft_pointer SteamVR driver: static C++ runtime (the host has an older glibc)
|
||||
libstdc++-static
|
||||
# Frametop Input Settings app (Kirigami, PySide6)
|
||||
python3-pyside6 kf6-kirigami kf6-qqc2-desktop-style qt6-qtwayland breeze-icon-theme plasma-breeze
|
||||
# Frametop remote desktop (VNC bridge through krdp)
|
||||
krdp freerdp tigervnc-x11-server
|
||||
# diagnostics and remote UI testing
|
||||
wayland-utils xorg-x11-server-Xvfb ImageMagick xdotool
|
||||
)
|
||||
|
||||
on_frame_script "${packages[@]}" <<'EOF'
|
||||
set -euo pipefail
|
||||
distrobox=$HOME/.local/bin/distrobox
|
||||
[ -x "$distrobox" ] || { echo "distrobox not found at $distrobox (see the top-level README)" >&2; exit 1; }
|
||||
if ! podman container exists dev; then
|
||||
echo "creating the dev container (Fedora 44 toolbox)"
|
||||
"$distrobox" create --yes --name dev --image registry.fedoraproject.org/fedora-toolbox:44
|
||||
fi
|
||||
"$distrobox" enter dev -- bash -c '
|
||||
set -euo pipefail
|
||||
echo "installing ${#@} packages (already-installed ones are skipped)"
|
||||
sudo dnf install -y -q "$@" 2>&1 | { grep -vE "is already installed|^Nothing to do|^$" || true; }
|
||||
# OpenVR programs built here (the pointer helper and probe) look for the runtime at /opt/steamvr.
|
||||
[ -e /opt/steamvr ] || sudo ln -s /run/host/opt/steamvr /opt/steamvr
|
||||
echo "dev container ready: $(. /etc/os-release; echo $PRETTY_NAME), glibc $(ldd --version | head -1 | grep -oE "[0-9.]+$")"
|
||||
' dev "$@"
|
||||
EOF
|
||||
Reference in new issue
Block a user