Bug 510210 - Add HDMI-CEC Integration to Plasma
Summary: Add HDMI-CEC Integration to Plasma
Status: RESOLVED NOT A BUG
Alias: None
Product: plasmashell
Classification: Plasma
Component: general (other bugs)
Version First Reported In: master
Platform: Fedora RPMs Linux
: NOR wishlist
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-10-03 19:58 UTC by Pat Riehecky
Modified: 2025-10-07 21:38 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Pat Riehecky 2025-10-03 19:58:32 UTC
Summary
This task proposes integrating support for HDMI-CEC (Consumer Electronics Control) into the KDE Plasma desktop.  HDMI-CEC allows the desktop to send and receive control commands over HDMI connections such as: turning on/off TVs or switching active sources. This integration aims to improve user experience on media setups and docking station configurations.  These settings may come as a surprise to users upon upgrade and as such should default to disabled/no action.

Motivation
HDMI-CEC is widely supported by modern HDMI displays, but less so in modern graphics cards. Supporting it in KDE would:

* Improve power management workflows by syncing display state with system state.
* Enhance usability in home theater setups and digital signage.
* Enable login screen control of connected displays.
* Allow better handling of audio output routing via HDMI.

Proposed Implementation:

Core Integration:
* Use libcec as the backend library for HDMI-CEC communication.
* Abstraction for alternate implementations might be handy.
* Graceful fallback behavior if libcec or CEC hardware is not available.
* User notification if CEC hardware is present, but system configuration prevents usage either due to missing bindings for libcec or missing permissions on device nodes.
* Provide a list of devices discovered on the HDMI bus and their features.

Tasks / Workboard Breakdown:

Power Management Integration Configurable by End User or System Admin:
These settings should have system level defaults an Admin can control that are inherited by End Users.  The ability to perhaps tune the settings to individual discovered devices might be interesting as users may want one set of values for TV XYZ and another set of values for TV ABC.

* On screen off (e.g., suspend, lid close): send CEC standby.
* On screen on (e.g., resume, wake): send CEC power on.
* A further toggle for sending Set Active Source on resume.

Session Start / Login Integration Configurable by End User or System Admin:
These settings should have system level defaults an Admin can control that are inherited by End Users.  The ability to perhaps tune the settings to individual discovered devices might be interesting as users may want one set of values for TV XYZ and another set of values for TV ABC.

* On login: send CEC power on.
* User setting: toggle for sending Set Active Source on login.

Login Window Integration:
Add support for HDMI-CEC commands at the login screen.  These should mirror the Power Management and Session Start options - but be controlled separately.

Audio Integration (Optional)
Investigate whether PulseAudio or PipeWire routing can be influenced by CEC and exposed to KDE.

Respect user input/output selection settings:
* If headphones or alternate output is active, then ignore CEC audio volume and its settings.
* Add toggle to disable HDMI-CEC volume forwarding, allowing users to set TV volume independently from system volume.

Permissions & Access Handling
Accessing /dev/cecX typically requires membership in dialout,video, or uaccess rules.
KDE should not modify system permissions but:
* Show a clear message in System Settings if the device is detected but permission is denied.
* Recommend enabling uaccess via PolKit for user-friendly operation.

Non-Goals / Out of Scope
Wake-on-CEC: Enabling the PC to boot when the TV powers on is firmware specific and out of KDE’s control.

Shutdown-on-TV-Off: Powering off the PC when the TV turns off may confuse users who are “on TTY2” and doing other troubleshooting.  This also provides consistency - if we don’t power up on an event we don’t power down on it either.

UX Notes
All features should be available in System Settings.

There should be a widget in System Settings to test individual commands, similar to the Audio test buttons “Front Left” and “Front Right” - only for the CEC commands.

Detected CEC devices and the items found on the HDMI bus along with their features should be exposed under “More System Information”
Comment 1 Neal Gompa 2025-10-03 20:58:51 UTC
This is something for plasmashell, moving it to the correct product.
Comment 2 Harald Sitter 2025-10-07 05:13:16 UTC
This seems like a somewhat unactionable meta task?
Comment 3 Nate Graham 2025-10-07 21:38:18 UTC
This is an interesting project idea, but it's quite a bit out of the scope of what can be tracked in a bug report; see https://community.kde.org/Get_Involved/Issue_Reporting#Step_1:_Make_sure_it's_a_valid_bug_or_feature_request. As written, this is a multi-week project requiring a small team, at the minimum. 

It's a cool idea for sure, it's just out of scope for Bugzilla. This is the kind of thing that could benefit from sponsored development or crowdfunding. Here are some potentially resources for you:
- https://ev.kde.org/consultants
- https://discuss.kde.org/c/development/sponsored-work/31