Tirando uma captura de tela (no X)

8

Como posso tirar uma captura de tela no X.org?

Não tenho certeza se o botão Imprimir tela "funcionará" e não sei como iria testá-lo.

Andrew Fogg
fonte

Respostas:

8

O aplicativo Linux mais usado para tirar capturas de tela é chamado scrot

Você pode instalá-lo no Debian:

sudo apt-get install scrot

Ou para Arch:

sudo pacman -S scrot

Uma captura de tela é feita digitando:

scrot output-file.png

Se você deseja vincular scrotà print screenchave, isso precisará ser controlado pelo seu gerenciador de janelas.

Jivings
fonte
1
O Scrot é mais rápido e menor que o ImageMagick - 1 MB em comparação com 43 MB.
5

Encontrei uma ótima resposta para essa pergunta aqui , vale a pena repetir.

Isso pode ser alcançado com o ImageMagick. Instale executando o comando

sudo apt-get install imagemagick

Para pegar toda a área de trabalho, digite

import -window root screen.png

Ou você pode fazê-lo com um atraso de 5 segundos

sleep 5; import -window root screen.png
Andrew Fogg
fonte
Gostaria de saber se poderíamos vincular isso a uma combinação de teclas; alguém?
Alex Chamberlain
@AlexChamberlain: Isso depende do WM que está sendo usado.
Jivings
@AlexChamberlain há uma resposta a respeito de como fazer isso aqui
-1 Eu desprezo o ImageMagick e todos os seus derivados / parentes. É um chute nas calças para instalar, e é ainda pior para corrigir se algo quebrar.
Andrew Larsson
@Jivings Eu acho que se você estiver usando as teclas de atalho do seu gerenciador de janelas; Eu acho que a maioria das pessoas usa xbindkeysembora
Michael Mrozek
0

Eu uso 'xwd'. Por exemplo, um que acabei de fazer: xwd | xwdtopnm > dw.ppm A única desvantagem que conheço com o xwd é que você precisa de algum outro utilitário para converter sua saída em algo entendido por algo que não seja 'xwud'.

Mark Wood
fonte
0

Este é o script perl6 que eu uso para abrir a janela da área raiz ou atrasar os ScreenShots usando a importação:

#!/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 são as ligações de teclas no i3 para executar o 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
fonte