¿Cómo puedo tomar una captura de pantalla en X.org?
No estoy seguro de si el botón Imprimir pantalla "simplemente funcionará" y no sé cómo haría para probarlo.
Respuesta1
La aplicación de Linux más utilizada para tomar capturas de pantalla se llamascrot
Puedes instalarlo con para Debian:
sudo apt-get install scrot
O para Arco:
sudo pacman -S scrot
Se toma una captura de pantalla escribiendo:
scrot output-file.png
Si desea vincularse scrot
a la print screen
clave, deberá controlarlo su administrador de ventanas.
Respuesta2
Encontré una gran respuesta a esta pregunta.aquí, vale la pena repetirlo.
Esto se puede lograr con ImageMagick. Instalar ejecutando el comando
sudo apt-get install imagemagick
Para tomar 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
Respuesta3
Yo uso 'xwd'. Por ejemplo, uno que acabo de hacer: xwd | xwdtopnm > dw.ppm
el único inconveniente que conozco de xwd es que necesita alguna otra utilidad para convertir su salida en algo que no sea entendido por 'xwud'.
Respuesta4
Este es el script perl6 que uso para tomarventana del área raízodemoraCapturas de pantalla usando 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 }
}
}
Estas son las combinaciones 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