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 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-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
画面のロック
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 を無効にするネイティブのサポートはありません。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's unlock screen can be themed with X resources (see: 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