How w00zla/bindsight works
BindSight is a Tauri desktop utility for inspecting and managing Star Citizen input bindings. Its central workflow loads game configuration and connected-device state, then lets users inspect bindings through live input or action search, visualize device inputs, and edit bindings or device maps. Separate capabilities include profile comparison, backups, joystick-order correction, game-environment settings, and device diagnostics. The graph reflects documented features where implementation excerpts are absent; those subsystem paths use the exact source files or directories available in the tree.
Main entry points: App.vue App shell · lib.rs Tauri commands · BindingsView.vue Bindings view · ImageStage.vue Monitor display
Components 23
Desktop interface
- App shell
src/App.vue - Bindings view
src/components/BindingsView.vue - Monitor display
src/components/ImageStage.vue - Map editor
src/components/ImageMapEditor.vue - Tauri commands
src-tauri/src/lib.rs
Input monitoring
- Keyboard capture
src/keyboard.ts - SDL device input
src-tauri/src/input.rs - Device helpers
src/devices.ts - Device details
src-tauri/src/hid.rs
Binding management
- Binding index
src-tauri/src/bindings.rs - Binding profiles
src-tauri/src/binding_profiles.rs - Binding compare
src-tauri/src/diff.rs - Rebinding
src-tauri/src/rebind.rs - Backups
src-tauri/src/backups.rs
Game data and order
- Game configuration
src-tauri/src/config.rs - Star Citizen data
src-tauri/src/scdata.rs - Game log
src-tauri/src/gamelog.rs - Joystick order
src-tauri/src/order.rs - Wine diagnostics
src-tauri/src/wineorder.rs
Device visualizations
- Image-map storage
src-tauri/src/imagemap.rs - Image-map model
src/imagemap.ts
Other components
- Player
- Star Citizen files
Connections 30
- Player → App shell: uses
- App shell → Tauri commands: invokes commands
src/App.vue - App shell → Monitor display: shows monitor
src/App.vue - App shell → Bindings view: shows bindings
src/App.vue - App shell → Map editor: opens editor
src/App.vue - Keyboard capture → App shell: captures keys
src/keyboard.ts - SDL device input → App shell: emits input events
src-tauri/src/input.rs - App shell → SDL device input: starts input
- App shell → Device helpers: uses device state
src/App.vue - Monitor display → Device helpers: uses device helpers
src/components/ImageStage.vue - Monitor display → Image-map model: renders maps
src/components/ImageStage.vue - Bindings view → Tauri commands: requests binding operations
src/components/BindingsView.vue - Tauri commands → Binding index: dispatches binding commands
src-tauri/src/lib.rs - Binding index → Star Citizen data: uses game action data
src-tauri/src/bindings.rs - Binding index → Game log: uses device order
src-tauri/src/bindings.rs - Bindings view → Binding profiles: manages profiles
- Bindings view → Binding compare: compares bindings
src/components/BindingsView.vue - Bindings view → Backups: manages backups
src/components/BindingsView.vue - Bindings view → Rebinding: edits bindings
- Tauri commands → Game configuration: loads settings
src-tauri/src/lib.rs - Tauri commands → Star Citizen data: loads game data
src-tauri/src/lib.rs - Star Citizen data → Star Citizen files: parses game data
- Game log → Star Citizen files: reads game log
- Joystick order → Star Citizen files: corrects device slots
- Wine diagnostics → Joystick order: diagnoses order
src-tauri/src/wineorder.rs - App shell → Device details: shows device info
- Map editor → Tauri commands: imports and exports maps
src/components/ImageMapEditor.vue - Tauri commands → Image-map storage: dispatches map commands
src-tauri/src/lib.rs - Image-map storage → Game configuration: uses configuration
src-tauri/src/imagemap.rs - Map editor → Image-map model: edits map model
src/components/ImageMapEditor.vue