歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 捕獲Linux圖形化登陸界面的截圖

捕獲Linux圖形化登陸界面的截圖

日期:2017/2/27 15:46:18   编辑:Linux教程

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

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

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

GUI 的截圖解決方案不可用,我只好求助於 CLI。scrot 是一個大名鼎鼎的命令行截圖工具,支持延時截圖。我將延時截圖故伎重演,結果依然黑屏。

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

一番 Google 之後,發現一些線索,這個問題老早就有人提問了[1]。

我參考的是 Parto 的回答,然後他的回答又是參考的別人家的博客[2]。

本來應該輕而易舉就搞定的,結果卻因為手殘,腳本中少寫了一些東西而折騰了半天。最終在 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 的進程撈出來看一眼,就能確定命令該怎麼寫了。

最後,美圖共賞~

原文:http://blog.jamespan.me/2015/10/03/capture-linux-login-screen/
Copyright © Linux教程網 All Rights Reserved