XScreenSaver
XScreenSaver は X Window System のスクリーンセーバーとロッカーです。
目次
XScreenSaver のインストール
公式リポジトリの xscreensaver パッケージをインストールしてください。
Arch Linux ロゴを使用するには、AUR の xscreensaver-arch-logoAUR を使ってください。
XScreenSaver の設定
グローバルなオプションは /usr/share/X11/app-defaults/XScreenSaver
で定義します。標準的な設定では、このファイルを編集する必要はありません。ほとんどのオプションはユーザーごとに設定します。xscreensaver-demo を実行することで ~/.xscreensaver
に設定が書き出されます:
$ xscreensaver-demo
XScreenSaver 5.22 から、XScreenSaver のユーザー設定を ~/.Xresources
を使って編集する別の手段が用意されています。サンプルはこちらを見てください。
DPMS の設定
XScreenSaver は X とは独立してディスプレイの省電力機能 (DPMS) を管理します。ディスプレイをスタンバイ状態にしたり電源を切るまでの待機時間を設定するには、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
Xresources
~/.Xresources
を使って多数の設定を変更できます。デフォルトの設定は /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-screensaver と xscreensaver をインストールしてください。gnome-screensaver
は有効化しておきます。これで全てのスクリーンセーバーを選択できるようになり、誰かが画面をロックしたときでも、他のユーザーは"ユーザー切り替え"を行なってコンピューターにアクセスできるようになります。
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
画面のロック
xscreensaver
が実行しているときにすぐに画面をロックするには、次のコマンドを実行します:
$ xscreensaver-command --lock
サスペンド/スリープ/ハイバネート時に自動ロック
一番良いのは AUR から xss-lockAUR をインストールして、X セッションの自動起動スクリプトから以下のコマンドを実行することです:
xss-lock -- xscreensaver-command -lock &
もしくは AUR から xuserrun-gitAUR をインストールして、以下のファイルを作成し:
/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
systemctl enable xscreensaver
でサービスを有効にしてください。
XScreenSaver のフェイドアウト時間は 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 を無効にするネイティブのサポートはありません。AUR に kodi-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 のロック解除画面は X resources を使うことでテーマを設定することができます (参照: XScreenSaver resources)。
ロック画面からユーザーを切り替える
デフォルトでは、xscreensaver のロック画面の "New Login" ボタンは /usr/bin/gdmflexiserver
を呼び出してユーザー切り替えができます。GDM や KDM を使っている場合はこれで問題ありません。LightDM や LXDM などの他のディスプレイマネージャもこの機能をサポートしています。
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
参照
- PanicLock -- Lock the screen and close any selected programs in background.
- Homepage for XScreenSaver