XScreenSaver

提供: ArchWiki
2015年2月16日 (月) 19:03時点におけるKusakata (トーク | 投稿記録)による版 (ページの作成:「Category:X サーバー en:XScreenSaver es:Xscreensaver it:Xscreensaver zh-CN:Xscreensaver {{Related articles start}} {{Related|Display Power Manageme...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

関連記事

XScreenSaver は X Window System のスクリーンセーバーとロッカーです。

XScreenSaver のインストール

公式リポジトリxscreensaver パッケージをインストールしてください。

Arch Linux ロゴを使用するには、AURxscreensaver-arch-logoAUR を使ってください。

XScreenSaver の設定

グローバルなオプションは /usr/share/X11/app-defaults/XScreenSaver で定義します。標準的な設定では、このファイルを編集する必要はありません。ほとんどのオプションはユーザーごとに設定します。xscreensaver-demo を実行することで ~/.xscreensaver に設定が書き出されます:

$ xscreensaver-demo

XScreenSaver 5.22 から、XScreenSaver のユーザー設定を ~/.Xresources を使って編集する別の手段が用意されています。サンプルはこちらを見てください。

DPMS の設定

XScreenSaver manages display energy saving (DPMS) independently of X itself and overrides it. To configure the timings for standby, display poweroff and such, use xscreensaver-demo or edit the configuration file manually, e.g. ~/.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

Xresources

Control many settings by using ~/.Xresources. Defaults are located in /usr/share/X11/app-defaults/XScreenSaver.

Below are all the valid Xresources for version 5.22.

from: driver/XScreenSaver.ad
xscreensaver.mode: random
xscreensaver.timeout: 0:10:00
xscreensaver.cycle: 0:10:00
xscreensaver.lockTimeout: 0:00:00
xscreensaver.passwdTimeout: 0:00:30
xscreensaver.dpmsEnabled: False
xscreensaver.dpmsQuickoffEnabled: False
xscreensaver.dpmsStandby: 2:00:00
xscreensaver.dpmsSuspend: 2:00:00
xscreensaver.dpmsOff: 4:00:00
xscreensaver.grabDesktopImages: True
xscreensaver.grabVideoFrames: False
xscreensaver.chooseRandomImages: True

! This can be a local directory name, or the URL of an RSS or Atom feed.
xscreensaver.imageDirectory: /usr/share/wallpapers/
xscreensaver.nice: 10
xscreensaver.memoryLimit: 0
xscreensaver.lock: False
xscreensaver.verbose: False
xscreensaver.timestamp: True
xscreensaver.fade: True
xscreensaver.unfade: False
xscreensaver.fadeSeconds: 0:00:03
xscreensaver.fadeTicks: 20
xscreensaver.splash: True
xscreensaver.splashDuration: 0:00:05
xscreensaver.visualID: default
xscreensaver.captureStderr: True
xscreensaver.ignoreUninstalledPrograms: False

xscreensaver.textMode: file
xscreensaver.textLiteral: XScreenSaver
xscreensaver.textFile:
xscreensaver.textProgram: fortune
xscreensaver.textURL: http://en.wikipedia.org/w/index.php?title=Special:NewPages&feed=rss

xscreensaver.overlayTextForeground: #FFFF00
xscreensaver.overlayTextBackground: #000000
xscreensaver.overlayStderr: True
xscreensaver.font: *-medium-r-*-140-*-m-*

! The default is to use these extensions if available (as noted.)
xscreensaver.sgiSaverExtension: True
xscreensaver.xidleExtension: True
xscreensaver.procInterrupts: True

! Turning this on makes pointerHysteresis not work.
xscreensaver.xinputExtensionDev: False

! Set this to True if you are experiencing longstanding XFree86 bug #421
! (xscreensaver not covering the whole screen)
xscreensaver.GetViewPortIsFullOfLies: False

! This is what the "Demo" button on the splash screen runs (/bin/sh syntax.)
xscreensaver.demoCommand: xscreensaver-demo

! This is what the "Prefs" button on the splash screen runs (/bin/sh syntax.)
xscreensaver.prefsCommand: xscreensaver-demo -prefs

! This is the URL loaded by the "Help" button on the splash screen,
! and by the "Documentation" menu item in xscreensaver-demo.
xscreensaver.helpURL: http://www.jwz.org/xscreensaver/man.html

! loadURL       -- how the "Help" buttons load the helpURL (/bin/sh syntax.)
xscreensaver.loadURL: firefox '%s' || mozilla '%s' || netscape '%s'

! manualCommand -- how the "Documentation" buttons display man pages.
xscreensaver.manualCommand: xterm -sb -fg black -bg gray75 -T '%s manual' -e /bin/sh -c 'man "%s" ; read foo'

! The format used for printing the date and time in the password dialog box
! To show the time only:  %I:%M %p
! For 24 hour time: %H:%M
xscreensaver.dateFormat: %d-%b-%y (%a); %I:%M %p

! This command is executed by the "New Login" button on the lock dialog.
! (That button does not appear on the dialog if this program does not exist.)
! For Gnome: probably "gdmflexiserver -ls".  KDE, probably "kdmctl reserve".
! Or maybe yet another wheel-reinvention, "lxdm -c USER_SWITCH".
xscreensaver.newLoginCommand: kdmctl reserve
xscreensaver.installColormap: True
xscreensaver.pointerPollTime: 0:00:05
xscreensaver.pointerHysteresis: 10
xscreensaver.initialDelay: 0:00:00
xscreensaver.windowCreationTimeout: 0:00:30
xscreensaver.bourneShell: /bin/sh

! Resources for the password and splash-screen dialog boxes of
! the "xscreensaver" daemon.
xscreensaver.Dialog.headingFont: *-helvetica-bold-r-*-*-*-180-*-*-*-iso8859-1
xscreensaver.Dialog.bodyFont: *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1
xscreensaver.Dialog.labelFont: *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1
xscreensaver.Dialog.unameFont: *-helvetica-bold-r-*-*-*-120-*-*-*-iso8859-1
xscreensaver.Dialog.buttonFont: *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1
xscreensaver.Dialog.dateFont: *-helvetica-medium-r-*-*-*-80-*-*-*-iso8859-1

! Helvetica asterisks look terrible.
xscreensaver.passwd.passwdFont: *-courier-medium-r-*-*-*-140-*-*-*-iso8859-1


xscreensaver.Dialog.foreground: #000000
xscreensaver.Dialog.background: #E6E6E6
xscreensaver.Dialog.Button.foreground: #000000
xscreensaver.Dialog.Button.background: #F5F5F5

!*Dialog.Button.pointBackground: #EAEAEA
!*Dialog.Button.clickBackground: #C3C3C3
xscreensaver.Dialog.text.foreground: #000000
xscreensaver.Dialog.text.background: #FFFFFF
xscreensaver.passwd.thermometer.foreground: #4464AC
xscreensaver.passwd.thermometer.background: #FFFFFF
xscreensaver.Dialog.topShadowColor: #FFFFFF
xscreensaver.Dialog.bottomShadowColor: #CECECE
xscreensaver.Dialog.logo.width: 210
xscreensaver.Dialog.logo.height: 210
xscreensaver.Dialog.internalBorderWidth: 24
xscreensaver.Dialog.borderWidth: 1
xscreensaver.Dialog.shadowThickness: 2

xscreensaver.passwd.heading.label: XScreenSaver %s
xscreensaver.passwd.body.label: This screen is locked.
xscreensaver.passwd.unlock.label: OK
xscreensaver.passwd.login.label: New Login
xscreensaver.passwd.user.label: Username:
xscreensaver.passwd.thermometer.width: 8
xscreensaver.passwd.asterisks: True
xscreensaver.passwd.uname: True

xscreensaver.splash.heading.label: XScreenSaver %s
xscreensaver.splash.body.label: Copyright © 1991-2013 by
xscreensaver.splash.body2.label: Jamie Zawinski <jwz@jwz.org>
xscreensaver.splash.demo.label: Settings
xscreensaver.splash.help.label: Help

XScreenSaver の起動

シングルユーザー環境

xscreensaver パッケージをインストールしただけでは自動では実行されません。xscreensaver プログラムを起動する必要があり、基本的に以下のように ~/.xinitrc に記述することによってデスクトップ環境が実行します:

/usr/bin/xscreensaver -no-splash &

もしくは:

( ( sleep 10 && /usr/bin/xscreensaver -no-splash -display :0.0 ) & )

アンパサンド &xscreensaver プログラムをバックグラウンドで実行するために必須です。

XScreenSaver は Xfce では /etc/xdg/xfce4/xinitrc で自動的に実行されます。かならず実行されるようにするには xfce4-session ではなく startxfce4 を使うようにしてください:

exec startxfce4

マルチユーザー環境

ディスプレイマネージャで複数のユーザーを扱う場合 (例: SLiM, GDM, KDM)、デスクトップマネージャのネイティブのスクリーンセーバーインターフェイスを使って XScreenSaver を起動するのが一番よいでしょう。ユーザー切り替えを完全に管理することができます。例えば、GNOME を使っている場合、gnome-screensaverxscreensaver をインストールしてください。gnome-screensaver は有効化しておきます。これで全てのスクリーンセーバーを選択できるようになり、誰かが画面をロックしたときでも、他のユーザーは"ユーザー切り替え"を行なってコンピューターにアクセスできるようになります。

ノート: Some XScreenSaver native functionality will be lost such as the ability to capture a screen, use photos in a pre-defined path, and/or display custom texts when running the DM's native screensaver with a subset of XScreenSaver's offerings (for example, Flipscreen3D, photopile, etc.)

Another option to retain multi-user support, without having to install a second screensaver, is to modify either ~/.xscreensaver for per-user settings, or /usr/share/X11/app-defaults/XScreenSaver for global settings, and add the following line.

newLoginCommand: /usr/bin/gdmflexiserver
ノート: The command given is for GDM; if using a different login manager, replace it with the preferred login manager's command.

画面のロック

To immediately trigger xscreensaver, if it is running, and lock the screen, execute the following command:

$ xscreensaver-command --lock

サスペンド/スリープ/ハイバネート時に自動ロック

The best option is to install xss-lockAUR from AUR, and run this command from the X session autostart script:

xss-lock -- xscreensaver-command -lock &

Another option is to install xuserrun-gitAUR from AUR, and create the following file:

/etc/systemd/system/xscreensaver.service
[Unit]
Description=Lock X session using xscreensaver
Before=sleep.target

[Service]
Type=oneshot
ExecStart=/usr/bin/xuserrun /usr/bin/xscreensaver-command -lock

[Install]
WantedBy=sleep.target

and enable it with systemctl enable xscreensaver.

You may want to set XScreenSaver's fade out time to 0.

Other service configuration without xuserrun and for one user from this thread, replace the previous [Service] section by this one :

/etc/systemd/system/xscreensaver.service
[Service]
User=yourusername
Type=oneshot
Environment=DISPLAY=:0
ExecStart=/usr/bin/xscreensaver-command -lock

メディアアプリケーションで XScreenSaver を無効化

MPlayer

以下を ~/.mplayer/config に追加してください:

heartbeat-cmd="xscreensaver-command -deactivate >&- 2>&- &"

Kodi

Kodi には XScreenSaver を無効にするネイティブのサポートはありません。AURkodi-prevent-xscreensaverAUR という名前の XScreenSaver を無効化するアプリが存在します。

Adobe Flash/MPlayer/VLC

flash には XScreenSaver を無効にするネイティブの方法はありませんが、lightsOn という名前のスクリプトが存在します。Firefox の Flash プラグイン、Chromium の Flash プラグイン、MPlayer、VLC をサポートしています。

もしくは DPMS を完全に無効化するという方法もあります。

XScreenSaver をアニメーションする壁紙として使う

One can run xscreensaver in the background, just like a wallpaper. First, kill any process that is controlling the background (the root window). Locate the desired XScreenSaver executable (they are usually on /usr/lib/xscreensaver/) and run it with the -root flag, like this

$ /usr/lib/xscreensaver/glslideshow -root &

xcompmgr で XScreenSaver を壁紙として使う

xcompmgr may cause problems. One recommended solution is to use xwinwrap to run it in order to use it as wallpaper. Find it as shantz-xwinwrap-bzrAUR in the AUR.

Run it with the following command:

$ xwinwrap -b -fs -sp -fs -nf -ov  -- /usr/lib/xscreensaver/glslideshow -root -window-id WID &

テーマ

XScreenSaver's unlock screen can be themed with X resources (see: XScreenSaver resources).

ロック画面からユーザーを切り替える

警告: GDM や LightDM などのディスプレイマネージャを使ってユーザーを切り替える場合、XScreenSaver は元のセッションをロックしません。TTY を問題のセッションに切り替えるだけでパスワードを入力せずにアクセスできます。LightDM を使っている場合、対応策として、light-locker をインストールして XscreenSaver と一緒に実行してください。もしくは、別の画面ロックプログラムを使ってください。アプリケーション一覧/セキュリティ#スクリーンロックを参照。

デフォルトでは、xscreensaver のロック画面の "New Login" ボタンは /usr/bin/gdmflexiserver を呼び出してユーザー切り替えができます。GDM や KDM を使っている場合はこれで問題ありません。LightDM や LXDM などの他のディスプレイマネージャもこの機能をサポートしています。

ノート: Modifications manually made to ~/.xscreensaver are discarded by xscreensaver-demo, therefore instead use ~/.Xresources. For example, for LXDM, add in ~/.Xresources:
xscreensaver.newLoginCommand: lxdm -c USER_SWITCH

LXDM

LXDM の切り替えモードを使うには以下を ~/.xscreensaver に貼り付けてください:

newLoginCommand: lxdm -c USER_SWITCH

LightDM

LightDM の切り替えモードを使うには以下を ~/.xscreensaver に貼り付けてください:

newLoginCommand: dm-tool switch-to-greeter

KDM

KDM の切り替えモードを使うには以下を ~/.xscreensaver または /usr/share/X11/app-defaults/XScreenSaver に貼り付けてください:

newLoginCommand: kdmctl reserve

デバッグ

You can configure xscreensaver to write to a log file by creating the logfile # touch /var/log/xscreensaver.log and then specifying its X resource logFile.

~/.Xresources
xscreensaver.logFile:/var/log/xscreensaver.log

To log verbose debugging information to the logFile as well start xscreensaver with the -verbose command line option, or add this to ~/.Xresources

~/.Xresources
xscreensaver.logFile:/var/log/xscreensaver.log
xscreensaver.verbose:true

参照