-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or request
Milestone
Description
Summary:
Currently, CtrlAssist is configured via CLI arguments, which is simple but limits extensibility for more complex setups. Adding config file support would enable advanced scenarios, such as:
- Using more than two hardware controllers per virtual device
- Supporting multiple virtual devices, each with their own primary/assist pairings (e.g., for 2v2 player-vs-player with four controllers split into two pairs)
- Expressive, persistent, and shareable configuration for per game setups
Expected Behavior:
Users can specify controller mappings, mux modes, and other settings in a config file (e.g., TOML, JSON with comments, or YAML), allowing for more flexible and complex configurations than the CLI alone.
Current Behavior:
All configuration is done via CLI arguments, which is limited to simple use cases (e.g., only two controllers per virtual device, one virtual device at a time).
Format Considerations:
- TOML: Readable, widely used in Rust, but limited in expressiveness for advanced references.
- JSON (with comments): Familiar, but lacks native comments and references.
- YAML: Most expressive (anchors, references), but adds parsing complexity.
- Preference is for a format that balances readability, ease of parsing, and future extensibility.
Suggested Solution:
- Design a config schema for controller-to-virtual-device mapping, mux modes, and other options.
- Implement config file parsing (preferably TOML or JSON with comments; YAML only if necessary for advanced features).
- Allow CLI to override config file values for quick adjustments.
Notes:
- This would enable advanced multiplayer and accessibility scenarios.
- Consider documenting example configs for common setups.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request