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.
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:
Ứ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 scrot
với print screen
khó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.
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
xbindkeys
mặc dù
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'.
Đâ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