Prendre une capture d'écran (dans X)

8

Comment puis-je faire une capture d'écran dans X.org?

Je ne sais pas si le bouton Impr écran "fonctionnera tout simplement" et je ne sais pas comment procéder pour le tester.

Andrew Fogg
la source

Réponses:

8

L'application Linux la plus utilisée pour prendre des captures d'écran s'appelle scrot

Vous pouvez l'installer avec pour Debian:

sudo apt-get install scrot

Ou pour Arch:

sudo pacman -S scrot

Une capture d'écran est prise en tapant:

scrot output-file.png

Si vous souhaitez vous lier scrotà la print screenclé, cela devra être contrôlé par votre gestionnaire de fenêtres.

Jivings
la source
1
Scrot est plus rapide et plus petit que ImageMagick - 1 Mo par rapport à 43 Mo.
5

J'ai trouvé une excellente réponse à cette question ici , elle mérite d'être répétée.

Cela peut être réalisé avec ImageMagick. Installer en exécutant la commande

sudo apt-get install imagemagick

Pour saisir tout le bureau, tapez simplement

import -window root screen.png

Ou vous pouvez le faire avec un retard de 5 secondes

sleep 5; import -window root screen.png
Andrew Fogg
la source
Je me demande si nous pourrions lier cela à un combo clé; n'importe qui?
Alex Chamberlain
@AlexChamberlain: Cela dépend de la WM utilisée.
Jivings
@AlexChamberlain il y a une réponse sur la façon de le faire ici
-1 Je méprise ImageMagick et tous ses dérivés / parents. C'est un coup de pied dans le pantalon à installer, et c'est encore pire à réparer si quelque chose se casse.
Andrew Larsson
@Jivings Je suppose que si vous utilisez les raccourcis clavier de votre gestionnaire de fenêtres; Je pense que la plupart des gens utilisent xbindkeyscependant
Michael Mrozek
0

J'utilise 'xwd'. Par exemple, je viens de le faire: xwd | xwdtopnm > dw.ppm Le seul inconvénient que je connaisse avec xwd est que vous avez besoin d'un autre utilitaire pour convertir sa sortie en quelque chose compris par autre chose que 'xwud'.

Mark Wood
la source
0

Voici le script perl6 que j'utilise pour prendre la fenêtre de la zone racine ou retarder les captures d' écran en utilisant l'importation:

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

Voici les principales liaisons dans i3 pour exécuter le 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
la source