พฤติกรรมนี้เป็นไปได้หรือไม่?
ทุกอย่างเป็นไปได้ใน linux คุณจะต้องมีความรู้พื้นฐานเกี่ยวกับXserverบางเวลาและระบบที่จะทำการทดสอบเนื่องจากคุณ messing กับ X ของคุณและแน่นอนคุณต้องการเบราว์เซอร์ที่ทำงานหากคุณต้องการความช่วยเหลือ :-)
ในความคิดของฉันมีสามแนวทางแก้ไข:
Multimonitor-การตั้งค่าใช้Xinerama ทางออกที่ง่ายที่สุดที่ฉันคิดได้คือการเพิ่มหน้าจอเสมือนที่สามลงในการกำหนดค่าของคุณและเพียงแค่ย้ายหน้าต่างไปที่นั่นโดยใช้ xdotool มีข้อเสียบางประการสำหรับโซลูชันนี้ แต่มันไม่จำเป็นต้องใช้ความพยายามในการย้ายหน้าต่างระหว่าง Xservers ที่แตกต่างกันซึ่งโดยทั่วไปไม่สามารถทำได้
เนื่องจากเป็นไปไม่ได้ที่จะย้าย windows ระหว่างXservers ที่แตกต่างกันเราจึงต้องการพร็อกซีอย่างxmoveหรือXpraเพื่อทำสิ่งนี้ให้เรา ฉันคิดว่าหน้าต่างนั้นอาศัยอยู่ในเซสชันXfvbแยกต่างหากเพื่อซ่อนหน้าต่าง คุณสามารถแนบและแยกออกจากเซสชัน
ไม่ว่าคุณจะใช้วิธีใดคุณต้องมีเหตุการณ์เมื่อจอภาพไม่ได้เสียบปลั๊ก เหตุการณ์จะเริ่มขึ้นเมื่อหน้าจอถูกตัดการเชื่อมต่อและเมื่อทำการเชื่อมต่ออีกครั้ง คุณสามารถ daemonize สคริปต์เพื่อดูเหตุการณ์
ฉันต้องการโซลูชันที่ใช้ Xpra ด้วยเหตุผลหลายประการ ฉันสามารถให้คำแนะนำบางอย่างเกี่ยวกับวิธีการทำเท่านั้น โซลูชันยังไม่สมบูรณ์ แต่ควรให้คุณเริ่มต้น
โซลูชัน Xinerama
ติดตั้ง
การตั้งค่า Xinerama จะต้องขยายออกไปเพื่อให้มีการตั้งค่าคงที่: ดูที่https://help.ubuntu.com/community/XineramaHowTo
ดูหน้าจอที่สามปลอมและXdummy
รับ windows ที่ได้รับผลกระทบ
เราสามารถใช้xdotoolเพื่อค้นหาหน้าต่าง หลังจากนั้นเราสามารถตรวจสอบตำแหน่งของพวกเขาและย้ายพวกเขา ฉันสมมติว่าจอภาพสองจอมี1920x1080
การกำหนดค่า ต่อไปนี้จะย้ายหน้าต่างทั้งหมดจากด้านขวาไปยังหน้าจอ xinerama ด้านซ้าย
while read xwindowid; do
eval $(xdotool getwindowgeometry --shell "$xwindowid")
if (( X > 1920 && X <= (1920 * 2))); then
xdotool windowmove --relative $WINDOW -1920 y
fi
done <<< "$(xdotool search --screen 0 '.*')"
ตอนนี้คุณสามารถย้ายหน้าต่างทั้งหมดจากหน้าจอแล็ปท็อปของคุณ (หน้าจอ 0) ไปยังหน้าจอที่สาม (เสมือน) หากมีการต่อจอภาพ ในเวลาเดียวกันคุณสามารถย้ายหน้าต่างใด ๆ ที่เก็บไว้ในหน้าจอที่สามไปยังหน้าจอแรก
โซลูชั่น XPRA
เพื่อที่จะใช้Xpraในการเคลื่อนย้ายหน้าต่างหน้าต่างทั้งหมดต้องได้รับการจัดการโดย Xpra ก่อน คุณต้องเริ่มเดสก์ท็อปทั้งหมดโดยใช้ Xpraในการเริ่มต้นระบบ สองครั้งที่หนึ่งคือเดสก์ท็อปหลักของคุณที่คุณทำงานและอีกส่วนเป็นเดสก์ท็อปเสมือนจริง
xpra start-desktop :99
xpra start-desktop :1 --exit-with-children −−attach
ตอนนี้คุณสามารถให้ Windows สำหรับหน้าจอที่ไม่ได้เชื่อมต่อทำงานในเซสชั่น xpra แยกต่างหากและแนบ / แยกออกจากกันเมื่อจอภาพสลับไป
xpra attach :99
xpra detatch :99
นอกจากนี้ยังมีส่วนขยายของ gnome shellที่มีประโยชน์ถ้าคุณต้องการย้ายหน้าต่างด้วยตนเองจากหน้าต่างที่ซ่อน:99
ไปเป็นปกติ:0
ระหว่างการแสดง xpra ที่เริ่มต้น
เหตุการณ์
คุณสามารถดูการตัดการเชื่อมต่อ / เชื่อมต่อของจอแสดงผลเฉพาะ
อาจตรวจสอบขนาดที่เปลี่ยนแปลงของ xinerama ของคุณโดยใช้xwininfoเพื่อให้มันไม่ขึ้นกับจอภาพที่ไม่ได้เสียบปลั๊กหากคุณต้องการเช่นขยายการตั้งค่าของคุณเป็น 3 จอภาพและถอดปลั๊กอุปกรณ์ออกโดยพลการ โปรดทราบว่านี่จะใช้งานได้กับโซลูชัน xpra เท่านั้น
xwininfo -display :0 -root | grep -e "-geometry"
-geometry 5760x2160+0+0