天天看點

如何捕獲 Linux 圖形化登入界面的截圖

在日常使用中,我們的截圖操作都是在登入系統之後進行的,比如捕獲一個視窗,捕獲指定區域,或者捕獲整個網頁。要給登入界面截圖,那是在登入之前就要做的操作,這可難倒我了。

之前沒有這樣的截圖需求,這次不妨各種手段都拿來嘗試一下。

首先想到的是延時截圖,比如在 kscreenshot 設定 10s 之後截圖,然後在截圖之前完成切換使用者并進入登入界面的操作。結果是殘酷的,截出來的圖是黑屏。

gui 的截圖解決方案不可用,我隻好求助于 cli。scrot 是一個大名鼎鼎的指令行截圖工具,支援延時截圖。我将延時截圖故伎重演,結果依然黑屏。

正常武器已然用盡,敵人卻依舊活蹦亂跳,這讓我情何以堪。

本來應該輕而易舉就搞定的,結果卻因為手殘,腳本中少寫了一些東西而折騰了半天。最終在 root 權限下面用這些指令捕獲了登入界面的截圖。

<code>chvt 8</code>

<code>sleep 5</code>

<code>display=:0.0 xauthority=/var/lib/mdm/:0.xauth xwd -root &gt; /tmp/shot.xwd</code>

<code>convert /tmp/shot.xwd /tmp/ss.png</code>

這些指令最關鍵的地方,是第三行的 <code>xauthority=/var/lib/mdm/</code>。不同的發行版,預設會使用不同的登入管理器,比如 ubuntu 用的是 lightdm,kubuntu 用的是 kdm,linux mint 用的是 mdm,以 gnome 為桌面環境的發行版用的是 gdm。

不同的登入管理器,對應的 xauthority 也就不一樣。是以網上找到的資料中,有的是<code>xauthority=/var/run/lightdm/root/</code>,有的是 <code>xauthority=/var/lib/gdm/</code>。那麼問題來了,我們該如何确定目前的系統用的到底是哪個登入管理器?

當然不能拍腦袋,要有理有據。一開始的時候我習慣性的以為我在用的 dm 是 kdm,結果就掉到坑裡了。

如何捕獲 Linux 圖形化登入界面的截圖

其實很簡單,隻需要把名字中包含 dm 的程序撈出來看一眼,就能确定指令該怎麼寫了。

最後,美圖共賞~

如何捕獲 Linux 圖形化登入界面的截圖

本文來自雲栖社群合作夥伴“linux中國”,原文釋出日期:2015-10-07   

繼續閱讀