Chụp ảnh màn hình (trong X)


8

Làm cách nào để chụp ảnh màn hình trong X.org?

Tôi không chắc chắn nếu nút In màn hình sẽ "chỉ hoạt động" và tôi không biết tôi sẽ kiểm tra nó như thế nào.

Câu trả lời:


8

Ứng dụng Linux được sử dụng phổ biến nhất để chụp ảnh màn hình được gọi là scrot

Bạn có thể cài đặt nó với Debian:

sudo apt-get install scrot

Hoặc cho Arch:

sudo pacman -S scrot

Một ảnh chụp màn hình được chụp bằng cách gõ:

scrot output-file.png

Nếu bạn muốn liên kết scrotvới print screenkhóa thì điều đó sẽ cần được kiểm soát bởi trình quản lý cửa sổ của bạn.


1
Scrot nhanh hơn và nhỏ hơn ImageMagick - 1MB so với 43MB.

5

Tôi tìm thấy một câu trả lời tuyệt vời cho câu hỏi này ở đây , nó đáng để lặp lại.

Điều này có thể đạt được với ImageMagick. Cài đặt bằng cách chạy lệnh

sudo apt-get install imagemagick

Để lấy tất cả máy tính để bàn, chỉ cần gõ

import -window root screen.png

Hoặc bạn có thể làm điều đó với độ trễ 5 giây

sleep 5; import -window root screen.png

Tôi tự hỏi liệu chúng ta có thể liên kết điều này với một tổ hợp chính hay không; bất kỳ ai?
Alex Chamberlain

@AlexChamberlain: Điều này phụ thuộc vào WM đang được sử dụng.
Jivings

@AlexChamberlain có câu trả lời là làm thế nào để làm điều đó ở đây

-1 Tôi coi thường ImageMagick và tất cả các dẫn xuất / họ hàng của nó. Đó là một cú đá trong quần để cài đặt, và thậm chí còn tệ hơn để sửa nếu có gì đó bị hỏng.
Andrew Larsson

@Jivings Tôi đoán nếu bạn đang sử dụng keybindings của người quản lý cửa sổ của bạn; Tôi sẽ nghĩ rằng hầu hết mọi người sử dụng xbindkeysmặc dù
Michael Mrozek

0

Tôi sử dụng 'xwd'. Ví dụ, một điều tôi vừa làm: xwd | xwdtopnm > dw.ppm Nhược điểm duy nhất tôi biết với xwd là bạn cần một số tiện ích khác để chuyển đổi đầu ra của nó thành thứ gì đó được hiểu bởi bất kỳ thứ gì khác ngoài 'xwud'.


0

Đây là tập lệnh perl6 mà tôi sử dụng để lấy cửa sổ vùng gốc hoặc trì hoãn ScreenShots bằng cách nhập:

#!/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           }
  }
}

Đây là các ràng buộc chính trong i3 để chạy tập lệnh:

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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.