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.

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.


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

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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.