X.orgでスクリーンショットを撮るにはどうすればよいですか?
Print Screenボタンが「正しく機能する」かどうかはわかりません。また、どのようにテストするのかわかりません。
スクリーンショットを撮るために最も一般的に使用されるLinuxアプリケーションはscrot
と呼ばれます
Debian用にインストールできます:
Sudo apt-get install scrot
またはArchの場合:
Sudo pacman -S scrot
スクリーンショットは、次のように入力して取得します。
scrot output-file.png
scrot
をprint screen
キーにバインドする場合は、ウィンドウマネージャーで制御する必要があります。
私はこの質問に対する素晴らしい答えを見つけました ここ 、繰り返す価値があります。
これはImageMagickで実現できます。コマンドを実行してインストールします
Sudo apt-get install imagemagick
すべてのデスクトップを取得するには、次のように入力します
import -window root screen.png
または、5秒の遅延でそれを行うことができます
sleep 5; import -window root screen.png
'xwd'を使用します。たとえば、私が今やったこと:xwd | xwdtopnm > dw.ppm
xwdで私が知っている唯一の欠点は、その出力を「xwud」以外で理解できるものに変換するために他のユーティリティが必要なことです。
これは、私が使用するPerl6スクリプトですルートエリアウィンドウまたはdelayインポートを使用したスクリーンショット:
#!/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