XScreenSaver (简体中文)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
翻译状态:本文是 Xscreensaver翻译。上次翻译日期:2021-08-27。如果英文版本有所更改,则您可以帮助同步翻译。

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 和挂起设置

Tango-edit-clear.pngThis article or section needs language, wiki syntax or style improvements. See Help:Style for reference.Tango-edit-clear.png

Reason: "overrides DPMS" 并不清晰 - xscreensaver 做了相当于 xset s 0 0 的工作,并使用自己的定时器来处理各种动画,但将 DPMS timeout 设置为 Display Power Management 中的值。 (Discuss in Talk:XScreenSaver (简体中文))

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-demo 中的 Lock Screen After 被勾选并设为 0 分钟,则屏幕将在空白后立即锁定。如果不勾选 Power Manager Enabled,DPMS 将被禁用;这并不意味着 XScreenSaver 会放弃对 DPMS 设置的控制。

使用

要启动 XScreenSaver,请使用 -no-splash 选项。有关完整的选项列表,请参阅 1}。

XfceLXDELXQt 环境中, 如果 XScreenSaver 可用,XScreenSaver 就会自动启动 - 且无需进一步操作。对于其他环境,请参阅自动启动

如果要立即触发 xscreensaver,如果它正在运行,并锁定了屏幕,请执行以下命令:

$ xscreensaver-command -lock

锁定挂起

请参阅 Power management (简体中文)#xss-lock。您可能需要将 XScreenSaver 的淡出时间设置为 0。

从锁屏画面切换登录用户

警告: 当使用 GDM 或 LightDM 这样的显示管理器切换用户时,XScreenSaver 不会锁定原始会话,只需将 TTY 切换到相关会话即可,无需密码即可访问。如果你使用的是 LightDM,请安装light-locker,然后与 XScreenSaver 一起运行。另外,也可以使用其他的屏幕锁定程序——参见 List of applications/Security#Screen lockers

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: KDM 不再受 Arch Linux 的支持。KDE 现在使用 SDDM,参见 Diff/486338. (Discuss in Talk:XScreenSaver (简体中文))

默认情况下,XScreenSaver 锁定屏幕中的 New Login 按钮会启动 /usr/bin/gdmflexiserver 以切换用户。除了 GDM 和 KDM 的其他支持用户切换的 显示管理器 (比如 LightDM)需要使用不同的命令。

提示:xscreensensaver.newLoginCommand: 添加到 ~/.Xresources,而将参数留空将使 New Login 按钮消失。

由于 ~/.xscreensensaver 中的修改被 xscreensaver-demo 丢弃,故本节中使用了 ~/.Xresources。

LXDM

使用 LXDM 的切换用户功能:

xscreensaver.newLoginCommand: lxdm -c USER_SWITCH

LightDM

使用 LightDM 的切换用户功能:

xscreensaver.newLoginCommand: dm-tool switch-to-greeter
注意: 如果你用这个切换到已经登录的用户,你可能需要输入两次密码(一次是为LightDM,一次是为你登录的用户的 XScreenSaver 对话框)。

提示和技巧

在媒体播放时禁用

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 &
注意: 如果 xcompmgr 导致问题,请安装 shantz-xwinwrap-bzrAUR 包,然后运行:
$ 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

参见