How can I prevent Fedora from turning off the monitor during long calls or when gaming?

Hi

This has been bothering me since I switched to Fedora: The monitor turns off when I’m on a long call or playing a game.

  • Using Discord to make a video call, my screen will turn off every ~10 minutes
  • Playing games with a game controller, the screen will turn off every ~10 minutes

When looking online, I only find solution to prevent the monitor from turning off forever. That’s not what I want. I still want it to turn off when I let the computer idle.

I don’t have this problem on Windows: When playing a game or watching a long video or being on a long video call, the monitor will never turn off. Somehow Windows knows that something important is happening and prevent the monitor from going to sleep.
How can I get the same behavior on Fedora?

Thanks

This just happens if you do not use the mouse or the keyboard.
Under >Power >>Power saving options you can change the time to avoid the screen getting blank.

This is probably because your hardware is designed to use with Windows and has the necessary drivers for it.

I had this too with the Mate desktop, getting blank screen from time to time. You can avoid this when using the keyboard to pause your video once a while or as mentioned above change the getting blank interval.

Do you have this problem with which Desktop Environment?

I’m using Fedora Workstation with Gnome.

I’m just wondering how come Firefox is able to prevent sleep when I watch a long video, but the Discord app or games aren’t capable of the same. Is it because I’m using Flatpak for Discord?

If it can’t be done automatically, maybe there’s a way to set some rules? Like: when I’m using Discord or game XYZ, don’t turn off the monitor and don’t go to sleep, but when I use other apps, it’s allowed to sleep.

It can also bee because of protected content. It is quite common that this happens in discord:

You can try to create an other user where you switch the power saving options off.
Then you start with a script the apps, as this different user, you don’t want to black out the screen.

No, I’m not trying to stream using Discord. My calls work perfectly, I can see and hear the others and they see and hear me fine. My problem is that if the call last for a long time, the screen eventually turn off without having to move the mouse every 5 minutes (just like it does on Windows)

Is Performance Mode supposed to prevent the monitor from turning off?

If you don’t have this problem on Windows, it’s because the programs you use implemented the feature on Windows. For example here is the Windows screensaver inhibit code for VLC media player. Windows does not “know” which programs should inhibit screensaver—besides, different users might expect different behaviour from the same program.

Discord is closed source so you’ll have to ask them.

For games, you can use gamemode (available in Fedora repos) to inhibit screensaver, among other useful things. Using it is as simple as adding gamemoderun before a command, e.g. gamemoderun supertux2.

Lutris game library/manager (also available in Fedora repos) has built-in support for gamemode, and also for disabling screensaver independently.

The Bluetooth manager I use, blueman, has a plugin to inhibit screensaver when a gamepad is connected. I don’t know if gnome-bluetooth has such a feature (probably not).

2 Likes

There is a GNOME extension, caffeine that might do what you want. In Fedora repos as gnome-shell-extension-caffeine

2 Likes

You can look and see what’s inhibited from a terminal with gnome-session-inhibit -l

You can also start commands with gnome-session-inhibit command to inhibit the screensaver.

This can also be done by modifying the Exec= line in the desktop file for the application you’re running.

2 Likes

As many times I tried to start the screensaver this way. Unfortunately without success. I just found xscreensaver where I would have to install ?

1 Like

That does not start the screensaver.

Ok got it :person_facepalming:

gnome-session-inhibit i saw a small tipo

1 Like

So it seems to be affecting only the Flatpak version of Discord. The official version distributed as a tar ball from the Discord website correctly prevents sleep during calls, as verified by gnome-session-inhibit -l. Running Discord in Firefox also correctly prevents sleep during calls.

Caffeine from the Extention Manager works when needed, but we need to remember to activate it when needed and then deactivate it. Sounds annoying… At least there’s a setting for it to detect full screen apps and prevent sleep when using those. So it should work with most games I hope.

Ideally, Fedora should consider game controller inputs as something that should prevent sleep, like mouse movements or keyboard inputs. Isn’t there a way to do that?

2 Likes

I might have overlooked this, but I think that the first possible option was not used here, even if mentioned.

Open Settings (Gnome Control Center), go to Power, then open the Screen Blank selector and change it to Never. The screen should not turn black with this setting. I am using it on my recording studio laptop which should not turn black during the recording session. Whenever I want it to turn black, I just lock the screen using Super-L.

There is an open issue for GNOME (mutter) to support this: Screensaver is not inhibited on gamepad input (#2180) · Issues · GNOME / mutter · GitLab

I also found this project joystickwake, but I have not used it so I can’t give any particular advice.

Otherwise the closest solution I’m aware of is the previously-mentioned blueman plugin.


By the way, this type of issue should be addressed upstream (meaning by the projects that develop the specific software, like GNOME), not in Fedora, since it’s relevant to everyone who uses the software outside of Fedora as well.