2014年9月25日木曜日

UbuntuのXディスプレイをSSHからパワーセーブ解除する

こんなことやりたい人がいるかわかりませんが、XディスプレイをSSHからパワーセーブしたり、パワーセーブを解除したりする方法について。

通常、Xディスプレイを操作するにはxsetを使います。SSHから操作する場合もこれは変わりませんが、そのままのコマンドでは、SSHコンソールがグラフィカルウィンドウではないため、所望のXディスプレイを特定して操作することができません。したがって、-displayウィンドウを使ってXディスプレイを指定してやる必要があります。

-displayオプションに指定すべきサーバー名をうまいこと調べる方法がぐぐってもなかなか見つからないんですが、たぶん一番簡単にできるのは、当該のディスプレイ側で仮想コンソール(Xtermなどのターミナルソフト)を開いておいて、wコマンドを打つ方法です。wはSSHからでもOKです。
ここでFROMにある:0とかがXディスプレイのサーバー名です。

あとxsetコマンドがない場合は下記でパッケージインストールします。
まずは、パワーセーブを解除して復帰させるコマンド。
次に、指定時間でパワーセーブに入らせるコマンド。
タイムアウトを秒単位で指定できます。
すぐにオフにしたい場合は、
それからデフォルトのタイムアウト時間を指定しておきたい場合は、 /etc/X11/xorg.conf.d/の下にconfファイルを作っておく。
ServerLayoutセクションのOptionエントリで、"0"を指定するとその機能が無効、それ以外の数字を指定した場合は、分単位でタイムアウト時間が設定される。
この場合、1分でディスプレイがオフになる。あとMonitorセクションのOptionでDPMSを有効にしておく必要があるようです。

Raspberry PiにつないでいるUSB接続のDisplayLinkモニタをセンサー入力でオンできないかなー、なんてのが動機ですが、そこまでやるかは気分次第。


参考

Display Power Management Signaling (日本語) - ArchWiki
A Primer on Screen Blanking Under Xorg - Shallowsky.com
list existing X display names? - Ask Ubuntu