ฉันจะจัดตำแหน่งขอบด้านล่างของจอภาพสองจอให้เป็น xrandr ได้อย่างไร


21

ฉันมีเอาต์พุตสองรายการที่ฉันต้องการใช้กับแล็ปท็อปของฉัน:

  • LVDS1 - 1366 × 768
  • HDMI1 - 1920 × 1080

ฉันตั้งค่าจอภาพของฉันเช่น:

xrandr --output LVDS1 --auto --output HDMI1 --auto --right-of LVDS1

นี่เป็นสิ่งที่ดีและดี แต่แล็ปท็อปของฉันอยู่ต่ำกว่าจอมอนิเตอร์ภายนอกมากและด้วยขอบด้านบนของหน้าจอที่จัดเรียงไว้มันทำให้การกระโดดจากหน้าจอหนึ่งไปยังอีกหน้าจอค่อนข้างง่าย มีวิธีที่ฉันสามารถจัดตำแหน่งขอบด้านล่างแทน? ฉันคิดว่าฉันสามารถใช้--posธงเพื่อทำสิ่งนี้ แต่ฉันได้ลองแล้วและไม่เห็นความแตกต่างใด ๆ (บางทีฉันอาจไม่รู้วิธีใช้อย่างถูกต้อง)

คำตอบ:


38
 xrandr --output LVDS1 --auto --pos 0x312 --output HDMI1 --auto --pos 1366x0

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

คุณต้องการการกำหนดค่านี้:

(virtual screen coordinates)
     0       1366                 1366+1920

   0           A-----------------------
               |                      |
               |                      |
               |                      |
  x? B---------|         HDMI         |
     |         |                      |
     |  LVDS   |       1920x1080      |
     |1366x768 |                      |
1080 ----------------------------------

และคุณต้องการพิกัดของ A และ B เพื่อใช้ใน--posตัวเลือก xแก้ไขได้อย่างง่ายดายเท่ากับ 1080 - 768 = 312 ดังนั้น A อยู่ที่ (1366,0) และ B อยู่ที่ (0,312)

ดังนั้นตัวเลือก --pos ที่เหมาะสมคือ --pos 1366x0 สำหรับ HDMI และ --pos 0,312 สำหรับ LVDS คุณไม่จำเป็นต้องระบุขนาดของหน้าจอเสมือน (อีกต่อไป) ขนาดจะถูกปรับขนาดโดยอัตโนมัติ

โปรดทราบว่า--posสามารถถูกละเมิดได้ยกตัวอย่างเพื่อสร้างหลุมระหว่างสองหน้าจอของคุณหรือสร้างการทับซ้อนกัน WM ส่วนใหญ่ (ทั้งหมด?) จะไม่สามารถจัดการได้

แก้ไข: โอ้คุณต้องการวิธีอื่น ๆ แก้ไขที่


เฮ้คิดเรื่องนี้ถูกต้องก่อนที่คุณจะโพสต์ คุณจะสามารถอธิบายการทำงานของธง --pos ได้อย่างไร
elynnaie

ขอบคุณสิ่งนี้มีเหตุผลมากมาย! ฉันคิดว่าคุณต้องการแทนที่ 1600 ด้วย 1080 ในตัวอย่างของคุณ
elynnaie

@denaje: แก้ไขแล้ว
BatchyX

2
ไม่มีวิธีที่จะทำได้ภายใน xrandr โดยไม่ต้องใช้ค่าเวทหรือไม่? ฉันต้องการมีสคริปต์ที่ทำงานโดยไม่คำนึงถึงความละเอียดของหน้าจอที่ฉันเสียบถ้าไม่ฉันเดาว่าฉันสามารถแยกค่าจากเอาต์พุตของ xrandr แต่ฟังดูน่าเบื่อเล็กน้อย ...
Khaur

6

นอกจากคำตอบที่ยอดเยี่ยมของ @ BatchyX ทางเลือก - และ IMO ที่สะดวกกว่า - ตัวเลือกอาจใช้ARandR (ซึ่งย่อมาจาก "Another XRandR GUI"):

ARandR ได้รับการออกแบบมาเพื่อมอบส่วนหน้าแบบวิชวลที่ง่ายสำหรับ XRandR ตำแหน่งของมอนิเตอร์แบบสัมพัทธ์จะแสดงแบบกราฟิกและสามารถเปลี่ยนแปลงได้ด้วยวิธีการลากแล้ววาง

คุณอาจจำเป็นต้องติดตั้งครั้งแรก แต่มันก็มีอยู่ในที่เก็บ distros ที่สุด นี่คือวิธีที่ฉันค้นหาบน LXDE สำหรับการตั้งค่าที่มีจอภาพภายนอกหนึ่งตัวเชื่อมต่อผ่าน VGA ด้านบนและจอภาพเนทีฟ (ขนาดเน็ตบุ๊ก) ด้านล่าง:

ภาพหน้าจอ ARandR


3

หากคุณกำลังมองหาวิธีการแก้ปัญหาการลากและวางตาม GUI จะสามารถแนะนำARandR

ช่วยให้คุณตั้งค่าการตั้งค่า XRandR ที่สำคัญที่สุดเช่นตำแหน่งหน้าจอและความละเอียดซึ่งสามารถบันทึกในรูปแบบของเชลล์สคริปต์ที่เรียกใช้xrandrด้วยพารามิเตอร์ที่เกี่ยวข้อง


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