Skip to content

v0.3.0

Choose a tag to compare

@ruffsl ruffsl released this 30 Dec 13:48
3ebd331

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