ディスプレイマネジャkdmのログイン画面を自分自身でキャプチャする方法です。(OSはUbuntu12.04.3TLS)

いくつかのサイトの情報を参考にうまくいったのでメモっておきます。

【前提条件】

imagemagickがインストールされている(必須ではない)

【手順】

  1. imagemagickのインストール(必須ではない)
  2. shot.shの作成
  3. shot.shの実行(実際にキャプチャ)
  4. xwdをpngに変換

1.imagemagickのインストール(必須ではない)

xwdによりキャプチャされた画像をpngに変換するためにconvertコマンドを実行します。そのために、imagemagickが必要になります。(12.04.3では、すでにインストールされていました。)

しかし、GimpがすでにインストールされていればxwdファイルをGimpでも開くことができます。pngでエクスポートすれば、xwdからpngへ変換が完了します。

imagemagickが必要な方は、

$ sudo apt-get install imagemagick

でインストールできます。(端末で実行)

2.shot.shの作成

(1)A:0-XXXXXXの取得

端末で、

$ ps -ef | grep xauth

root      4542  1100  3 10:00 tty7     00:02:38 /usr/bin/X :0 vt7 -br -nolisten tcp -auth /var/run/xauth/A:0-NeRLXa

ここで、「NeRLXa」の部分をコピーしておきます。

この部分は、再起動すると変化しているようです。もし、作業途中で再起動をした場合は再確認をしておきましょう。もちろん、(2)のshot.shも作成しなおしておきます。

(2)shot.shの作成

端末で実行します。

$ echo ‘sleep 40; DISPLAY=:0 XAUTHORITY=/var/run/xauth/A:0-NeRLXa xwd -root’ > /tmp/shot.sh

改行されているように見えても1行で入力します。

「sleep 40;」の「40」は、このスクリプトの実行まで40秒間あるという意味です。任意です。

「NeRLXa」の部分は、(1)でコピーしたものを貼り付けます。

3.shot.shの実行

(1)テキストモード(仮想コンソール)への移行

キーボード上の[Ctrl]+[Alt]+[F1]キーを押してテキストモードへ移行します。

ログイン画面になっているときは、ログインします。

(2)shot.shの実行

$ sudo bash /tmp/shot.sh > /tmp/shot.xwd

今から、40秒後にxwdが実行されスクリーンショットがキャプチャされます。

(3)GUI(X Windows System)モードに戻る

キーボード上の[Ctrl]+[Alt]+[F7]キーを押して元の画面に戻ります。

(4)ログアウトする

元の画面に戻ったら、通常の手順でログアウトします。

すると、通常の(KDMの)ログイン画面が表示されるのでスクリーンショットがキャプチャされるまで待ちましょう。

だいたい40秒くらいすると、HDDのアクセスランプが(激しく?)点滅するのでキャプチャされたことが分かります。

4.xwdをpngに変換

キャプチャが終わったら、通常通りにログインします。

端末で実行します。

$ convert /tmp/shot.xwd /tmp/shot.png

または、Gimpを起動して、shot.xwdを読み込み、pngでエクスポートします。

図1:KDMのログイン画面のキャプチャ

図1:KDMのログイン画面のキャプチャ

参考サイト: