สกรีนช็อตของ X จาก tty


15

การใช้ Xvfb ฉันสามารถเปิดแอปพลิเคชั่นและจับภาพหน้าจอ

สิ่งที่ฉันสงสัยเกี่ยวกับวิธีการจับภาพจากเซสชัน X ที่มีอยู่ (อยู่เฉยๆ)

พูดจาก tty หรือมากกว่า ssh

จากสิ่งที่ฉันเข้าใจว่า windows ไม่มีการแมปและไม่มีอยู่เพื่อรักษาทรัพยากร มีเครื่องมือบางอย่างที่สามารถแมป windows ที่มีอยู่เวิร์กสเปซและอื่น ๆ ใน windowmanager เสมือนและใช้เวลาหรือไม่?

หรืออาจใช้libx11และสร้าง snap โดยใช้XShmCreateImageหรือคล้ายกันก็ได้


2
คือxwd -root | convert - /tmp/image.jpgสิ่งที่คุณกำลังมองหา?
jippie

3
@ jippie: บางที ปัญหาคือเมื่อหน้าต่างไม่มีการแมปไม่มีสิ่งใดที่ xwd จะถ่ายโอนข้อมูลทำให้เกิดภาพสีดำ (ลองใช้คำสั่งนั้นจาก tty1 xwd -display :0 -root | convert xwd:- /tmp/0.png)
Runium

ไม่แน่ใจว่าคุณหมายถึง 'unmapped' หรือไม่
jippie

4
@ jippie: พวกเขาไม่ได้อยู่ในความทรงจำ ตามที่ฉันเข้าใจ: เมื่อคุณอยู่ในพื้นที่ทำงานของคุณ - มันทำงานอยู่ - พิกเซลจะถูกแมปในหน่วยความจำเพื่อให้ GPU ประมวลผลและแสดงผลบนหน้าจอ เมื่อสลับหรือออกจากพื้นที่ทำงาน (เช่น Ctrl-Alt-F1) แผนที่เหล่านี้จะไม่มีการแมป (เพื่อเพิ่มทรัพยากร) - ดังนั้นจึงไม่มีสิ่งใดใน "บัฟเฟอร์การแสดงผล" - และให้ภาพสีดำ
Runium

ฉันเห็นสิ่งที่คุณหมายถึงขอบคุณสำหรับคำอธิบาย ไม่ทราบคำตอบในกรณีนี้
jippie

คำตอบ:


7

เราสามารถ "เปิด" X tty ด้วยตนเองจากบรรทัดคำสั่งโดยไม่ต้อง ctrl-alt-F (x)

ถ้า X อยู่ใน tty 7 และคุณล็อกอินเทอร์มินัลข้อความ

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

อย่างไรก็ตามxhost + localhostต้องมีปัญหาภายใน xsession มิฉะนั้น xwd ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ x

สิ่งนี้อนุญาตให้คุณทำจากเซสชัน ssh

PS: ในทางทฤษฎีกับMTDมันเป็นไปได้ที่จะทำการจับภาพหน้าจอจากหน่วยความจำการ์ด ดังนั้นโดยไม่ต้อง "ตื่น" เซสชัน X เป็นครั้งแรก


ขอบคุณสำหรับการโพสต์ที่ดี ฉันกำลังมองหามัน หนึ่งในปัญหาสำคัญของฉันคือฉันเป็น windows'er เก่าและมีปัญหาบางอย่างที่เข้าใจว่าทุกอย่างถูกถักเข้าด้วยกัน เซิร์ฟเวอร์ X, ตัวจัดการหน้าต่าง X, การเข้าถึงและการแต่ง แต่การเดินทาง
Runium

@Sukminder คุณมีปัญหาในการตั้งค่านี้หรือต้องการคำแนะนำเพิ่มเติมเกี่ยวกับเรื่องนี้หรือไม่?
John Siu
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.