다른 Xorg 디스플레이의 스크린샷을 찍는 방법은 무엇입니까?

다른 Xorg 디스플레이의 스크린샷을 찍는 방법은 무엇입니까?

다음과 같이 현재 X 세션에서 다른 X 세션을 시작했습니다.

xinit xterm -- :128

X 세션은 display 에서 시작되어 실행되며 모든 것이 정상입니다 :128.xterm

그러나 화면 :0(기본값)으로 다시 전환하고 screencap새 디스플레이를 사용해 보았습니다.

$ xwd -root -screen -out screencap.xwd -display :128

결과 파일은 커다란 검정색 직사각형입니다. 나는 또한 imagemagick을 사용해 보았지만 import아무 소용이 없었습니다. 무엇이 잘못되었나요?

답변1

좋다scrot이를 수행할 수 있으며 테스트되었습니다.

xinit thunar -- :128
DISPLAY=:128 scrot

나에게 올바른 스크린샷을 제공했습니다.

(그러나 불행히도 scrot은 한동안 유지되지 않았습니다)

답변2

tty가 포커스를 잃으면 x는 CPU 시간과 RAM을 절약하기 위해 빈 화면을 표시하고 다시 그리기를 중지합니다. 이 기능을 비활성화할 수 있는 방법은 없는 것 같습니다.

Xvfb, "X Virtual Framebuffer"는 설계 및 목적의 일부로 이러한 동작을 포함하지 않는 특수 구현입니다.

새로운 "일반" xsession을 시작하는 대신 가상 프레임 버퍼에서 클라이언트 소프트웨어를 실행합니다.

xvfb-run <client software> --server-args="-screen 0 [width]x[height]x[bitdepth]"

그리고 다음과 같이 스크린샷을 찍으세요.

xwd -root -d :99 # (the default for xvfb)

디스플레이가 단말기에 묶여 있지 않기 때문에 사용자가 디스플레이를 보기 어려울 수 있다는 점 참고하세요.

관련 정보