ディスプレイマネジャkdmのログイン画面を自分自身でキャプチャする方法です。(OSはUbuntu12.04.3TLS)
いくつかのサイトの情報を参考にうまくいったのでメモっておきます。
【前提条件】
imagemagickがインストールされている(必須ではない)
【手順】
- imagemagickのインストール(必須ではない)
- shot.shの作成
- shot.shの実行(実際にキャプチャ)
- 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でエクスポートします。
参考サイト:
- 仮想化を使わずにログイン画面を取得する方法《Ubuntu 12.04対応》 <=lightdm用
- How to create a screen shot of the GDM login screen on Ubuntu Hardy <=gdm用
- How to setup x11vnc to access with graphical login screen?
コメント