ディスプレイマネジャ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でエクスポートします。
参考サイト:
今回、kdmに変えたのは、今まで使っていたgdmによるログインが不安定だった(アクティブディレクトリ参加ユーザが消える)からです。
Ubuntuデフォルトのlightdmでは、アクティブディレクトリに参加するユーザを入力できる項目(その他など)がログイン画面にはありませんでした。そこで、gdmやkdmを利用していました。
しかし、最近、lightdm.confに設定を追記することでlightdmでもログイン画面に「その他」の項目が表示されることを知りました。手順は次のとおりです。
$ sudo vi /etc/lightdm/lightdm.conf
#最終行に追記
greeter-show-manual-login=true
上書き保存(:wq)後、ログアウトしてみると、ログイン画面に「その他」が表示されます。以上。
Ubuntu14.04では、/etc/lightdm内にはlightdm.confはいなかった。
synapticで、lightdm-gtk-greeterをインストールすると、/etc/lightdm内にlightdm-gtk-greeter-ubuntu.confが現れた。
最終行に、greeter-show-manual-login=trueを追記し、wqで上書き保存後、rebootしたら、ログイン画面に「その他」が表示されるようになりました。
しかし、残念なのことに「その他」は表示されても、AD-DCユーザではログインできませんでした。(Ubuntu14.04)
それどころか、いつの間にか、キーボードレイアウトが英語モードになっていて、「半角/全角」キーを押すと「’アポストロフィー」が表示されてしまいます。
「dpkg-reconfigure keyboard-configuration」で日本語キーボードになりますが、再起動すると英語モードに戻っています。
「/etc/default/keyboard」をいろいろ書き換えても全く効果ありませんでした。
ということで、Ubutu14.04を諦め、12.04に戻りました。