저는 약 한 달 전에 Ubuntu 14.04 LTS에서 Arch로 전환했고 그 결정에 매우 만족합니다. 하지만 새 릴리스의 일부 기능, 특히 캡처할 화면 영역을 선택할 수 있는 Unity의 Shift+ 기능이 빠졌습니다.printscr
i3 WM을 사용하고 있습니다. 그래서 제 질문은: 키보드 단축키 등을 사용하여 화면 영역이나 창을 캡처할 수 있도록(창 ID 및 콘솔 콘텐츠를 자세히 조사할 필요 없이) Unity와 같은 스크린샷 동작을 어떻게 구성합니까?
답변1
ImageMagick의 일부를 사용할 수 있습니다 import
.
지역을 포착하다
그러면 커서가 십자선으로 바뀌고, 클릭하고 드래그하여 상자를 만들면 상자가 로 저장됩니다 ss.png
.
import ss.png
전체 디스플레이 캡처
import -window root ss.png
root
특정 창을 캡처하기 위해 단어를 창 ID로 바꿀 수도 있습니다 .
답변2
오랜만에 이 질문을 하게 됐는데, 일부 유저들에게는 도움이 될 것 같습니다. 따라서 xclip
및 패키지를 사용하여 imagemagick
스크린샷을 만들기 위한 자체 스크립트를 제공했습니다 .
먼저 위의 종속성을 설치합니다. 그런 다음 아래 스크립트를 사용하여 원하는 작업을 수행할 수 있습니다. 전체 화면 또는 화면 영역의 스크린샷 생성을 지원하며, 자동으로 스크린샷을 클립보드에 복사해 어디에든 붙여넣을 수 있습니다(ei 브라우저 또는 텔레그램 메신저).
그다지 어렵지 않은 일부 트릭은 특정 창 캡처 및 복사된 섹션 전환에 대한 지원을 추가합니다.
#!/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/"
답변3
화재 사격좋은 선택입니다.
bindsym Print exec flameshot full
bindsym Shift+Print exec flameshot gui
옵션을 사용하여 -p /path/to/directory
저장 디렉터리 선택을 건너뛸 수 있습니다.
여기에서 구성을 편집 ~/.config/i3/config
하고 구성 다시 로드를 사용할 수 있습니다 i3-msg reload
.
답변4
먼저 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으로 연결하면 클립보드에 저장됩니다!