Screenshot von X von tty

15

Mit Xvfb kann ich eine Anwendung starten und einen Screenshot machen.

Ich frage mich, wie aus einer vorhandenen (ruhenden) X-Sitzung erfasst werden soll.

Sprich von tty oder über ssh.

Soweit ich weiß, sind Fenster nicht zugeordnet und existieren nicht, um Ressourcen zu schonen. Gibt es ein Tool, das vorhandene Fenster, Arbeitsbereiche usw. in einem virtuellen Fenstermanager zuordnen und einen Snap erstellen kann?

Oder kann man vielleicht libx11einen Snap mit XShmCreateImageoder ähnlichem benutzen und erstellen ?

Runium
quelle
2
Ist xwd -root | convert - /tmp/image.jpgwas du suchst
jippie
3
@jippie: Vielleicht. Das Problem ist, dass beim Aufheben der Zuordnung von Fenstern für xwd nichts zu sichern ist, was zu einem schwarzen Bild führt. (Versuchen Sie diesen Befehl von zB tty1 xwd -display :0 -root | convert xwd:- /tmp/0.png)
Runium
unsicher, was du mit "nicht zugeordnet"
meinst
4
@jippie: Sie befinden sich nicht im Speicher. So wie ich es verstehe: Wenn Sie sich in Ihrem Arbeitsbereich befinden - er ist aktiv - werden die Pixel im Arbeitsspeicher zugeordnet, damit die GPU sie verarbeiten und auf dem Bildschirm rendern kann. Wenn der Arbeitsbereich umgeschaltet oder verlassen wird (z. B. mit Strg-Alt-F1), werden diese Zuordnungen nicht zugeordnet (um Ressourcen freizugeben) - daher befindet sich nichts im "Anzeigepuffer" - und es wird ein schwarzes Bild angezeigt.
Runium
Ich verstehe was du meinst, danke für die Erklärung. Ich kenne die Antwort in diesem Fall jedoch nicht.
jippie

Antworten:

7

Wir können das X tty manuell von der Kommandozeile aus "einschalten", ohne Strg-Alt-F (x).

Wenn X auf 7 steht und Sie ein Textterminal anmelden

chvt 7 ; DISPLAY=0.0 xwd -root > screendump.xwd ; chvt 1

Allerdings xhost + localhost Ausgabe im xsession sein muss, sonst xwd kann nicht auf x - Server verbinden.

Dies ermöglicht es Ihnen, dies von der SSH-Sitzung aus zu tun.

PS: Theoretisch sollte es mit MTD möglich sein, Bildschirmaufnahmen aus dem Grafikkartenspeicher zu machen. Also ohne vorher die X-Session "aufzuwecken".

John Siu
quelle
Vielen Dank für einen guten Beitrag. Ich untersuche es. Eines meiner Hauptprobleme ist, dass ich ein alter Fensterbauer bin und Probleme damit habe, zu verstehen, wie alles zusammengestrickt ist. X-Server, X-Window-Manager, Zugriff und Verfassen. Aber dorthin zu kommen.
Runium
@Sukminder Haben Sie Schwierigkeiten beim Einrichten oder benötigen Sie hierzu weitere Anweisungen?
John Siu