แยกเวิร์กสเปซสำหรับหน้าจอที่สอง


16

ฉันต้องการที่จะบรรลุพฤติกรรมเช่นนี้: เมื่อฉันใช้หน้าจอแล็ปท็อปของฉันฉันใช้พื้นที่ทำงานครั้งแรก เมื่อฉันเสียบหน้าจอที่สอง (ผ่าน HDMI) จะใช้พื้นที่ทำงานที่สองและหน้าต่างที่เปิดใหม่ทั้งหมดบนหน้าจอที่สองนี้จะลงจอดในพื้นที่ที่สองยกเว้นฉันจะสลับพื้นที่ทำงานบนหน้าจอที่สองเป็นพื้นที่ทำงานอื่น

เมื่อฉันถอดปลั๊กหน้าจอที่สองหน้าต่างทั้งหมดจะยังคงอยู่ในพื้นที่ทำงานที่พวกเขาสร้างขึ้นและฉันสามารถสลับพื้นที่ทำงานบนแล็ปท็อปของฉันเพื่อดูพวกเขาได้

พฤติกรรมนี้เป็นไปได้หรือไม่?


ฉันจัดการเพื่อเปิดใช้งานพื้นที่ทำงานด้วย Appearance -> Behvior และพื้นที่ทำงานแนวตั้งที่ถูกปิดใช้งานด้วย CompizConfig Settings Manager นอกจากนี้ยังมีปลั๊กอิน Expo และ Viewport Switcher ซึ่งดูเหมือนจะสามารถทำสิ่งที่ฉันต้องการ แต่ฉันกลัวการเปลี่ยนการตั้งค่าโดยที่ไม่รู้
velop

คำถามของคุณค่อนข้างสับสน หากคุณขอให้แสดงเป็นสองพื้นที่ทำงานแยกต่างหากคำตอบคือไม่เป็นไปไม่ได้ หากคุณต้องการเปลี่ยนจำนวนพื้นที่ทำงานโดยอัตโนมัติเมื่อเชื่อมต่อกับหน้าจอที่สองแสดงว่าเป็นไปได้ โปรดอธิบาย / ลดความซับซ้อนของสิ่งที่คุณถาม
Sergiy Kolodyazhnyy

2
ฉันพบตัวเลือก Compiz -> Wall Desktop -> การสลับ Viewport -> Multimonitor bahvior -> Switch แยกกัน แต่ปรากฏว่านี่ใช้งานไม่ได้
velop

@velop คุณสามารถแก้ไขความคิดเห็นเหล่านี้เป็นคำถามได้หรือไม่
SDsolar

คำตอบ:


1

พฤติกรรมนี้เป็นไปได้หรือไม่?

ทุกอย่างเป็นไปได้ใน 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

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