Einen Screenshot machen (innerhalb von X)

8

Wie kann ich einen Screenshot in X.org machen?

Ich bin mir nicht sicher, ob die Schaltfläche "Bildschirm drucken" "nur funktioniert", und ich weiß nicht, wie ich sie testen soll.

Andrew Fogg
quelle

Antworten:

8

Die am häufigsten verwendete Linux-Anwendung zum Erstellen von Screenshots heißt scrot

Sie können es mit für Debian installieren:

sudo apt-get install scrot

Oder für Arch:

sudo pacman -S scrot

Ein Screenshot wird aufgenommen, indem Sie Folgendes eingeben:

scrot output-file.png

Wenn Sie scrotan den print screenSchlüssel binden möchten, muss dies von Ihrem Fenstermanager gesteuert werden.

Jivings
quelle
1
Scrot ist schneller und kleiner als ImageMagick - 1 MB im Vergleich zu 43 MB.
5

Ich habe hier eine gute Antwort auf diese Frage gefunden , es lohnt sich zu wiederholen.

Dies kann mit ImageMagick erreicht werden. Installieren Sie, indem Sie den Befehl ausführen

sudo apt-get install imagemagick

Um alle Desktops zu erfassen, geben Sie einfach ein

import -window root screen.png

Oder Sie können es mit einer Verzögerung von 5 Sekunden tun

sleep 5; import -window root screen.png
Andrew Fogg
quelle
Ich frage mich, ob wir dies an eine Tastenkombination binden könnten. jemand?
Alex Chamberlain
@AlexChamberlain: Dies hängt von der verwendeten WM ab.
Jivings
@AlexChamberlain gibt es eine Antwort, wie man das hier macht
-1 Ich verachte ImageMagick und alle seine Derivate / Verwandten. Es ist ein Kick in die Hose zu installieren, und es ist noch schlimmer zu reparieren, wenn etwas kaputt geht.
Andrew Larsson
@Jivings Ich denke, wenn Sie die Tastenkombinationen Ihres Fenstermanagers verwenden; Ich würde denken , die meisten Leute benutzen , xbindkeysobwohl
Michael Mrozek
0

Ich benutze 'xwd'. Zum Beispiel eines, das ich gerade gemacht habe: xwd | xwdtopnm > dw.ppm Der einzige Nachteil, den ich bei xwd kenne, ist, dass Sie ein anderes Dienstprogramm benötigen, um seine Ausgabe in etwas zu konvertieren, das von etwas anderem als 'xwud' verstanden wird.

Mark Wood
quelle
0

Dies ist das Perl6-Skript, mit dem ich das Root-Fenster aufnehme oder ScreenShots mithilfe des Imports verzögere :

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

Dies sind die Schlüsselbindungen in i3, um das Skript auszuführen:

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
quelle