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。
主题[编辑 | 编辑源代码]
从 6.0 版本开始,XScreenSaver 预装了一些主题,选择方式:
- xscreensaver-settings
- 修改
~/.xscreensaver
配置文件中的dialogTheme
选项 (dialogTheme: themename
- 使用 X resources:
xscreensaver-auth.dialogTheme: themename
).
用 X resources 可以自定义主题,下面的例子修改了颜色和字体。如果使用的是非默认主题,请将 default
修改为所选主题的小写名字,使用问号 (?
) 会影响所有主题:
~/.Xresources
! Font for regular texts. ! Font names are case-insensitive. ! You can use a comma-separated list of fonts to set a fallback font. xscreensaver-auth.default.Dialog.bodyFont: times new roman 12, dejavu serif 12 ! Window background color. You can use color names. xscreensaver-auth.default.Dialog.background: black ! Main text color. You can also use HEX color codes. xscreensaver-auth.default.Dialog.foreground: #ffffff
在 /usr/share/X11/app-defaults/XScreenSaver
中可以查看 X resources. 修改后请记得重新加载所有资源文件。
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
KDE Plasma 中的屏保由 ksmserver 控制,这会和 XScreenSaver 产生冲突,要禁用它,需要在 KDE 中启动服务并修改 plasma-ksmserver.service
为:
~/.config/systemd/user/plasma-ksmserver.service.d/override.conf
[Service] ExecStart= ExecStart=/usr/bin/ksmserver --no-lockscreen
重新登录, XScreenSaver 就会正常工作,更多信息请参考 xscreensaver(1) § INSTALLING XSCREENSAVER ON KDE。
锁定挂起[编辑 | 编辑源代码]
XScreenSaver 提供了一个名为 xscreensaver-systemd 的工具,可以处理来自 systemd 的 D-Bus 信号 PrepareForSleep
, 并在挂起和休眠的时候自动锁定屏幕。这个程序会和 xscreensaver 一起启动,无需额外设置。详情请参考 xscreensaver-systemd(6)。
这个工具处理不了 loginctl lock-session
。要处理这种情况,请参阅 Power management#xss-lock. 请使用 --ignore-sleep
选项,因为 xscreensaver-systemd 已经处理了挂起和休眠事件。
$ xss-lock --ignore-sleep -- xscreensaver-command -lock
请将 XScreenSaver 的淡出时间设置为 0。
从锁屏画面切换登录用户[编辑 | 编辑源代码]
By default, XScreenSaver's New Login button in the lock screen will call /usr/bin/gdmflexiserver
to switch users. Display managers other than GDM that support user switching require a different command.
默认情况下,XScreenSaver 锁定屏幕中的 New Login 按钮会启动 /usr/bin/gdmflexiserver
进行用户切换。除了 GDM 外,其他支持用户切换的显示管理器需要使用不同的命令。
~/.Xresources
,而将参数留空将使 New Login 按钮消失。由于 ~/.xscreensensaver
中的修改被 xscreensaver-demo 丢弃,故本节中使用了 ~/.Xresources。
LXDM[编辑 | 编辑源代码]
使用 LXDM 的切换用户功能:
xscreensaver-auth.default.*.newLoginCommand: lxdm -c USER_SWITCH
LightDM[编辑 | 编辑源代码]
使用 LightDM 的切换用户功能:
xscreensaver-auth.default.*.newLoginCommand: dm-tool switch-to-greeter
SDDM[编辑 | 编辑源代码]
SDDM 不支持用户切换 [1]。可以尝试用 using dbus-send 调用 SwitchToGreeter
方法,目前可能无法正常工作。
提示和技巧[编辑 | 编辑源代码]
在媒体播放时禁用[编辑 | 编辑源代码]
Starting from version 5.45, the xscreensaver-systemd utility implements the D-Bus ScreenSaver interface. It is started automatically with xscreensaver, so most applications should properly disable the screensaver without additional configuration. However, some applications do not support D-Bus or use another interfaces.
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
。
mplayer[编辑 | 编辑源代码]
在 ~/.mplayer/config
中添加以下内容:
heartbeat-cmd="xscreensaver-command -deactivate >&- 2>&- &"
Kodi[编辑 | 编辑源代码]
Kodi 不支持禁用 XScreenSaver (它使用自己的屏幕保护程序)。为了实现禁用,请安装 kodi-prevent-xscreensaverAUR 包,或者尝试使用从 https://sourceforge.net/projects/osscreensavermanager/ 下载的 Kodi 扩展。
浏览 HTML5 video/Flash[编辑 | 编辑源代码]
Firefox supports the D-Bus ScreenSaver interface and should disable the screensaver during HTML5 video playback.
Chromium also supports it, but uses the GNOME Session interface when available, so XScreenSaver will not be disabled in some desktop environments such as GNOME and MATE.
If you are experiencing problems, you can try a script named lightsonplus with support for Firefox's Flash plugin, Chromium's Flash plugin, HTML5 fullscreen video in Firefox and Chromium, MPlayer, and VLC.
动态壁纸[编辑 | 编辑源代码]
可以在后台运行 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 &
禁用欢迎屏幕[编辑 | 编辑源代码]
When the program is started a screen appears which shows the program version and the author name. The screen is displayed every time the program starts which may be annoying. To disable this behavior run the program with the option --no-splash:
$ xscreensaver --no-splash &
问题解决[编辑 | 编辑源代码]
要显示详细的调试信息,启动 xscreensaver 时带上 --verbose
命令行选项,修改 ~/.xscreensaver
配置文件,添加 verbose: True
选项,则每次启动都打印详细的调试信息。
用 --log
选项可以将日志记录到文件,此选项隐含了 verbose 配置。(~/.xscreensaver
或 X resources 中无对应配置)。