스크린샷(X 내)

스크린샷(X 내)

X.org에서 스크린샷을 찍는 방법은 무엇입니까?

"화면 인쇄" 버튼이 "제대로 작동"하는지 잘 모르겠고 테스트 방법도 모르겠습니다.

답변1

스크린샷을 찍는 데 가장 일반적으로 사용되는 Linux 애플리케이션은 다음과 같습니다.scrot

Debian의 경우 다음 명령을 사용하여 설치할 수 있습니다.

sudo apt-get install scrot

또는 아치의 경우:

sudo pacman -S scrot

다음을 입력하여 스크린샷을 찍습니다.

scrot output-file.png

scrot해당 키에 바인딩하려면 print screen창 관리자에서 제어해야 합니다.

답변2

이 질문에 대한 좋은 답을 찾았습니다여기, 반복됩니다.

이는 ImageMagick을 통해 달성할 수 있습니다. 명령을 실행하여 설치

sudo apt-get install imagemagick

모든 데스크탑을 얻으려면 다음을 입력하십시오.

import -window root screen.png

아니면 5초 동안 지연할 수도 있습니다.

sleep 5; import -window root screen.png

답변3

나는 "xwd"를 사용합니다. 예를 들어, 방금 한 가지를 만들었습니다. xwd | xwdtopnm > dw.ppm xwd에 대해 제가 아는 유일한 단점은 출력을 "xwud"가 아닌 다른 것으로 변환할 수 있는 다른 유틸리티가 필요하다는 것입니다.

답변4

이것은 내가 얻는 데 사용하는 perl6 스크립트입니다.루트 영역 창또는지연가져온 스크린샷 사용:

#!/usr/bin/env perl6
use v6;

sub message(Str $file) {
  run <xmessage -nearmouse -timeout 3>, "Screenshot saved in $file";
}

sub print_window(Str $file) {
  qx{xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"} ~~ /(0x\d*).*$/;
  run <import -window>, $0, $file;
  message($file);
}

sub MAIN( Str $option where $option ∈ <root area window delay> ) {
  my $today = DateTime.now( formatter => { 
        sprintf "%04d_%02d_%02d_%02d:%02d:%02d", 
                .year, .month, .day, .hour, .minute, .second 
       } );
  my $file  = "$*HOME/Dades/Imatges/ScreenShots/$today.png";

  given $option {
    when 'root'   { run <import -window root>, $file; message($file) }
    when 'area'   { run "import", $file             ; message($file) }
    when 'window' { print_window($file)                              }
    when 'delay'  { sleep 5; print_window($file)                     }
    default       { say 'Something went wrong'      ; exit           }
  }
}

다음은 스크립트 실행을 위한 i3의 주요 바인딩입니다.

bindsym $mod+Print exec Print_Screen root 
bindsym --release $mod+Shift+Print exec Print_Screen area
bindsym $mod+Mod1+Print exec Print_Screen delay
bindsym $mod+Control+Print exec Print_Screen window

관련 정보