ttyからのXのスクリーンショット


15

Xvfbを使用して、アプリケーションを起動し、スクリーンショットを撮ることができます。

私が疑問に思っているのは、既存の(休止状態の)Xセッションからキャプチャする方法です。

ttyまたはover sshから発声します。

私が理解していることから、ウィンドウはマッピングされておらず、リソースを保持するために存在しません。仮想ウィンドウマネージャーで既存のウィンドウ、ワークスペースなどをマップしてスナップすることができるツールはありますか?

または、おそらく、またはを使用libx11してスナップを使用および作成できますXShmCreateImageか?


2
であるxwd -root | convert - /tmp/image.jpgあなたが探しているもの?
ジッピー

3
@jippie:おそらく。問題は、ウィンドウがマップされていないため、xwdがダンプするものが何もないことです。その結果、イメージが黒くなります。(すなわちtty1からそのコマンドを試してくださいxwd -display :0 -root | convert xwd:- /tmp/0.png
Runium

'unmapped'の意味がわからない
ジッピー

4
@jippie:それらはメモリに常駐しません。私が理解しているように:ワークスペース上にいるとき-アクティブです-ピクセルはメモリにマッピングされ、GPUが画面上で処理およびレンダリングします。ワークスペースを切り替えるか終了すると(つまり、Ctrl-Alt-F1によって)、これらのマップはマップ解除され(リソースを解放するため)、「表示バッファー」に何もないため、黒いイメージが表示されます。
ルニウム

私はあなたが何を意味するのかわかります、説明のためのthnx。ただし、この場合の答えはわかりません。
ジッピー

回答:


7

ctrl-alt-F(x)なしで、コマンドラインから手動でX ttyを「オン」にすることができます。

Xがtty 7にあり、テキスト端末にログインする場合

chvt 7 ; DISPLAY=0.0 xwd -root > screendump.xwd ; chvt 1

ただし、xhost + localhostはxsession内で発行する必要があります。そうしないと、xwdはxサーバーに接続できません。

これにより、sshセッションから実行できます。

PS:理論的には、MTDを使用すると、ビデオカードメモリから画面キャプチャを実行できるはずです。したがって、最初にXセッションを「起動」せずに。


良い投稿をありがとう。調べています。私の主な問題の1つは、私が古いWindowsのユーザーであり、すべてがどのように編まれているかを把握するのにいくつかの問題があることです。Xサーバー、Xウィンドウマネージャー、アクセスおよび作成。しかし、そこに着く。
ルニウム

@Sukminderこれを設定するのが難しいですか、これに関する詳細な指示が必要ですか?
ジョンシウ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.