Prevent screensaver when flash is running in linux
You can disable the screensaver by running xset s off
.
Enable it again by writing xset s 5
, where 5 is the number of seconds it takes your screensaver to come back on.
If you want to write a script, you could attempt to do something like this:
#!/bin/bash
# Wrapper around the main body to facilitate being run
# from a startup file like .xinitrc, ~/.config/autostart, ...
while :; do
if pgrep xscreensaver >/dev/null; then
METHOD="xscreensaver"
pkill xscreensaver
else
METHOD="xset"
xset s off
fi
# If you want to be really fancy:
## notify-send "Screensaver Disabled" $"The Flash plugin is running"
while ps ax | grep libflashplayer.so >/dev/null; do
sleep 1 # Sleep while waiting for Flash to exit
done
if [ "$METHOD" = "xscreensaver" ]; then
xscreensaver &
else
xset s 30
fi
# If you want to be really fancy:
## notify-send "Screensaver Enabled" $"The Flash plugin has exited"
sleep 30
done
At @snapfractalpop's request, a short use guide:
Put this somewhere in your home directory - it doesn't matter. You probably want to make a
~/bin
directory if you don't have anywhere for personal scripts already. For the purpose of this explanation, I'll assume you put it in~/bin/youtube-scrn-svr.sh
.chmod +x ~/bin/youtube-scrn-svr.sh
or make it executable some other way.Assuming your DE is one of the common ones (XFCE, GNOME, and KDE can load scripts this way), create a file called
~/.config/autostart/flash-screensaver.desktop
and add the following to it.[Desktop Entry] Name=Flash Screensaver Disabler Exec=/home/WHATEVER_YOUR_USERNAME_IS/bin/youtube-scrn-svr.sh Terminal=false Categories=Network; StartupNotify=false
Try logging out and watching a suitably long video, and see if the screensaver is enabled.
Related videos on Youtube
ndnguyen
Not too much to say; I'm a software developer in Canada who still has a lot to learn.
Updated on September 18, 2022Comments
-
ndnguyen almost 2 years
I imagine that my problem is not unique to my circumstances, and I have been having it for some time.
I am running Arch Linux, and quite frequently watch videos, particularly flash, in fullscreen. However, eventually, the screensaver appears, and starts dimming the screen. I have the screensaver set to run whenever the computer is 'idle'. Does anyone know a way to either
- Stop the screensaver from appearing when in a flash video or watching other video?
- Stop the screensaver from appearing when a flash video or normal video is full-screened? Heck, even...
- Let the screensaver know that my machine is not idle when watching flash.
-
user1686 over 12 years
if [ "$(pgrep xscreensaver)" ];
→if pgrep xscreensaver;
. Just sayin'. -
new123456 over 12 years@grawity Thanks for the tip - I'm more used to Tcl and C, so the extra syntax feels a little more natural.
-
snapfractalpop over 11 yearsCan you elaborate on this a little? Where does this script go? Does one have to manually run it every time they view a youtube video that is longer than 5 mins? Why isn't this working out of the box?
-
new123456 over 11 years@snapfractalpop Try it now. There's an added section at the bottom explaining how best to use it.
-
Mark E. Haase over 10 yearsThis has to be the most stereotypically over-engineered response to a "how to" question about Linux ever. Where do I vote this into the hall of fame?