Mengambil tangkapan layar (dalam X)


8

Bagaimana saya bisa mengambil tangkapan layar di X.org?

Saya tidak yakin apakah tombol Print Screen akan "berfungsi" dan saya tidak tahu bagaimana cara mengujinya.

Jawaban:


8

Aplikasi Linux yang paling umum digunakan untuk mengambil screenshot disebut scrot

Anda dapat menginstalnya dengan untuk Debian:

sudo apt-get install scrot

Atau untuk Arch:

sudo pacman -S scrot

Tangkapan layar diambil dengan mengetik:

scrot output-file.png

Jika Anda ingin mengikat scrotke print screenkunci maka yang perlu dikendalikan oleh manajer jendela.


1
Scrot lebih cepat dan lebih kecil dari ImageMagick - 1MB dibandingkan dengan 43MB.

5

Saya menemukan jawaban yang bagus untuk pertanyaan ini di sini , perlu diulangi.

Ini dapat dicapai dengan ImageMagick. Instal dengan menjalankan perintah

sudo apt-get install imagemagick

Untuk mengambil semua desktop cukup ketik

import -window root screen.png

Atau Anda bisa melakukannya dengan penundaan 5 detik

sleep 5; import -window root screen.png

Saya bertanya-tanya apakah kita bisa mengikat ini ke kombo kunci; siapa saja?
Alex Chamberlain

@AlexChamberlain: Ini tergantung pada WM yang digunakan.
Jivings

@AlexChamberlain ada jawaban bagaimana melakukannya di sini

-1 Saya membenci ImageMagick dan semua turunan / kerabatnya. Ini adalah tendangan di celana untuk menginstal, dan bahkan lebih buruk untuk memperbaikinya jika sesuatu rusak.
Andrew Larsson

@Jivings Saya kira jika Anda menggunakan keybindings window manager Anda; Saya akan berpikir kebanyakan orang menggunakan xbindkeysmeskipun
Michael Mrozek

0

Saya menggunakan 'xwd'. Sebagai contoh, yang baru saja saya lakukan: xwd | xwdtopnm > dw.ppm Satu-satunya downside yang saya tahu dengan xwd adalah bahwa Anda memerlukan beberapa utilitas lain untuk mengubah outputnya menjadi sesuatu yang dipahami oleh apa pun selain 'xwud'.


0

Ini adalah skrip perl6 yang saya gunakan untuk mengambil jendela area root atau menunda ScreenShots menggunakan impor:

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

Ini adalah binding utama di i3 untuk menjalankan skrip:

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.