Ubuntu 16.04 のログイン画面のスクリーンショットを撮る

二日間もログイン画面の撮影にトライしました。
調べてその方法通りにやっても上手く行かなくて苦労しました。幾つかの方法を試したのですが、全て失敗しました。その中でも使えそうなのをメモしておきます。

ImageMagickが必要なので、無ければインストールしておいて下さい。

sudo apt-get install imagemagick

homeディレクトリに「shot.sh」というファイルを作ります。新規作成してファイル名をshot.shにしてください。作成したファイルをエディタで開いて下記の文を記入して保存します。

chvt 7;
sleep 30s;
DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 xwd -root -out ~/screenshot.xwd;
convert ~/screenshot.xwd ~/screenshot.png;
rm ~/screenshot.xwd
Make it executable

作成したファイルに権限を与えます。
端末を開き「sudo chmod +x shot.sh」。パスワード入力してパーミッションOKです。

Ctlr+Alt+F1を押してコンソールに移動します。ログインして下記のコマンドを打ちます。

sudo ./shot.sh

参考にしたサイトでは自動にGUIに戻るようなことが書かれていましたが、私の環境では自動には戻りませんでした。なので強制的にGUIに入ります。Ctrl+Alt+F7を押してGUIに戻りログアウトしてログイン画面を出しました。

コマンドを打ち込んでから指定時間(このスクリプトでは30秒)経つとスクショ画像がhomeに保存されます。sudo ./shot.shを打ってEnterをを押してからこの画面表示まで、30秒以内に行わなければなりません。失敗すればやり直しです。

screenshot






左モニタ画面の右上のメニューが真っ黒です。ここに表示されるディストリ(デスクトップ環境)のリストが撮りたかったので失敗です。


Screenshot at 2018-10-01 16:41:34












こんな感じなのですが、残念ながらこれはVirtualbox上のLubuntuのログイン画面です。
その他にも.XWDファイルで保存するやり方も試しましたが、XWDからPNGに変換する時(読み込む時)にエラーになってしまうものもありました。このファイルを開くために色々試しましたが、結局開くことはできませんでした。

2018-10-01-110921_766x453_scrot










2018-10-01-114414_394x140_scrot








グリーター画面で良いだろ!みたいなのもありました。

unity-greeter --test-mode

2018-10-02-191501_1440x600_scrot














スクリーンのロック画面で良ければ「gnome-screenshot -d 10」で行けるそうですが、私の場合は真っ黒画面になってしまいます。

よくインストール時のスクショとかログイン画面のスクショとか見ますが、結構難しいんですね。


デスクトップのディスプレイサーバーを確かめる。

タイトルにUbuntuバージョンを付け加えたのは、Xorg限定だからです。Ubuntu 17からのWaylandでは、多くのスクリーンキャプチャツールが使えなかったりと諸々の問題も多いそうです。使っているデスクトップのディスプレイサーバーを確かめるコマンドは「echo $XDG_SESSION_TYPE」です。XorgならX11と表示されます。


2018-10-02-193809_732x114_scrot