INTERACT FORUM
More => Old Versions => JRiver Media Center 29 for Linux => Topic started by: mattkhan on August 09, 2022, 03:24:33 am
-
Is there a setting in MC somewhere that ensures it sends appropriate signal to power management system to not dim the screen while playing video?
I can't find one and currently have to manually change settings before playback (using KDE 5.25 on Debian testing)
alternatively is this meant to work already but doesn't (on kde)?
-
We use DPMS to disable power management when the screen is supposed to be kept on, as well as use the X11 Screen Saver API to turn that one off. This seems to work in some situations as well.
There might be other calls that we could do using D-BUS, but all this stuff is really not well documented, unfortunately.
-
xset -q tells me
Screen Saver:
prefer blanking: yes allow exposures: yes
timeout: 0 cycle: 600
DPMS (Energy Star):
Standby: 0 Suspend: 0 Off: 0
DPMS is Disabled
so I guess DPMS is not involved for me anyway, do you have the exact X11 screensaver api used so I can google that to see how/if it relates to how kde works?
-
We call XSetScreenSaver with a timeout of 0, which is supposed to turn off the screensaver, but your report already has a timeout of 0, so its supposedly already off as well.
I assume this output was without MC running, from a fresh desktop?
I cross-checked a few other open-source multimedia projects, and on a glance all I could find was using XSetScreenSaver and DPMS as well.
-
I gather that kde reacts to this api -> https://people.freedesktop.org/~hadess/idle-inhibition-spec/re01.html
it appears to have been around for some time and a few different linux setups implement it so seems a reasonable thing to attempt to use
could MC be extended to make use of this?
EDIT: not 100% sure this works locally (or it doesn't work using qdbus anyway...)
-
I assume this output was without MC running, from a fresh desktop?
repeated on fresh boot and get the same output
-
just to give some backing to that interface as something worth trying
I found that SDL does use this interface on x11
https://github.com/libsdl-org/SDL/blob/3a6cb7e7c50ba4b386d015bb4193d3d95a2444fc/src/video/x11/SDL_x11events.c#L1747
which calls
https://github.com/libsdl-org/SDL/blob/07b0ec539f46434ff89ec82e608e5421bcecf5f0/src/core/linux/SDL_dbus.c#L360
-
We don't integrate with DBus at all yet, so that'll probably take some time.
-
switched to using qdbusviewer to send the signal and can confirm kde does respect this Inhibit call (no clue why dbus-send or qdbus don't work at the shell but google suggests I'm not alone!)
-
So just chiming in to confirm mattkhan's observation that I've never had MC actually inhibit the screen from turning off or from suspending on Gnome, KDE, or XFCE. I reported this a few years back I think, but some other folks indicated that it worked for them, so I assumed it was just something busted in my setup, but it sounds like at least one other person is seeing the issue.
FWIW I solved this problem at my house by writing a script as a work around to replace the system power management on my HTPCs because of this issue and some other issues with the default power-management behavior. I disable suspend and screen blanking in Gnome/KDE/XFCE settings, and then just run my script using systemd-timers or cron. The script is pretty basic, it just checks to see whether the system is a) not outputting sound (by checking the asound subdirectories under proc) and b) idle for more than some number of minutes. If both a) and b) it suspends the system, otherwise, it does nothing. This does what I want 99% of the time (i.e. keeps the computer on when music or video is playing), the only failure mode being if I put on a long playlist and walk away the computer will keep going for hours, but that's my fault really.
Obviously, I would prefer if MC could natively prevent screen turn off/suspend, but, honestly, browser video and some other software I use have the same problem interfacing with my DE's power management on Linux (e.g. if I'm watching a streaming film in the browser, the browser doesn't seem to prevent the screen from turning off either). So while my script is a kludge, it solves both MC and the browser/other use case too. As dumb as it is, I actually prefer it to Linux-native power management ::) .
-
thanks for confirming you see similar behaviour
Obviously, I would prefer if MC could natively prevent screen turn off/suspend, but, honestly, browser video and some other software I use have the same problem interfacing with my DE's power management on Linux (e.g. if I'm watching a streaming film in the browser, the browser doesn't seem to prevent the screen from turning off either).
fwiw this does work in my case (e.g. watching youtube in chrome or firefox or playing a video in smplayer/mpv) so for me it's just MC that has a problem (on what appears to be pretty much vanilla debian/kde system)
-
I assume you did turn in the option in MC's audio options to not disable HDMI during playback?
-
I assume you did turn in the option in MC's audio options to not disable HDMI during playback?
In my case, yes I tried that option, but it doesn't seem to make a difference on any of my systems. For reference all my systems run either Gnome or Xfce4. Most of those are on Debian 11.
-
In my case, yes I tried that option, but it doesn't seem to make a difference on any of my systems. For reference all my systems run either Gnome or Xfce4. Most of those are on Debian 11.
Works perfectly for me in Buster xfce4
The call is pretty simple
-
Works perfectly for me in Buster xfce4
The call is pretty simple
Can you tell me what your xfce4 power management settings are like so I can try to replicate? I've been tinkering with this for a while and I've never had MC successfully inhibit screen turn off or suspend with xfce, so if there's a combination of settings that works I'd be be happy to adopt it!
Does it work for you with Gnome as well?
-
Can you tell me what your xfce4 power management settings are like so I can try to replicate? I've been tinkering with this for a while and I've never had MC successfully inhibit screen turn off or suspend with xfce, so if there's a combination of settings that works I'd be be happy to adopt it!
Does it work for you with Gnome as well?
I just use stuff straight out of the box without reconfiguing the power managment.
MC uses these commands for power management on linux
XResetScreenSaver(GetJRUI()->GetDisplay());
// keeps the screensaver from activating.
For disabling the monitor shutoff IF DPMS is supported:
DPMSDisable(GetJRUI()->GetDisplay());
// disables monitor DPMS
Also MC will run this conditionally
XSetScreenSaver(GetJRUI()->GetDisplay(), 0, m_nInterval, m_nPrefer_blanking, m_nAllow_exposures);
// 0 as the second arg disables the screensaver. The other values are the default which the ScreenServer returned as its defaults.
The setting of these are logged.