如何在 X.org 中截取螢幕截圖?
我不確定“列印螢幕”按鈕是否“正常工作”,我不知道如何測試它。
答案1
最常用的用於截取螢幕截圖的 Linux 應用程式稱為scrot
對於 Debian,您可以使用以下命令安裝它:
sudo apt-get install scrot
或對於拱門:
sudo pacman -S scrot
透過鍵入以下內容來截取螢幕截圖:
scrot output-file.png
如果您想綁定scrot
到該print screen
鍵,則需要由視窗管理器控制。
答案2
我找到了這個問題的一個很好的答案這裡,值得重複。
這可以透過 ImageMagick 來實現。透過運行命令安裝
sudo apt-get install imagemagick
若要取得所有桌面,只需鍵入
import -window root screen.png
或者你可以延遲5秒來完成
sleep 5; import -window root screen.png
答案3
我使用“xwd”。例如,我剛剛做了一個: xwd | xwdtopnm > dw.ppm
我知道 xwd 的唯一缺點是您需要一些其他實用程式將其輸出轉換為除“xwud”之外的任何內容都可以理解的內容。
答案4
這是我用來取得的perl6腳本根區域窗口或者延遲使用匯入的螢幕截圖:
#!/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 }
}
}
這些是 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