在上一篇博客「重返 Linux 世界」中,我說 Linux Mint 17.2 的登錄界面比之前的要好看不少。作為佐證,我貼了一張 Linux Mint 登錄界面的截圖。
在日常使用中,我們的截圖操作都是在登錄系統之後進行的,比如捕獲一個窗口,捕獲指定區域,或者捕獲整個網頁。要給登錄界面截圖,那是在登錄之前就要做的操作,這可難倒我了。
之前沒有這樣的截圖需求,這次不妨各種手段都拿來嘗試一下。
首先想到的是延時截圖,比如在 kscreenshot 設置 10s 之後截圖,然後在截圖之前完成切換用戶并進入登錄界面的操作。結果是殘酷的,截出來的圖是黑屏。
GUI 的截圖解決方案不可用,我隻好求助于 CLI。scrot 是一個大名鼎鼎的命令行截圖工具,支持延時截圖。我将延時截圖故伎重演,結果依然黑屏。
常規武器已然用盡,敵人卻依舊活蹦亂跳,這讓我情何以堪。
一番 Google 之後,發現一些線索,這個問題老早就有人提問了。
我參考的是 Parto 的回答,然後他的回答又是參考的别人家的博客。
本來應該輕而易舉就搞定的,結果卻因為手殘,腳本中少寫了一些東西而折騰了半天。最終在 root 權限下面用這些命令捕獲了登錄界面的截圖。
chvt 8
sleep 5
DISPLAY=:0.0 XAUTHORITY=/var/lib/mdm/:0.Xauth xwd -root > /tmp/shot.xwd
convert /tmp/shot.xwd /tmp/ss.png
這些命令最關鍵的地方,是第三行的 XAUTHORITY=/var/lib/mdm/
。不同的發行版,默認會使用不同的登錄管理器,比如 Ubuntu 用的是 lightdm,Kubuntu 用的是 kdm,Linux Mint 用的是 mdm,以 Gnome 為桌面環境的發行版用的是 gdm。
不同的登錄管理器,對應的 XAUTHORITY 也就不一樣。所以網上找到的資料中,有的是XAUTHORITY=/var/run/lightdm/root/
,有的是XAUTHORITY=/var/lib/gdm/
。那麼問題來了,我們該如何确定當前的系統用的到底是哪個登錄管理器?
當然不能拍腦袋,要有理有據。一開始的時候我習慣性的以為我在用的 dm 是 kdm,結果就掉到坑裡了。
其實很簡單,隻需要把名字中包含 dm 的進程撈出來看一眼,就能确定命令該怎麼寫了。
最後,美圖共賞~
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!