Skip to content
w00zlaPublic

About

Joystick/Controller/Keyboard+Mouse binding VISUALIZER and MAPPER for Star Citizen

Topics

Resources

Stars

18 stars

Watchers

1 watching

Forks

Repository files navigation

BindSight

BindSight

Star Citizen input binding VISUALIZER and MAPPER.

"BindSight gets your binds right!"

Platforms Built with MIT

The intention of this app is to be an add-on utility for the game Star Citizen with the goal to provide usable and powerful management features for input devices like keyboard/mouse, joysticks and gamepads, which the game is currently lacking.

You always forget what input which action was? You always get lost in the game's huge and impractical bindings list? You have issues with the game breaking your device bindings? Then this app is for you!

Latest Downloads

Windows Linux
Installer · Standalone AppImage · deb · rpm

Main Features

👀 Input Monitor

Answers the question: "What does each button do, and where does each action live?"

  • Press any input, see the bound actions! The app displays configured game bindings for keys, buttons, axes etc. for any input device in realtime.
  • Select an action, see the bound input! An "images and shapes"-based visualization of the input device shows you the keys, buttons, axes etc. which are bound to a specific action via realtime highlighting.

Preview Monitor Preview Monitor 2

🕹️ Action Bindings

Extended version of the game's bindings interface:

  • Search, filter and sort functionality and support for re-binding inputs.

  • Import and export of binding profiles per device with a detailed compare interface for a clear insight into differences to configured bindings.

Preview Bindings Preview Bindings 2

🖼️ Custom Visualizations

Due to the built-in visualization editor the app supports a near infinite amount of devices!

  • Build your own visualizations for your devices with images, shapes, text and colors. You can even share them via im- and export ;)

  • Currently included are following device visualizations:

    • Generic Keyboard/Mouse (US/DE + TKL)

    • Generic Xbox and PlayStation Controller

    • VKB Gladiator NXT EVO R (Premium)

    • VKB Gladiator NXT EVO Omni L (Premium)

Preview Devices

🖥️ Cross-Platform

The app supports Windows and Linux!

  • Currently tested with Windows 10 and Nobara Linux 44.

  • If you haven't already, try Linux now :)

Additional Tools

🔀 Device Order Fix

  • Star Citizen binds to joystick slots (js1, js2, …), not to devices. When a joystick is unplugged or comes back, the slots behind it shift and their bindings land on the wrong stick or on none.
  • The app knows which slot the game will give each joystick, shows the clash before the game starts, and fixes it: either in the configuration (bindings moved, joystick assignment recorded) or with the console commands for a running game.

💾 Backups

  • By default, the app makes backups of every changed game file before any modification. You can always revert unintentional or faulty changes!
  • And of course, you can manually back up at any time.

🔍 Device Info

  • Every fact about your devices plus a live event log, savable for troubleshooting.

Infos

⚙️ Settings

Game Environments

  1. Choose the correct Star Citizen game folders (the ones with a Data.p4k file in them) for your existing environments like LIVE and PTU, e.g.:
    • Windows: C:\Program Files\Roberts Space Industries\StarCitizen\LIVE
    • Linux/Wine: <wine-prefix>/drive_c/Program Files/Roberts Space Industries/StarCitizen/LIVE
  2. You can then switch the used Star Citizen environment on-the-fly in the app.

♻️ Application Updates

  • The application has auto-updates enabled by default

  • standalone, deb and rpm versions DO NOT support auto-updates!

💡FAQ / Known Issues

  • ESC key is never captured or recorded due to technical reasons (doesn't have a configurable binding either).
  • Mouse inputs are only captured while recording inputs (you need the mouse to use the app anyway).
  • Gamepad triggers are only buttons, no axis, as currently in the game.
  • A running game keeps its configuration and device order. You have to restart the game for most changes to take effect.
  • The app only shows connected devices which are also seen by the game (this specifically applies to Linux/Wine).
  • POTENTIAL ISSUE: app is untested with multiple devices of same type (e.g. two times the same joystick) and duplicate device-IDs might cause problems.

🗓️ Planned Features

  • Support for managing input inversion-, sensitivity- and deadzone settings.

  • Improved responsiveness so the GUI works better with smaller window sizes.

Building

  1. Install toolchain and dependencies:

    • All platforms: rustup, pnpm
    • Linux (Fedora/Nobara): webkit2gtk4.1-devel openssl-devel libappindicator-gtk3-devel librsvg2-devel libxdo-devel SDL2-devel, group c-development
    • Windows: Visual Studio Build Tools 2022+ with the workload Desktop development with C++, CMake on PATH (SDL2 is built from source and linked statically)
  2. Build and run the app:

    pnpm install
    pnpm tauri dev                     # development
    pnpm tauri build                   # release bundle on Windows
    pnpm build:linux                   # release bundle on Linux
    cd src-tauri && cargo test --lib   # backend tests, no hardware needed

Under the Hood

Part What
Shell Tauri 2, Rust
Frontend Vue 3, TypeScript, Vite, Konva (editor)
Input SDL2 joystick + GameController APIs, hidapi (HID names, axis usages), webview (keyboard, mouse)
Joystick order The game's own device list from its log, reconciled with the joystick assignment saved in its configuration; DirectInput 8 / Wine's registry order as diagnostics
Game data StarBreaker code to extract defaultProfile.xml, global.ini, token labels from Data.p4k
XML quick-xml parsing; textual rewrites keep the game's file layout; atomic writes, re-parsed before applied

Credits

About

Joystick/Controller/Keyboard+Mouse binding VISUALIZER and MAPPER for Star Citizen

Topics

Resources

Stars

18 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages