답변:
import
ImageMagick의 일부를 사용할 수 있습니다 .
지역 포착
커서가 십자형으로 바뀌고 클릭하고 드래그하여 상자를 만들면 해당 상자가로 저장됩니다 ss.png
.
import ss.png
전체 디스플레이 캡처
import -window root ss.png
단어 root
를 창 ID로 바꾸어 특정 창을 캡처 할 수도 있습니다.
import ss.png
해당 창의 스크린 샷을 생성하기 위해 창을 클릭 해도됩니다.
이 질문을 한 지 오랜 시간이 지났으며 일부 사용자에게 도움이되는 것처럼 보입니다. 그래서 스크린 샷 xclip
과 imagemagick
패키지 를 만들기위한 스크립트를 제공 합니다.
우선, 위에서 언급 한 종속성을 설치하십시오. 그런 다음 아래 스크립트를 사용하여 원하는 모든 것을 할 수 있습니다. 전체 화면 또는 화면 영역의 스크린 샷 생성을 지원하며 스크린 샷을 클립 보드에 자동으로 복사하여 어디에서나 붙여 넣을 수 있습니다 (브라우저 또는 텔레 그램 메신저).
해킹을하기가 쉽지 않은 경우에는 특정 창 캡처 및 복사 부분 토글 지원이 추가됩니다.
#!/usr/bin/env bash
# screenshots stuff
# TODO: docs
function help_and_exit {
if [ -n "${1}" ]; then
echo "${1}"
fi
cat <<-EOF
Usage: scregcp [-h|-s] [<screenshots_base_folder>]
Take screenshot of a whole screen or a specified region,
save it to a specified folder (current folder is default)
and copy it to a clipboard.
-h - print help and exit
-s - take a screenshot of a screen region
EOF
if [ -n "${1}" ]; then
exit 1
fi
exit 0
}
if [ "${1}" == '-h' ]; then
help_and_exit
elif [ "${1:0:1}" == '-' ]; then
if [ "${1}" != '-s' ]; then
help_and_exit "error: unknown option ${1}"
fi
base_folder="${2}"
else
base_folder="${1}"
params="-window root"
fi
file_path=${base_folder}$( date '+%Y-%m-%d_%H-%M-%S' )_screenshot.png
import ${params} ${file_path}
xclip -selection clipboard -target image/png -i < ${file_path}
i3wm
이 스크립트를 사용하기 위한 참조 바로 가기 는 다음과 같습니다.
# take a screenshot of a screen region and copy it to a clipboard
bindsym --release Shift+Print exec "scregcp -s /home/ddnomad/pictures/screenshots/"
# take a screenshot of a whole window and copy it to a clipboard
bindsym --release Print exec "scregcp /home/ddnomad/pictures/screenshots/"
scrot a, 간단한 명령 행 화면 캡처 유틸리티 를 사용해 보셨습니까?
참조 : https://faq.i3wm.org/question/202/what-do-you-guys-use-for-printscreen/
먼저 xclip, imagemagick 및 jq를 설치하십시오!
pacman -S imagemagick jq xclip
내 i3 설정 에이 줄이 있습니다.
bindsym $mod+Print exec \
import -window $( \
i3-msg -t get_tree | \
jq 'recurse(.nodes[]) | select(.focused).window' \
) png:- | \
xclip -selection clipboard -t image/png
mod (Window / Alt) + Printscreen을 누르면 클립 보드에 활성 창의 스크린 샷이 표시됩니다.
i3-msg -t get-tree는 i3에서 json으로 모든 창을 가져온 다음 jq를 사용하여 초점을 맞춘 창의 창 ID를 얻습니다. 우리는 그것을 imagemagicks import 명령에 전달하고 결과를 클립 보드에 넣을 xclip으로 파이프합니다!
maim을 사용하십시오 . 그것은 더 적극적으로 개발되고 더 나은 경사에 달려 있습니다.
scrot을 사용하지 마십시오. 선택 창은 업데이트 창 위에 사용될 때 스크린 샷에 손상을 입히고 (크기를 조정할 때 상자가 변형 됨) 인상을 남깁니다 (예 : 정지).
나는 후 처리 기능 (손으로 그린 빨간 원!)과 포괄적 인 구성 옵션으로 셔터 를 좋아 합니다.
당신은 실행하여 화면 영역을 잡을 수 있습니다
shutter --select
다음 .config/i3/config
과 같이 키 바인딩을 설정할 수 있습니다 .
bindsym Print exec shutter --full
bindsym Shift+Print exec shutter --select
로드하는 데 1 초가 걸리므로 백그라운드에서 자동 시작하는 것이 좋습니다.
exec shutter --min_at_startup
트레이 아이콘을 통해 셔터에 액세스 할 수 있으며, 위의 것 외에도 많은 유용한 옵션이 제공됩니다.
이 perl6 스크립트는 가져 오기를 사용하여 루트, 영역, 창 또는 지연 ScreenShots를 가져와 $ file 및 클립 보드에 저장합니다.
#!/usr/bin/env perl6
use v6;
sub print_window(Str $file) {
qx{xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"} ~~ /(0x\S*)/;
run <import -window>, $0, $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 }
when 'area' { run 'import', $file }
when 'window' { print_window($file) }
when 'delay' { sleep 10; print_window($file) }
}
run <xclip -selection clipboard -target image/png -i>, $file;
run <xmessage -nearmouse -timeout 3>, "Screenshot in clipboard, and saved in $today.png";
}
다음은 스크립트를 실행하기위한 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