# XScreenSaver (简体中文)

From ArchWiki
Jump to navigation Jump to search
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-06-10。如果英文版本有所更改，则您可以帮助同步翻译。

相关文章

- DPMS
- Xresources
- Session lock
- List of applications (简体中文)#锁屏

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

This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.

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}。

在 Xfce， LXDE 和 LXQt 环境中, 如果 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。

默认情况下，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

## 参见

- XScreenSaver 的主页

Category:

- X server (简体中文)

Hidden category:

- Pages or sections flagged with Template:Style