XScreenSaver

出自 Arch Linux 中文维基

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 和掛起設置[編輯 | 編輯原始碼]

本文或本章節的語言、語法或風格需要改進。參考:Help:Style

原因:"overrides DPMS" 並不清晰 - xscreensaver 做了相當於 xset s 0 0 的工作,並使用自己的定時器來處理各種動畫,但將 DPMS timeout 設置為 Display Power Management 中的值。(在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

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 的工具,可以處理來自 systemdD-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。

從鎖屏畫面切換登錄用戶[編輯 | 編輯原始碼]

警告: 當使用 GDM 或 LightDM 這樣的顯示管理器切換用戶時,XScreenSaver 不會鎖定原始會話,只需將 TTY 切換到相關會話即可,無需密碼即可訪問。如果你使用的是 LightDM,請安裝light-locker,然後與 XScreenSaver 一起運行。另外,也可以使用其他的屏幕鎖定程序——參見 List of applications/Security#Screen lockers

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 外,其他支持用戶切換的 顯示管理器 需要使用不同的命令。

提示:xscreensensaver.newLoginCommand: 添加到 ~/.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
注意: 如果你用這個切換到已經登錄的用戶,你可能需要輸入兩次密碼(一次是為LightDM,一次是為你登錄的用戶的 XScreenSaver 對話框)。

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.

本文或本章節的事實準確性存在爭議。

原因: The chromium exception was added without reference and disputed. Is it reproducible?(在 Talk:XScreenSaver#loginctl, chromium, resources 中討論)


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 &
注意: 如果 xcompmgrpicom 導致問題,請安裝 shantz-xwinwrap-bzrAUR 包,然後運行:
$ 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 中無對應配置)。

參見[編輯 | 編輯原始碼]