Skip to content

Releases: ruffsl/CtrlAssist

v0.3.0

30 Dec 13:48
3ebd331

Choose a tag to compare

Announcing the release of CtrlAssist v0.3.0, which introduces significant new features and usability improvements.

Major Features

System Tray Interface

This release introduces a graphical system tray application that provides desktop integration for managing controller multiplexing. Users can now:

  • Configure primary and assist controller assignments via dropdown menus
  • Start and stop the mux without using the command line
  • Adjust settings through a context menu interface
  • Receive desktop notifications for status changes
  • Persist configuration across sessions

The tray interface supports live reconfiguration of device-invariant settings (mux mode and rumble target) while the mux is running.

Multiple Hiding Strategies

Controller hiding now supports three distinct strategies:

  • None: No hiding, manual configuration required
  • Steam: Automatically manages Steam's controller blacklist via config.vdf modification
  • System: Restricts device permissions system-wide (requires root access)

The Steam hiding strategy enables proper functionality in sandboxed environments without requiring elevated privileges, addressing a key limitation for Flatpak users.

Live Runtime Updates

The mux runtime now supports dynamic reconfiguration without restart for:

  • Mux mode changes (Priority, Average, Toggle)
  • Rumble target adjustments (Primary, Assist, Both, None)

This functionality is available through both the system tray and programmatic (D-BUS) interfaces, allowing users to adapt behavior during gameplay sessions.

Flatpak Distribution

CtrlAssist is now packaged as a Flatpak application with:

  • Automated GitHub Actions workflow for release builds
  • Desktop entry and metainfo for application catalogs
  • Proper sandbox permissions for device access
  • Support for Steam configuration modifications within the sandbox

Flatpak bundles are automatically built and attached to GitHub releases.

Additional Improvements

  • Configuration persistence to $XDG_CONFIG_HOME/ctrlassist/config.toml
  • Controller selection by name with best-effort matching across sessions
  • Enhanced documentation with installation instructions for both Cargo and Flatpak
  • New pixel art banner and application icon (via Aseprite)
  • Improved force feedback device recovery after disconnection
  • Better error handling and user feedback throughout the application

Installation

CtrlAssist v0.3.0 can be installed via:

  • Cargo: cargo install ctrlassist --force
  • Flatpak: Download the bundle from the releases page and install with flatpak install

Full installation instructions are available in the README.

Breaking Changes

The --hide flag now requires an enum value (none, steam, system) instead of being a boolean flag. Users upgrading from v0.2.x should update their scripts accordingly:

  • Previous: ctrlassist mux --hide
  • Current: ctrlassist mux --hide system

What's Changed

  • feat: package CtrlAssist for Flatpak by @ruffsl in #25
  • feat: Add Multiple Hide Strategies with Steam Blacklist Support by @ruffsl in #26
  • feat: add System tray app by @ruffsl in #27
  • feat: update banner to pixel art by @ruffsl in #28
  • feat: polish for flatpak submission by @ruffsl in #29
  • feat: update version to 0.3.0 in Cargo files and README by @ruffsl in #30
  • fix: improve flatpack manifest and support multi instance while sandboxed by @ruffsl in #31
  • feat: add Flatpak release workflow for GitHub Releases by @ruffsl in #32
  • fix: flatpak release workflow by @ruffsl in #33 #34 #35 #36 #37 #38 #39 #40
  • feat: enable live updates for mux mode and rumble settings by @ruffsl in #41
  • docs: improve clarity and consistency in README documentation by @ruffsl in #42

Full Changelog: v0.2.0...v0.3.0

v0.2.0

20 Dec 21:14
01ad0fc

Choose a tag to compare

What's Changed

  • docs: add badges for CI and Crates.io by @ruffsl in #16
  • feat: Add Force Feedback (Rumble) Forwarding from Virtual to Physical Controllers by @ruffsl in #20
  • fix: correct upstream button mappings for virtual gamepad by @ruffsl in #21
  • fix: correctly resolve gamepad devices by @ruffsl in #22
  • fix: sync input between active and primary transitions by @ruffsl in #23
  • chore: bump version to v0.2.0 by @ruffsl in #24

Full Changelog: v0.1.0...v0.2.0

v0.1.0

07 Dec 18:30
65c5989

Choose a tag to compare

What's Changed

  • Initial working MVP and project outline for CtrlAssist by @ruffsl in #1
  • Fix and include web banner for README by @ruffsl in #2
  • Refactor mux modes into separate modules by @ruffsl in #3
  • docs: cleanup and reformat README by @ruffsl in #11
  • chore: cleanup for initial release by @ruffsl in #12

Full Changelog: https://github.com/ruffsl/CtrlAssist/commits/v0.1.0