SteamOS
SteamOS copied to clipboard
CEC wake/sleep support
Your system information
- Steam client version: 1703100617
- SteamOS version: 3.6
- Opted into Steam client beta?: Yes
- Opted into SteamOS beta?: Yes
- Have you checked for updates in Settings > System?: Yes
Please describe your issue in as much detail as possible:
Now that the Steam Deck OLED supports Bluetooth wake-up, I would like SteamOS to support HDMI CEC wakeup. I have started working on something, but I hit a dead end realizing that the suspend.target
is not currently available in SteamOS. Here's what I've attempted:
- I have added a systemd service that sets up CEC information upon boot:
cec-setup.service
[Unit]
Description=Set up HDMI CEC
After=sockets.target
StartLimitIntervalSec=0
[Service]
Type=oneshot
ExecStart=/bin/sh -c 'cec-ctl -d/dev/cec0 --playback --osd-name "Steam Deck"'
[Install]
WantedBy=default.target
- I have added a systemd service to run after
suspend.target
:
cec-wake.service
[Unit]
Description=Turn on Display CEC on Device Wake
After=suspend.target
[Service]
ExecStartPre=/usr/bin/sleep 5
ExecStart=/bin/sh -c 'cec-ctl -d /dev/cec0 --to 0 --image-view-on; cec-ctl -d /dev/cec0 --to 0 --active-source phys-addr=1.0.0.0'
[Install]
WantedBy=suspend.target
However, upon inspection using systemctl --type=target
I haven't found the suspend target available.
There are likely better ways to handle this, but anyhow, having this functionality would be great. It would also be great to have CEC turn off functionality, where turning off the TV or the Deck would result in power being turned off on either devices.
Steps for reproducing this issue:
- Wake up Deck
- TV does not turn on
As well as:
- Put TV or Deck to sleep
- The other device does not go to sleep
Even though the scope of this ticket is only about wake Up and sleep...
Using Arrow Keys from remote TV controler should control steamdeck using HDMI cec.
Use case:
- bluetooth Gamepad is not paired.
- Can't control steamdeck. 1 Use TV remote for navigate to bluetooth devices. 2 Pair using TV controler.. 3 Use the bluetooth controler.
Edit: a prerequisite is being too lazy to move from my couch and not using in-built controls.
Edit: a posible implementation could be to update dock firmware and create a fake hid device which replay hdmi-cec messages as hid keyboard events. With hid events you could press power button and arrow keys.
Thanks for your work.
I hit a dead end realizing that the suspend.target is not currently available in SteamOS
Hi, /usr/lib/systemd/system/suspend.target
is definitely available, have you tried enabling your service ? (systemctl enable cec-wake.service
).
I wholeheatedly support this and was honestly astonished this wasn't already available. I only know a little shell and python scripting but in case I can help out with something please let me know!
Added in the current main build
@iGom What are you refering to with main build exactly? I haven't been able to get this function in any of the update channels yet, does that mean it has yet to be released?
Main is one of the advanced update channels that you can enable in developer settings.
Thanks! Tried it out and works fine. However had to roll back because xbox wireless controler didn't work yet. Happy to see the progress though and looking forward to this coming to more stable channels.
Works great here as well :), But can we map somehow the back button from TV remote to the "B" button in Steam OS? I can move around and launch apps without any problem with TV remote, but I can't go back (to the main menu) with it after selecting anything
Works for me as well on my LG TV, had to revert though because my xbox series controller seems to be doubling the input.
I experienced the input-doubling as well with all controllers except the built-in (DualSense, Xbox SX & 8-BitDo). It immediately went away when toggling off "Enable HDMI CEC Support".
Are those input doubling issues with Bluetooth controllers or also wired?
Are those input doubling issues with Bluetooth controllers or also wired?
Bluetooth for me, unsure on wired as I didn't think to try wired before reverting.
How's Main faring for you with this bug? The missing back bind should be there now, but curious about the double input, since I can't reproduce it.
Double input should be fixed in main (pacman, not an image yet).
How's Main faring for you with this bug? The missing back bind should be there now, but curious about the double input, since I can't reproduce it.
Now it works great <3 Can we also have any bind to the Steam Menu? It would be useful if you want to quickly turn off your steam deck without turning off your TV or to open your game catalog.
@Plagman: how are those binds handled? System-wide or only in the Gamepad mode? Can we change/modify them manually? I'm asking because right now in Kodi all directional buttons work, Back, Ok and Play also, but that is all. Pause, Rewind, Fast Forward, Stop, Info and all others do nothing. What we have right now is of course sufficient, but I was thinking if I can make it any better ;)
Also encountering double-inputs wired and Bluetooth (Switch Pro, Xbox Series) on SteamOS 3.6.0 Preview. Am I right in understanding there is a fix for this, just that it is not yet in a SteamOS image release?
Disabling CEC does indeed fix the problem for me as well.
Same happen to me with dual sense 5 controller. Enable CEC and then Ive got double inputs. On SteamOS preview. 3.6.0
Related issue over on the steam-for-linux tracker https://github.com/ValveSoftware/steam-for-linux/issues/10871 Feel free to contribute remote controller binding ideas if you have any.
The newest preview channel (3.6.2) solved my input doubling. Though the HDMI CEC seems to only turn on my TV (LG NANO90) successfully, but doesn't shut it off when putting the steam deck to sleep. I'm also finding that if I forget my xbox series controller in the bluetooth menu, it doesn't reappear in the list of available devices when attempting to resync, until I restart the unit for some reason.
I had been forgetting my controller and re-adding it in an attempt to get the controller's wake on bluetooth to work, since it seems to stop working after restarting, but that might be unrelated to this thread/set of issues.
LG NANO85 here, CEC doesn't turn the TV off with the deck nor on with the TV. Unsure if my dock is the problem as it claimed the firmware update failed but it never allowed me to try again.
Since this has landed in main I'm going to close this issue. Massive kudos to the Steam Deck team!
Please open new issues if you have problems with the CEC functionality.