在 Linux 中运行 Flash 时阻止屏幕保护程序

在 Linux 中运行 Flash 时阻止屏幕保护程序

我想我的问题并不是我所独有的,而且我已经有这个问题有一段时间了。

我正在运行 Arch Linux,并且经常以全屏模式观看视频,尤其是 flash。然而,最终,屏幕保护程序会出现,并开始使屏幕变暗。我已将屏幕保护程序设置为在计算机“空闲”时运行。有谁知道有什么方法可以

  • 在播放 Flash 视频或观看其他视频时阻止屏幕保护程序出现?
  • 当 Flash 视频或普通视频全屏播放时,阻止屏幕保护程序出现?哎呀,甚至……
  • 让屏幕保护程序知道我的机器在观看 Flash 时并不空闲。

答案1

您可以通过运行来禁用屏幕保护程序xset s off

通过写入来再次启用它xset s 5,其中 5 是屏幕保护程序重新启动所需的秒数。

如果您想编写脚本,您可以尝试做这样的事情:

#!/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

应@snapfractalpop 的要求,提供一份简短的使用指南:

  1. 将其放在您的主目录中的某个位置 - 没关系。~/bin如果您还没有地方存放个人脚本,您可能需要创建一个目录。为了便于解释,我假设您将其放在 中~/bin/youtube-scrn-svr.sh

  2. chmod +x ~/bin/youtube-scrn-svr.sh或者通过其他方式使其可执行。

  3. 假设您的 DE 是常见的 DE 之一(XFCE、GNOME 和 KDE 可以通过这种方式加载脚本),创建一个名为的文件~/.config/autostart/flash-screensaver.desktop并向其中添加以下内容。

    [Desktop Entry]
    Name=Flash Screensaver Disabler
    Exec=/home/WHATEVER_YOUR_USERNAME_IS/bin/youtube-scrn-svr.sh
    Terminal=false
    Categories=Network;
    StartupNotify=false
    
  4. 尝试注销并观看适当长的视频,看看屏幕保护程序是否启用。

答案2

你检查过这个吗: https://bbs.archlinux.org/viewtopic.php?id=130447

我之前做过这个,想分享一下。这是一个 Bash 脚本,用于检查您在 Firefox 和 Chromium 中全屏观看 Flash 视频时的情况,并防止屏幕保护程序和 DPMS(关闭屏幕)激活。

相关内容