i3 WM을 사용하는 Arch Linux에서 화면 영역의 스크린 샷을 어떻게 쉽게 만들 수 있습니까?

약 한 달 전에 Ubuntu 14.04 LTS에서 Arch로 전환했으며이 결정에 매우 만족합니다. 그러나 새 배포판의 일부 기능이 누락되었습니다. , 특히 Shift + printscr 는 Unity에서 캡처 할 화면 영역을 선택할 수 있습니다.

저는 i3 WM을 사용합니다. 그래서 제 질문은 다음과 같습니다. Unity와 유사한 스크린 샷 동작을 구성하여 키보드 단축키 등으로 화면 영역이나 창을 스냅 할 수 있도록하려면 어떻게해야합니까 (창 ID 및 콘솔 항목을 파지 않고)?

답변

ImageMagick의 일부인 import를 사용할 수 있습니다.

영역 캡처

이렇게하면 커서가 십자선으로 변경되고 클릭하고 드래그하여 상자를 만들면 해당 상자가

.

import ss.png 

전체 디스플레이 캡처

root라는 단어를 창 ID로 대체하여 특정 창을 캡처 할 수도 있습니다.

설명

  • import ss.png 뒤의 창을 클릭하여 해당 창의 스크린 샷을 찍을 수도 있습니다.
  • 그러나 ‘ i3 구성에서는 작동하지 않습니다. 최소한의 예 : 구성에 bindsym $mod+shift+s exec import ~/screenshot.png 줄을 추가합니다. ‘ 아무것도하지 않습니다.
  • flameshot에 대한 다른 답변을 참조하세요. 이것이 ‘ 요즘 제가 ‘ 사용하고있는 것입니다.

답변

이 질문을 한 지 오래되어 일부 사용자에게 도움이되는 것 같습니다. xclipimagemagick 패키지가 포함 된 스크린 샷.

먼저 위에서 언급 한 종속성을 설치합니다. 그런 다음 할 수 있습니다. 아래 스크립트로 원하는대로 만들 수 있습니다. 전체 화면 또는 화면 영역의 스크린 샷 만들기를 지원하며 스크린 샷을 클립 보드에 자동으로 복사하여 어디서나 붙여 넣을 수 있습니다 (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를 사용하기위한 참조 단축키입니다. cript :

# 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/" 

답변

Flameshot 은 괜찮은 대안입니다.

bindsym Print exec flameshot full bindsym Shift+Print exec flameshot gui 

-p /path/to/directory 옵션을 사용하여 건너 뛸 수 있습니다. 저장 디렉토리를 선택합니다.

코멘트

  • 좋은 도구 저는 문서를 만들기 위해 그런 도구를 찾고있었습니다. 스크린 샷에 표시를 추가 할 수도 있습니다.

답변

해본 적이 있습니까 scrot 간단한 명령 줄 화면 캡처 유틸리티

ref., : https://faq.i3wm.org/question/202/what-do-you-guys-use-for-printscreen/

댓글

  • scrot -s를 사용하여 특정 지역을 캡처 할 수도 있습니다. 명령을 실행 한 다음 길게 클릭 한 다음 두 번째 지점을 클릭하면 ‘ 현재 디렉토리에 파일 이름으로 날짜가있는 파일이 생성됩니다.

답변

먼저 xclip, imagemagick 및 jq를 설치하세요!

pacman -S imagemagick jq xclip 

I 내 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에 결과를 파이프합니다!

Answer

사용 마임 . 더 적극적으로 개발되었으며 훨씬 더 나은 slop 에 의존합니다.

스크 롯을 사용하지 마세요. 업데이트 창 (예 : htop)에서 사용하면 선택 상자가 손상되고 스크린 샷에 인상이 남습니다 (크기를 조정할 때 상자가 변형 됨).

댓글

  • (1) “슬롭”이란 무엇입니까? (2) 정확히 무엇보다 낫습니까? (3) 이유가 무엇입니까?
  • 1. 창 영역을 선택하는 데 사용되는 작업 선택 [ github.com/naelstrof/slop] 2. ‘ 더 좋습니다. scrot보다 ‘ 선택 상자가 손상되지 않기 때문입니다 (htop보다 scrot을 시도하십시오). 3. idk.

답변

설치했거나 설치해도 괜찮은 경우 매우 간단한 옵션은 xfce4-screenshooter 및 i3 구성은 다음과 같습니다.

bindsym Print exec --no-startup-id xfce4-screenshooter 

주의 : 상당히 가볍지 만 다른 xfce4 프로그램을 사용하지 않는 경우 약간의 종속성이 있습니다.

답변

셔터 는 후 처리 기능 (손으로 그린 빨간색 원!) 및 포괄적 인 구성 옵션을 제공합니다.

shutter --select 

다음과 같이 .config/i3/config에서 키 바인딩을 설정할 수 있습니다.

bindsym Print exec shutter --full bindsym Shift+Print exec shutter --select 

로드하는 데 1 초가 걸리므로 백그라운드에서 자동 시작하는 것이 좋습니다.

exec shutter --min_at_startup 

셔터에 액세스 할 수 있습니다. 트레이 아이콘을 통해 위의 것 외에도 많은 유용한 옵션을 제공합니다.

Com ments

  • 셔터는 현재 Ubuntu 18.04에 완전히 쉽게 설치할 수 없습니다. ‘ (편집 도구는 사용할 수없는 라이브러리에 따라 다름) ; 사용자 지정 PPA가 최신이 아님). 슬프다.

답변

이 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 

Answer

@ddnomad 는 다음과 같은 스크립트의 bash 버전이며 클립 보드에만 저장할 수있는 다른 플래그와 더 명확합니다.

 #! /bin/bash - help_and_exit() { cat <<-EOF Usage: scregcp [-h|-s|-c] [<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 -c - save only to clipboard EOF exit 0 } base_folder="./" savefile=true region=false params="-window root" while test $# -gt 0; do case "$1" in -h|--help*) help_and_exit ;; -r|--region*) params="" shift ;; -c|--clipboard-only*) savefile=false shift ;; *) if [[ $1 =~ ^\- ]] ; then echo "error: unknown flag "$1"" help_and_exit fi base_folder="${1}" shift ;; esac done 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} if [ "$savefile" = false ] ; then rm ${file_path} fi  

그런 다음 config :

 bindsym --release Shift+Print exec "/dir/to/script.sh -r $HOME/Pictures/screenshots/" bindsym --release Control+Shift+Print exec "/dir/to/script.sh -r -c $HOME/Pictures/screenshots/" bindsym --release Print exec "/dir/to/script.sh $HOME/Pictures/screenshots/" bindsym --release Control+Print exec "/dir/to/script.sh -c $HOME/Pictures/screenshots/"  

키 바인딩은 다음과 같습니다.

  • = 스크린 샷 만들기
  • +Control = 클립 보드에만 저장
  • +Shift = 화면의 특정 영역 만 캡처

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다