XScreenSaver (简体中文)

From ArchWiki
Jump to navigation Jump to search
翻译状态:本文是 Xscreensaver翻译。上次翻译日期:2020-05-03。如果英文版本有所更改,则您可以帮助同步翻译。

XScreenSaver 是 X 窗口系统的屏保和锁屏工具。

安装

安装 xscreensaver 包。

如果安装 xscreensaver-arch-logoAUR 包,可以获得有 Arch Linux 标志的外观。

配置

大多数选项都可以通过运行 xscreensaver-demo 来逐个用户配置的。xscreensaver-demo 会将所选的配置写入 ~/.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 和屏幕挂起。

Note: 如果 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。

从锁屏画面切换登录用户

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

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

Tip: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
Note: 如果你用这个切换到已经登录的用户,你可能需要输入两次密码(一次是为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-xscreensensaverAUR[断开的链接:package not found] 包,或者尝试使用从 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 &
Note: 如果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

参见