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 中無對應配置)。