Skip to content

Allow flexible toolbar configuration for horizontal row layout of UI elements #3553

@JAPMedia

Description

@JAPMedia

Request preparation

  • I used an AI assistant to help structure this request
  • I checked for existing issues covering the same feature

What would you like?

What

Introduce an option to display core operational elements (frequency, mode buttons, volume/gain controls) in a unified horizontal toolbar configuration rather than occupying dedicated vertical panels.
Why

AetherSDR uses vertical elements like AppletPanel and dedicated side widgets which optimize for large multi-monitor displays. For users on compact screens, laptops, or who run digital mode software (like WSJT-X) concurrently, a single horizontal row layout resembling a traditional hardware toolbar saves massive amounts of screen real estate.
How Other Clients Do It

GQRX: Employs modular Qt dock widgets that can be dragged into a single horizontal top bar or side bar layout.

SDR++: Employs a collapsible menu widget system that minimizes down to thin strips.

Suggested Behavior

Create a toggleable toolbar or add support to the existing layout management structure allowing elements normally situated in VfoWidget or RxApplet to be docked/reflowed horizontally.

The user can select View -> Show Control Toolbar to display a single, dense row of essential controls directly beneath the window menu bar.

Protocol Hints

Unknown — needs research. This is entirely an interior Qt structural layout item involving QToolBar or custom layout configurations.
Acceptance Criteria

User can cleanly switch to a unified horizontal layout option via the application menus.

Elements dynamically adapt to a row layout without clipping or visual corruption.

The selection is cleanly saved inside AppSettings.

Suggested Labels: enhancement, GUI
Feature Request 4: SunSDR E-Coder and RC-28 Hotkey Mapping

Title: Native support for SunSDR E-Coder panels and standardized Icom RC-28 hotkey mapping
What

Extend the physical hardware interface subsystem to support the SunSDR E-Coder (plus E-Coder Plus/2/3) USB control surfaces, and map their buttons and dials to a standard layout equivalent to the Icom RC-28 implementation.
Why

AetherSDR recently added native Icom RC-28 encoder support (#3293). Many amateur operators utilize SunSDR E-Coder hardware panels, which offer similar heavy-duty VFO knobs, multiple functional buttons, and LEDs. Providing out-of-the-box mappings for these controllers lowers the barrier to entry for hands-on, knob-driven tuning.
How Other Clients Do It

ExpertSDR: Native controller integration for all E-Coder variants via raw USB HID tracking.

SDR++ / SDR#: Plugin-driven MIDI or HID mappers that allow users to bind custom USB controller endpoints to specific frequency tuning loops.

Suggested Behavior

Add an explicit class under the HID input infrastructure (similar to the RC-28 implementation) matching the Vendor ID (VID) and Product ID (PID) of the SunSDR E-Coder hardware.

Parse incoming USB HID input reports for rotation increments and button press events.

Map these hardware buttons directly to functions like VFO A/B swap, Step Size, Mode changes, and RIT toggles natively.

Protocol Hints

Unknown — needs research. This requires raw USB HID interactions via libusb or QDeviceWatcher architectures already utilized by AetherSDR for other controller integrations.
Acceptance Criteria

The application recognizes connected SunSDR E-Coder devices via USB enumeration.

Rotating the physical tuning knob smoothly manipulates the target frequency via slice set <id> tuning_freq=.

Core operational button mappings correctly actuate UI events.

Suggested Labels: enhancement, external devices

Metadata

Metadata

Assignees

No one assigned

    Labels

    claude-activeAetherClaude is actively working on this issueenhancementImprovement to existing feature

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions