XScreenSaver (简体中文) - ArchWiki

Jump to content

# XScreenSaver (简体中文)

From ArchWiki
翻译状态：本文是 Xscreensaver 的翻译。上次翻译日期：2021-08-27。如果英文版本有所更改，则您可以帮助同步翻译。

相关文章

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

This article or section is out of date.

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

## 参见

- XScreenSaver 的主页

Category:

- X server (简体中文)

Hidden categories:

- Pages or sections flagged with Template:Style
- Pages or sections flagged with Template:Out of date