텍스트 터미널 (예 : tty1)에서 X11 기반 GUI의 스크린 샷을 만드는 방법은 무엇입니까? 표시됩니다. 앱을 열고

DISPLAY=:0 import -window root "$HOME/Pictures/screenshot.png"( importImageMagick 제품군의 일부)를 사용해 보았지만 검은 화면 만 표시됩니다.

앱을 열고 다른 언어로 스크린 샷을 찍고 언어를 변경하려면 lightdm을 다시 시작해야 하므로이 작업을 수행하고 싶습니다. 따라서 tty에서 실행하면 스크립트가 계속 실행됩니다.



답변

기존 답변 외에도 터미널에서 스크린 샷을 ASCII로 표시하려면 다음을 수행하십시오.

xwd -root -display :0 | convert - jpg:- | jp2a - --colors

(요구 x11-apps에 대해 xwd, imagemagick에 대해 convert하고 jp2a).


답변

xwd거의 모든 Xorg 설치에서 사용할 수있는를 사용하는 솔루션은 다음과 같습니다 .

 xwd -root -out screenshot.xwd

screenshot.xwd파일은 김프로 열 수 있습니다 :

자세한 내용은 http://www.x.org/wiki/UserDocumentation/GettingStarted/를 참조 하십시오 .


답변

여기 나를 위해 일한 것이 있습니다.

chvt 7
DISPLAY=:0 import -window root "$HOME/Pictures/screenshot.png
chvt 1


답변

셔터를 사용해보십시오

DISPLAY=:0 shutter -f -e -n -o "$HOME/Pictures/screenshot.png"

루트 창이 사용 중이 아니므로 가져 오기가 작동하지 않습니다. 컴 포지 팅은 “바이 패스”합니다 (각 윈도우는 자체 버퍼로 렌더링 된 다음 이전 방식 대신 디스플레이에 멀티플렉싱되어 “루트”윈도우에서 모두 렌더링 됨).

또한 스크린 샷을 찍기 전에 VTY가 활성화되어 있는지 확인해야합니다. 예를 들어

#!/bin/bash  
X :1 &
export DISPLAY=:1
sleep 10 # give time for X to start  
gedit &
sleep 10 # give time for app to do something  
chvt 8  # ensure the X display is active  
shutter -f -e -n -o "$HOME/Pictures/screenshot.png" # screenshot  
killall xorg # terminate X


답변

동일한 컴퓨터에 앉아서 X 서버가 실행중인 것과 다른 가상 터미널에서 작업하는 것은 작동하지 않습니다.

http://www.karlrunge.com/x11vnc/faq.html#faq-linuxvc에 설명되어 있습니다. 인용문:

Q-108 : Linux 가상 터미널 (VT)을 사용하여 사용자 세션간에 ‘빠른 사용자 전환’을 구현합니다 (예 : Betty는 Ctrl-Alt-F7, Bobby는 Ctrl-Alt-F8, Sid는 Ctrl-Alt -F1 : 키 입력을 사용하여 세션 간을 전환합니다.) x11vnc에 연결하는 VNC 뷰어의보기가 완전히 검은 색이거나 업데이트되지 않거나 X 세션 x11vnc가 연결되어 있지 않으면 픽셀이 엉망이되는 방법 활성 VT?

이것은 응용 프로그램 (이 경우 X 서버 프로세스)이 활성 VT에 있지 않은 경우 (가상 콘솔의 경우 VC라고도 함) 어떻게 “잘 작동”해야하는지와 관련이있는 것 같습니다. 즉, 키보드에서 읽지 않아야합니다 VT가 활성화되어 있지 않으면 마우스 또는 비디오 디스플레이를 관리합니다. XGetImage () 호출이 궁극적으로 비디오 하드웨어 자체에서 프레임 버퍼 데이터를 검색해야한다고 가정하면 X 세션이 VT를 적극적으로 제어하지 않으면 x11vnc의 폴링이 작동하지 않는 것이 좋습니다.

이 문제를 해결하는 쉬운 방법이없는 것 같습니다. 이 경우 xwd (1)조차도 작동하지 않습니다 (시도하십시오). XFree86 / Xorg X 서버와 같이 더 낮은 레벨에서 무언가를 수행해야합니다. 또한 섀도 프레임 버퍼 (비디오 프레임 버퍼의 사본이 주 메모리에 보관 됨)를 사용해도 문제가 해결되지 않습니다 (마지막으로 확인한 2007).

아무도 워크 스테이션에 앉아 있지 않고 VT를 X 세션과 연결된 것으로 원격으로 전환하려는 경우 (x11vnc가 올바르게 폴링 할 수 있음) chvt (1) 명령을 사용할 수 있습니다 (예 : “chvt 7”). VT # 7.


답변