Linux: วิธีรันสคริปต์เมื่อเชื่อมต่อจอภาพภายนอกแล้ว?


10

ฉันจะตรวจพบเมื่อเชื่อมต่อจอภาพภายนอกใน linux ได้อย่างไร

ฉันต้องเรียกใช้สคริปต์ต่าง ๆ เพื่อตั้งค่าพื้นที่ทำงานของฉัน

มีวิธีที่ชาญฉลาดในการเริ่มต้นสคริปต์เมื่อสถานะจอภาพเปลี่ยนไปหรือไม่?

ฉันใช้ไดรเวอร์การแสดงผลของ Nvidia


วิธีแฮ็กจะเขียนสคริปต์ที่ค้นหาการเปลี่ยนแปลงผลลัพธ์ในxrandrทุก ๆ สองสามวินาทีและเรียกใช้สคริปต์หากสังเกตเห็นความแตกต่าง
new123456

เป็นการดีที่คุณสามารถบอก udev ให้เรียกใช้สคริปต์ ฉันไม่คาดหวังว่าจะทำงานกับไดรเวอร์ nvidia จนกว่าจะรองรับ KMS แม้ว่าฉันจะไม่ได้ลองก็ตาม stackoverflow.com/questions/5469828/…
Andy

คำตอบ:


3

มีชุดเครื่องมือที่เรียกว่าread-edidที่สามารถวิเคราะห์ข้อมูลการระบุตัวตนของจอแสดงผลแบบขยาย (EDID) หากเครื่องมือเหล่านี้ตรวจพบภายนอกคุณสามารถตรวจสอบการตรวจจับเป็นระยะ ๆ และใช้เอาต์พุตเพื่อเริ่มต้นสคริปต์ ฯลฯ

คุณไม่ได้พูดถึงว่าคุณต้องทำสิ่งนี้หรือไม่โดยไม่คำนึงว่า X กำลังทำงานอยู่หรือไม่


ขวาฉันเท่านั้นที่จำเป็นต้องใช้ใน X. ฉันมีเครื่องมืออื่น ๆ บางส่วนเช่นกันที่จะตรวจสอบการแสดง (เช่น disper) แต่ผมหวังที่จะหลีกเลี่ยงการเขียนภูต :)
Joernsn

1

ฉันกำลังมองหาคำตอบเดียวกัน: /
ฉันใช้ disper ( http://willem.engen.nl/projects/disper ) และ gconftool เพื่อเปิด / ปิดการใช้งานจอภาพที่สองของฉันพร้อมกับ gnome-panel ตัวที่สอง
disper -l แสดงรายการจอภาพที่เชื่อมต่อทั้งหมดดังนั้นคุณสามารถสำรวจว่าเป็นทางเลือกสุดท้าย

# only primary display
disper -s
gconftool-2 --type int --set  /apps/panel/toplevels/panel_1/screen -- -1


# dual display (nvidia twinview)
disper -e
gconftool-2 --type int --set  /apps/panel/toplevels/panel_1/screen 0
killall gnome-panel


0

เมื่อพิจารณาจาก ณ วันที่ 270.18 ไดรเวอร์ไบนารีของ nVidia ยังคงดูเหมือนจะไม่ใช้ XRandR ที่ทันสมัยคุณอาจต้องใช้คำแนะนำของ new123456 ในการสำรวจความคิดเห็นเครื่องมือเช่นxrandrการเปลี่ยนแปลงขนาดหน้าจอ

ในระบบของฉันฉันยังไม่พบวิธีที่จะทำให้ nVidia ประกาศอย่างถูกต้องxrandrว่าฉันมีจอภาพ 1280x1024 สองจอแทนที่จะเป็นหนึ่ง 2560x1024 เดียว ... ซึ่งตามที่คุณเดาได้ทำให้หน้าจอเกมเต็มจอทั้งสองเมื่อฉันห้าม พวกเขาจากการเปลี่ยนความละเอียด (มันทำให้คอมพิวเตอร์ติดกับดัก)

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