Skip to content

Prototyping a Graphical User Interface (GUI) #7

@ruffsl

Description

@ruffsl

Summary:
While the CLI is effective for basic usage, a graphical user interface (GUI) would greatly improve accessibility and ease of use, especially for users less comfortable with command-line tools. A GUI could simplify the process of creating, editing, and testing configurations, and provide interactive diagnostics for controller multiplexing.

Expected Features:

  • Visual configuration editor for controller mappings, mux modes, and virtual device settings
  • Interactive diagnostics and visualizations to introspect muxing modes and real-time input states
  • Ability to quickly switch between saved configurations without restarting the program
  • Integration with the config file format for persistent and shareable setups
  • User-friendly error reporting and troubleshooting tools

Dependencies:

  • CLI and config file format should reach a stable state before major GUI development
  • Consider rust based GUI frameworks (e.g., egui, iced, etc.)
  • Bevy may be ideal given use of gilrs, but Slint may also be promising

Suggested Solution:

  • Begin prototyping a GUI once the CLI and config system are stable
  • Gather user feedback on desired features and usability
  • Ensure the GUI can operate alongside or in place of the CLI

Notes:

  • A GUI would make CtrlAssist more approachable for a wider audience, including families and accessibility advocates.
  • Diagnostic tools could help with debugging controller issues and understanding muxing behavior in real time.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions