分類: Linux

使用 xwd 擷取 Linux 登入畫面

一般在 Ubuntu Linux 中若要擷取螢幕的畫面,可以直接使用 Gimp 這個繪圖軟體的擷取螢幕功能即可,但是若是要抓取登入畫面就沒辦法使用一般的繪圖軟體來抓取,這時候可以使用 xwd 透過指令來抓取畫面,然後再使用 imagemagick 的 convert 指令轉換圖檔。

這裡我們就要介紹如何使用這兩個指令工具,在命令列中擷取 Linux 的登入畫面。


首先安裝 imagemagick:
sudo apt-get install imagemagick

接著建立一個簡單的 script 檔,他的功用就是抓取螢幕的畫面

echo 'chvt 7; sleep 5; DISPLAY=:0 XAUTHORITY=/run/lightdm/root/:0 xwd -root; chvt 1' > /tmp/shot.sh

這裡的 XAUTHORITY 所指定的檔案有時後會因為不同的環境而不同,可能要自己注意。而 chvt 7 與 chvt 1 則是切換 virtual terminal 的指令,上面這個指令會先切換至 virtual terminal 7,也就是視窗環境的登入畫面,等待 5 秒後擷取畫面,再切換回 virtual terminal 1。

接下來就是要開始抓去畫面了,這時候你必須把桌面登出,讓畫面呈現準備登入的狀態(因為就是要抓取登入畫面啊)。

接著,按下 Ctrl + Alt + F1,這時候就會切換到文字模式(console),在文字模式下輸入帳號密碼登入。

如果不想在同一台電腦使用文字模式,也可以使用 SSH 從別台電腦遠端連線進來。

接著開始擷取畫面,執行:

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

這樣登入畫面就會被擷取出來,並儲存在 shot.xwd 這個檔案中,這時候就可以離開文字模式了,登出之後,再按 Ctrl + Alt + F7 就可以回到 XWindow 的視窗環境。

接著要把 xwd 圖檔轉換為一般常用的 JPG 檔:

convert -quality 50 /tmp/shot.xwd /tmp/shot.jpg

也可以轉換為 PNG 檔:

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

這樣就大公告成了!

G. T. Wang

個人使用 Linux 經驗長達十餘年,樂於分享各種自由軟體技術與實作文章。

Recent Posts

光陽 KYMCO GP 125 機車接電發動、更換電瓶記錄

本篇記錄我的光陽 KYMCO ...

2 年 ago

[開箱] YubiKey 5C NFC 實體金鑰

本篇是 YubiKey 5C ...

3 年 ago

[DIY] 自製竹火把

本篇記錄我拿竹子加上過期的苦茶...

3 年 ago