i3 WM을 사용하여 Arch Linux에서 화면 영역을 쉽게 캡처하는 방법은 무엇입니까?

i3 WM을 사용하여 Arch Linux에서 화면 영역을 쉽게 캡처하는 방법은 무엇입니까?

저는 약 한 달 전에 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으로 연결하면 클립보드에 저장됩니다!

관련 정보