Skip to main content

Desktop control (VeltoKit JS)

Triki BLE cap → macOS input via TrikiBLEBridge (CoreBluetooth + CGEvent). Pick a mode in the app dropdown — one mode at a time (no gesture conflicts).

cd VeltoKit/js
npm install
npm run build:ble-bridge
npm run control

Modes

1 — Keyboard (default)

TrikiKey
Rotate← / →
Tilt up / down↑ / ↓
ClickEnter
HoldSpace
ShakeEsc

Works in browser, YouTube, any arrow-key UI.

2 — Presentations

TrikiAction
Rotate +Next slide (Page Down)
Rotate −Previous slide (Page Up)
ShakeLaser pointer (L — Keynote)

Keynote, PowerPoint, Google Slides (fullscreen).

3 — Mouse gestures

TrikiAction
Tilt (Δ)Cursor move (EMA smoothing)
RotateScroll
ClickLeft click
HoldDrag

Mac trackpad still works when the cap is still.

4a — App focus

TrikiAction
Tilt left / rightShift+Tab / Tab
ClickEnter (activate)

Same idea as Triki UI focus in the Quiz app — system-wide.

4b — Dev mode

TrikiShortcut
Rotate +⌘⌥→ next editor tab
Rotate −⌘⌥← previous tab
Click⌘⇧P Command Palette
Shake⌘⇧B Build

Cursor, VS Code, Xcode (editor must be focused).

Game (Minecraft)

TrikiAction
Tilt forward / backW / S (held)
Tilt left / rightA / D (held)
ClickLeft click (attack)
Hold buttonSpace (jump)

Focus the game window first. Keys are injected from VeltoKit Control (Accessibility).

Media

mapping.json — shake → play/pause, rotate → volume, punch → mute.

Accessibility (required)

macOS blocks synthetic keys until you enable VeltoKit Control in System Settings → Privacy & Security → Accessibility.

When running npm run control from source, the list entry may appear as Electron — enable that too.

Mouse mode also needs TrikiBLEBridge (same panel) for cursor/scroll.

Switching modes

  • UI: dropdown in the control app
  • CLI: VELTOKIT_CONTROL_MODE=presentation npm run control

Values: keyboard | presentation | mouse | app | dev | media

Architecture

Triki BLE → TrikiBLEBridge (Swift)
→ active session (keyboard | presentation | mouse | app | dev | media)
→ CGEvent (keys, mouse, scroll, drag, combos)

Permissions (macOS)

  • Bluetooth
  • Accessibility — injected keys and pointer

Godot games

See Godot plugin — GDScript plugin in godot/addons/veltokit_plugin/ (simulator on desktop; real BLE on Android via native plugin).

SDK overview · BLE integration · Godot