Skip to content

Add option to inhibit system sleep and screen saver during active operation #3551

@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?

Based on a thorough duplicate check of the open issue tracker for AetherSDR, none of your items match existing open tickets.

Because your submission contains four independent and distinct items spanning completely different areas of the codebase (OS integration, band/mode behavior, GUI layout, and external hardware devices), they cannot be combined into a single clean issue template.

Following the project's formatting guidelines, four separate feature requests have been drafted below so they can be filed independently on GitHub.


Feature Request 1: Screen Saver / Power Management

Title: Add option to inhibit system sleep and screen saver during active operation

What

An option within AppSettings (exposed via the Settings dialog) that allows the user to prevent the computer from entering sleep mode, blanking the display, or turning on the screen saver while AetherSDR is running and connected to a radio.

Why

When operating hands-free (e.g., listening to a net, monitoring a digital mode, or waiting on a DX propagation opening), the operating system's default power management settings will eventually blank the screen or suspend the computer. This abruptly drops the audio stream, terminates network-based VITA-49 data feeds, and forces a reconnect routine when the user wakes the computer up.

How Other Clients Do It

  • SmartSDR (Windows): Optionally uses Windows power management flags (ES_DISPLAY_REQUIRED | ES_SYSTEM_REQUIRED) via SetThreadExecutionState to prevent screens from turning off while connected to a transceiver.
  • SDR++ / GQRX: Provide a "Prevent sleep/blanking" toggle in general settings to ensure continuous DSP visualization and streaming.

Suggested Behavior

  • Add a checkbox in SettingsDialog -> General titled: "Inhibit system sleep and screen saver when connected".
  • When checked and a radio is active in RadioConnection, the application utilizes Qt's native platform-agnostic methods or system calls to block suspension.
  • In MainWindow::onRadioConnected(), trigger the application sleep inhibitor. On disconnect/exit, release the lock.

Protocol Hints

Unknown — needs research. This is handled purely at the operating system/Qt level, not through FlexLib commands. On Linux/X11/Wayland, this can be tracked via QSystemTrayIcon capabilities or an explicit D-Bus call to org.freedesktop.ScreenSaver (Inhibit / UnInhibit), or SDL_DisableScreenSaver if available.

Acceptance Criteria

  • Checkbox successfully persists state to AppSettings under the key InhibitSystemSleep.
  • System power management and screensavers do not trigger while an active streaming connection exists and the toggle is enabled.
  • Disconnecting from a radio or closing the client immediately releases the system power management lock.

Suggested Labels: enhancement, GUI


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