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.

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.


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

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'.


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.