XScreenSaver (简体中文)
XScreenSaver 是 X 窗口系统的屏保和锁屏工具。
安装
安装 xscreensaver 包。
如果安装 xscreensaver-arch-logoAUR 包,可以获得有 Arch Linux 标志的外观。
配置
大多数选项都可以通过运行 xscreensaver-settings 来逐个用户配置的。xscreensaver-settings 会将所选的配置写入 ~/.xscreensaver
,并丢弃对文件的任何手动修改。 全局选项定义在 /usr/share/X11/app-defaults/XScreenSaver
中。
至少从 XScreenSaver 5.22 开始,有了另一种方法来编辑 XScreenSaver 的用户配置:使用 Xresources。其中也包括对主题的支持。有关 5.22 版本的默认选项,请参阅 [1]。
DPMS 和挂起设置
XScreenSaver 独立于 X 本身进行显示设备的电源管理(DPMS),会覆盖 X 本身的设置。要配置挂起、待机、关闭显示器等的时间,请使用 xscreensaver-demo 或手动编辑配置文件,例如 ~/.xscreensaver。
timeout: 1:00:00 cycle: 0:05:00 lock: False lockTimeout: 0:00:00 passwdTimeout: 0:00:30 fade: True unfade: False fadeSeconds: 0:00:03 fadeTicks: 20 dpmsEnabled: True dpmsStandby: 2:00:00 dpmsSuspend: 2:00:00 dpmsOff: 4:00:00
可通过启动 xscreensaver-demo Mode 设置,选择 Disable Screen Saver 禁用 DPMS 和屏幕挂起。
使用
要启动 XScreenSaver,请使用 -no-splash
选项。有关完整的选项列表,请参阅 1}。
在 Xfce, LXDE 和 LXQt 环境中, 如果 XScreenSaver 可用,XScreenSaver 就会自动启动 - 且无需进一步操作。对于其他环境,请参阅自动启动。
如果要立即触发 xscreensaver,如果它正在运行,并锁定了屏幕,请执行以下命令:
$ xscreensaver-command -lock
锁定挂起
请参阅 Power management (简体中文)#xss-lock。您可能需要将 XScreenSaver 的淡出时间设置为 0。
从锁屏画面切换登录用户
默认情况下,XScreenSaver 锁定屏幕中的 New Login 按钮会启动 /usr/bin/gdmflexiserver
以切换用户。除了 GDM 和 KDM 的其他支持用户切换的 显示管理器 (比如 LightDM)需要使用不同的命令。
~/.Xresources
,而将参数留空将使 New Login 按钮消失。由于 ~/.xscreensensaver
中的修改被 xscreensaver-demo 丢弃,故本节中使用了 ~/.Xresources。
LXDM
使用 LXDM 的切换用户功能:
xscreensaver.newLoginCommand: lxdm -c USER_SWITCH
LightDM
使用 LightDM 的切换用户功能:
xscreensaver.newLoginCommand: dm-tool switch-to-greeter
提示和技巧
在媒体播放时禁用
mpv
默认情况下,mpv 会在启动时关闭屏幕保护程序,并在退出时再次开启。当播放器暂停时,屏幕保护程序总是能被重新启用。该选项可以在 mpv 的配置文件中控制,位于 ~/.config/mpv/mpv/mpv.conf
:
stop-screensaver = "yes"
然而这并不是所有的视频输出或平台都会支持。如果你遇到了一些问题,你可以使用 Lua 脚本来手动关闭屏幕保护程序。在 ~/.config/mpv/scripts/xscreensaver.lua
中创建一个文件,其中包含以下内容:
local utils = require 'mp.utils' mp.add_periodic_timer(30, function() utils.subprocess({args={"xscreensaver-command", "-deactivate"}}) end)
上面的脚本会每隔30秒调用 xscreensaver-command -deactivate
。(以前你可以使用 heartbeat-cmd
配置选项,但其在新版本的 mpv 中已经不存在了)。
mplayer
在 ~/.mplayer/config
中添加以下内容:
heartbeat-cmd="xscreensaver-command -deactivate >&- 2>&- &"
Kodi
Kodi 不支持禁用 XScreenSaver (它使用自己的屏幕保护程序)。为了实现禁用,请安装 kodi-prevent-xscreensaverAUR 包,或者尝试使用从 https://sourceforge.net/projects/osscreensavermanager/ 下载的 Kodi 扩展。
浏览 HTML5 video/Flash
没有原生的方法来禁用 XScreenSaver for Flash 或 HTML5 全屏视频,但有一个名为lightsonplus 的脚本,同时支持 Firefox 的 Flash 插件、Chromium 的 Flash 插件、Firefox、Chromium、MPlayer 和 VLC中的 HTML5 全屏视频。
另一个提供解决方案的脚本是 firefox-dpms-gitAUR,它利用了 Firefox 的 PulseAudio 输出检测,因此它也可以在窗口模式下工作(但不是没有音频播放)。
动态壁纸
可以在后台运行 xscreensaver
,就像壁纸一样。首先,中断一切控制背景的进程(根窗口)。
然后,找到所需的 XScreenSaver 可执行文件(通常在 /usr/lib/xscreensaver/
中),并使用 -root
选项运行它,例如:
$ /usr/lib/xscreensaver/glslideshow -root &
$ xwinwrap -b -fs -sp -fs -nf -ov -- /usr/lib/xscreensaver/glslideshow -root -window-id WID &
问题解决
你可以通过创建日志文件 touch /var/log/xscreensaver.log
以配置 xscreensaver 来写入日志文件,然后指定其 X resource logFile。
~/.Xresources
xscreensaver.logFile:/var/log/xscreensaver.log
要将详细的调试信息记录到 logFile 中,可以使用 -verbose
选项启动 xscreensaver,或者在 ~/.Xresources
中添加这个选项:
~/.Xresources
xscreensaver.logFile:/var/log/xscreensaver.log xscreensaver.verbose:true