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)
| Triki | Key |
|---|---|
| Rotate | ← / → |
| Tilt up / down | ↑ / ↓ |
| Click | Enter |
| Hold | Space |
| Shake | Esc |
Works in browser, YouTube, any arrow-key UI.
2 — Presentations
| Triki | Action |
|---|---|
| Rotate + | Next slide (Page Down) |
| Rotate − | Previous slide (Page Up) |
| Shake | Laser pointer (L — Keynote) |
Keynote, PowerPoint, Google Slides (fullscreen).
3 — Mouse gestures
| Triki | Action |
|---|---|
| Tilt (Δ) | Cursor move (EMA smoothing) |
| Rotate | Scroll |
| Click | Left click |
| Hold | Drag |
Mac trackpad still works when the cap is still.
4a — App focus
| Triki | Action |
|---|---|
| Tilt left / right | Shift+Tab / Tab |
| Click | Enter (activate) |
Same idea as Triki UI focus in the Quiz app — system-wide.
4b — Dev mode
| Triki | Shortcut |
|---|---|
| Rotate + | ⌘⌥→ next editor tab |
| Rotate − | ⌘⌥← previous tab |
| Click | ⌘⇧P Command Palette |
| Shake | ⌘⇧B Build |
Cursor, VS Code, Xcode (editor must be focused).
Game (Minecraft)
| Triki | Action |
|---|---|
| Tilt forward / back | W / S (held) |
| Tilt left / right | A / D (held) |
| Click | Left click (attack) |
| Hold button | Space (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).