Open Ingvix opened 2 years ago
I had a similar issue and looked at the source code. JMP can be compiled to use either D-Bus or xdg-screensaver
to handle the screensaver. The file where this choice is made is here. So, in my case, I was using a version compiled to use D-Bus, but D-Bus was not installed in my system. Compiling with the appropriate flag (-DLINUX_X11POWER=ON
) fixed the issue for me.
To be sure, you can check the logs (in my case, they were in ~/.local/share/jellyfinmediaplayer/logs/jellyfinmediaplayer.log
) and grep for Power
. If you see something along the lines of [ ERROR ] PowerComponentDBus.cpp @ 126 - doDisableScreensaver : failed to retrieve interface.
then you are having the same issue I had. Otherwise, if you have the compiled version with the -DLINUX_X11POWER=ON
flag, you need to have xdg-screensaver
installed, which should be under the xdg-utils
package in most distros.
Is your feature request related to a problem? Please describe. I was wrong about the DPMS screensaver blocking CEC signals in https://github.com/jellyfin/jellyfin-media-player/issues/265. They work just fine, but DPMS does not register them as user input and turn off the screensaver. The screensaver also turns on even when there's playback going on in JMP.
Describe the solution you'd like I think JMP should let X server know not to turn the screensaver on when playback is active, as I believe MPV does. Not sure if it's usually a job for the DE/WM which isn't present when you're running JMP in a standalone session but in any case, I believe it would be a good feature for JMP to be able to handle it itself. Upon input from HDMI-CEC and possibly other input devices that DPMS does not register by default, JMP should tell X to turn off the screensaver or reset the timeout if the screensaver is not on.
Describe alternatives you've considered Currently you pretty much need to disable DPMS and its screensaver. The problem with this is the TV/display doesn't then know to go to standby mode unless user sets it so. This then can lead to wasting a lot of electricity as the display device stays active.