XScreenSaver - Arch Linux 中文维基

跳至內容

# XScreenSaver

出自 Arch Linux 中文维基
翻譯狀態：

- 本文（或部分內容）譯自 Xscreensaver，最近一次同步於 2022-05-22，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

相關文章

- DPMS
- Xresources
- Session lock
- List of applications#Screen lockers

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 和掛起設置

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

原因："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}。

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

### 從鎖屏畫面切換登錄用戶

警告：當使用 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 &

注意：如果 xcompmgr 或 picom 導致問題，請安裝 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 中無對應配置)。

## 參見

- XScreenSaver 的主頁

分類：​

- X 伺服器
- 使用「模板:風格」標記的頁面或章節

隱藏分類：​

- 使用「模板:準確性」標記的頁面或章節

XScreenSaver
新增話題