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.
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:
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 scrot
an den print screen
Schlüssel binden möchten, muss dies von Ihrem Fenstermanager gesteuert werden.
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
xbindkeys
obwohl
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.
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