Tomar una captura de pantalla (dentro de X)

8

¿Cómo puedo tomar una captura de pantalla en X.org?

No estoy seguro de si el botón Imprimir pantalla "funcionará" y no sé cómo haría para probarlo.

Andrew Fogg
fuente

Respuestas:

8

La aplicación de Linux más utilizada para tomar capturas de pantalla se llama scrot

Puede instalarlo para Debian:

sudo apt-get install scrot

O para el arco:

sudo pacman -S scrot

Se toma una captura de pantalla escribiendo:

scrot output-file.png

Si desea vincular scrota la print screenclave, entonces su administrador de ventanas deberá controlarla.

Jivings
fuente
1
Scrot es más rápido y más pequeño que ImageMagick: 1 MB en comparación con 43 MB.
5

Encontré una gran respuesta a esta pregunta aquí , vale la pena repetir.

Esto se puede lograr con ImageMagick. Instalar ejecutando el comando

sudo apt-get install imagemagick

Para agarrar todo el escritorio simplemente escriba

import -window root screen.png

O puedes hacerlo con un retraso de 5 segundos

sleep 5; import -window root screen.png
Andrew Fogg
fuente
Me pregunto si podríamos vincular esto a una combinación de teclas; ¿nadie?
Alex Chamberlain
@AlexChamberlain: Esto depende del WM que se esté utilizando.
Jivings
@AlexChamberlain hay una respuesta sobre cómo hacer eso aquí
-1 Desprecio ImageMagick y todos sus derivados / parientes. Instalar es una patada en el pantalón, y es aún peor arreglarlo si algo se rompe.
Andrew Larsson
@Jivings Supongo que si estás usando las combinaciones de teclas de tu administrador de ventanas; Yo creo que la mayoría de la gente usa xbindkeysembargo
Michael Mrozek
0

Yo uso 'xwd'. Por ejemplo, uno que acabo de hacer: xwd | xwdtopnm > dw.ppm el único inconveniente que conozco con xwd es que necesita alguna otra utilidad para convertir su salida a algo entendido por algo que no sea 'xwud'.

Mark Wood
fuente
0

Este es el script perl6 que uso para tomar la ventana del área raíz o retrasar las capturas de pantalla usando la importación:

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

Estos son los enlaces de teclas en i3 para ejecutar el script:

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
Mimosinnet
fuente