วิธีแบ่งจอกว้างในแนวตั้งเป็นพื้นที่ทำงานเสมือนสองแห่งบน Ubuntu / Gnome


23

แล็ปท็อปเครื่องใหม่ของฉันมีหน้าจอขนาดใหญ่ 16: 9 และฉันพบว่ามันยากที่จะใช้งานอย่างเต็มที่ในช่วง 95% ของเวลาที่ฉันไม่ได้ดูภาพยนตร์ HD ในนั้น

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

มีปลั๊กบางชนิดให้ทำเช่นนี้?


หากคุณกำลังใช้งาน compiz คุณอาจพบว่าปลั๊กอินกริดนั้นตรงไปตรงมามากขึ้นให้ดูคำตอบของฉันด้านล่าง
kynan

คำตอบ:


24

คุณสามารถใช้ ' fakexinerama ' เพื่อบรรลุสิ่งที่คุณต้องการ:

 Fake Xinerama is a replacement libXinerama library that instead 
 of querying the XServer reads ~/.fakexinerama and provides fake 
 information about Xinerama screens based on this file. It can be 
 used to fake a Xinerama setup even on computers with just one monitor
 or to fake Xinerama setup other than one specified in the XServer 
 configuration (e.g. making one screen smaller when using two same 
 screens). It's probably only useful for developers.

1
ขอบคุณมันใช้งานได้ดีและดีกว่าที่ฉันคาดไว้ บริเวณท่าเรือแถบแผงควบคุมและหน้าต่างลอยของฉันขยายหน้าจอแบบฟิสิคัล แต่ขยายใหญ่สุดและแอป "เต็มหน้าจอ" (รวมถึงอินสแตนซ์ของผู้เยี่ยมชม vmware ของฉัน) เก็บไว้ครึ่งหน้าจออย่างสุภาพ ฉันค่อนข้างใหม่กับ linux ดังนั้นการแฮ็คที่การตั้งค่าการแสดงผลของฉันจึงค่อนข้างเสี่ยง แต่ก็ไม่มีงานที่เกี่ยวข้องมากนัก ฉันกำลังบันทึกขั้นตอนที่แน่นอนสำหรับมือสมัครเล่น linux คนอื่น (เหมือนตัวเอง) ในคำตอบเพิ่มเติมด้านล่าง
David

2
ลิงก์เสีย ความคิดใดที่ฉันสามารถหาซอฟต์แวร์นี้ได้?
Maxime

17

หากต้องการขยายคำแนะนำของอากิระด้านบนโดยใช้ "xinerama ปลอม" ของ Lubos Lunak ต่อไปนี้เป็นวิธีที่ฉันใช้เพื่อทำงาน:

  1. ฉันดาวน์โหลดไฟล์ Xinerama.c นี้จากเว็บไซต์ Xinerama ปลอม
  2. ฉันเปิดเทอร์มินัลและไปที่โฟลเดอร์โฟลเดอร์ที่ฉันบันทึก Xinerama.c
  3. ฉันดำเนินการ:
    gcc -O2 -Wall Xinerama.c -fPIC -o libXinerama.so.1.0.0 -shared
  4. ฉันเปิด nautilus (gnome file explorer) เป็น root โดยพิมพ์ Alt-F2 แล้ว:
    gksu nautilus
  5. ฉันไปที่ / usr / lib, พบ libXinerama.so.1.0.0 และทำสำเนาสำรองไว้
  6. ฉันคัดลอก libXinerama.so.1.0.0 จากไดเรกทอรีดาวน์โหลดของฉันไปยังไดเรกทอรี / usr / lib แทนที่การคัดลอกที่นั่น (ซึ่งฉันเพิ่งสำรองไว้ในขั้นตอนที่ 5 ดังนั้นฉันสามารถยกเลิกได้ในภายหลังถ้าจำเป็น) สิ่งที่ชัดเจนเป็นประโยชน์ที่จะทราบว่าขนาดไฟล์ของ "รุ่นปลอม" ใหญ่กว่า (12.6 kb) มากกว่ารุ่น "ของจริง" ที่ฉันกำลังแทนที่ (8.6 kb)
  7. ฉันสร้างไฟล์ข้อความใหม่ที่ชื่อว่า. fakexinerama ในไดเรกทอรี / home / dave ของฉันและใส่ลงไป: (ขึ้นอยู่กับขนาดหน้าจอทางกายภาพ 1440x900 ของฉัน)
    2
    0 0 720 900
    720 0 720 900

Fake Xinerama ช่วยให้คุณกำหนดการตั้งค่าหน้าจอเสมือนที่คุณต้องการ แต่ฉันต้องการแยกหน้าจอแนวตั้ง เพื่อให้บรรลุผลนั้นบนจอภาพของคุณขนาด X คูณ Y พิกเซลโดยดูที่ตัวอย่างไฟล์ของฉันเพียงแค่แทนที่ 720 ด้วย X / 2 และแทนที่ 900 ด้วย Y

แค่นั้นแหละ. ฉันออกจากระบบและกลับเข้าสู่ระบบและทำงานอยู่

ขอขอบคุณ Lubos Lunak อีกครั้งสำหรับการสร้าง mod นี้และอากิระสำหรับการชี้มาที่ฉัน


สิ่งนี้ช่วยฉันได้มากด้วยจอแสดงผลสามหัว Xinerama ค่อนข้างช้าด้วยเดสก์ท็อปสามตัวดังนั้นการใช้สิ่งนี้ทำให้ฉันสามารถใส่พวกเขาสองคนใน twinview โดยไม่ทำให้เกิดปัญหาทั้งสองอย่างที่น่ารำคาญและมีหน้าจอที่สาม ขอบคุณที่สละเวลาเขียนขั้นตอนของดาวิด!
Kyle Brandt

7

ขณะนี้มีโครงการใหม่ชื่อFakeXRandRที่ทำงานตรงไปตรงมา

นี่เป็นเครื่องมือในการโกงเซิร์ฟเวอร์ X11 เพื่อเชื่อว่ามีจอภาพมากกว่าที่เป็นจริง มันเชื่อมต่อกับ libXRandR และ libXinerama และแทนที่การกำหนดค่าจอภาพที่กำหนดค่าได้ด้วยจอภาพเสมือนหลายจอ เครื่องมือที่มาพร้อมกับแพ็คเกจนี้สามารถใช้กำหนดค่าวิธีแบ่งจอภาพ


ฉันใช้ fakexrandr ได้สำเร็จนาน ๆ ครั้ง น่าเสียดายที่หน้าจอของฉันเปลี่ยนสัญญาณรบกวนเมื่อฉันมี xorg.conf (ซึ่งฉันต้องการความละเอียดที่กำหนดเองสำหรับจอภาพ ultrawide ของฉัน) ฉันถูกบังคับให้ลบการกำหนดค่า fakexrandr รีสตาร์ท X และกำหนดค่า fakexrandr ใหม่
JAponte

3

สามารถทำได้ใน XRandR 1.5 โดยไม่มีซอฟต์แวร์เพิ่มเติม ในขณะที่ทั้ง fakexinerama และ FakeXRandR ไม่ได้ทำงานให้ฉันใน Xubuntu แต่วิธีนี้ก็แยกหน้าจอออกเป็นสองส่วน

ในการแยกมอนิเตอร์ให้ทำดังนี้:

  1. ใส่xrandrเข้าไปในสถานีเพื่อตรวจสอบชื่อการส่งออกและความละเอียดของการแสดงผลในปัจจุบันที่คุณต้องการแยก
    ในระบบของฉันผลลัพธ์คือ:

    Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
    HDMI1 disconnected (normal left inverted right x axis y axis)
    HDMI2 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 509mm x 286mm
       1920x1080     60.00*+  50.00    59.94
       1920x1080i    60.00    50.00    59.94  
       1600x900      60.00  
       1280x1024     75.02    60.02  
       1152x864      75.00  
       1280x720      60.00    50.00    59.94  
       1024x768      75.08    60.00  
       800x600       75.00    60.32  
       720x576       50.00  
       720x576i      50.00
       720x480       60.00    59.94
       720x480i      60.00    59.94
       640x480       75.00    60.00    59.94
       720x400       70.08
    VGA1 disconnected (normal left inverted right x axis y axis)
    VIRTUAL1 disconnected (normal left inverted right x axis y axis)
    

    เราสามารถเห็นได้ว่าจอภาพของฉันเชื่อมต่อกับ HDMI2 และความละเอียดตั้งไว้ที่ 1920x1080

  2. เพิ่มจอภาพเสมือน 2 จอด้วยxrandr --setmonitorคำสั่งเพื่อให้แน่ใจว่าพวกเขาซ้อนทับกับจอแสดงผลทางกายภาพของคุณและวางไว้ติดกัน ไวยากรณ์ของคำสั่งคือ (ไม่มีเครื่องหมายคำพูด):

    xrandr --setmonitor "monitor_name" "width_px"/"width_mm"x"height_px"/"height_mm"+"x_offset_px"+"y_offset_px" "output_name" 
    

    สำหรับระบบของฉันมันเป็น:

    xrandr --setmonitor HDMI2~1 960/254x1080/286+0+0 HDMI2
    xrandr --setmonitor HDMI2~2 960/255x1080/286+960+0 none
    
  3. ในขณะที่ข้างต้นได้กำหนดค่าจอภาพเสมือนบนระบบของฉันแล้วการเปลี่ยนแปลงยังไม่ถูกนำมาใช้จนกว่าฉันจะดำเนินการ (ดูเหมือนจะรีเฟรช xrandr):

    xrandr --fb 1921x1080
    xrandr --fb 1920x1080
    

หากต้องการยืนยันการเปลี่ยนแปลงหลังจากรีบูตคุณจะต้องดำเนินการคำสั่งเหล่านี้เมื่อคุณเข้าสู่ระบบ คุณสามารถทำได้โดยเพิ่มคำสั่งต่อท้าย~/.profileไฟล์ของคุณ


1
มันดีที่มันมีอยู่ใน xrandr เยี่ยมมาก แต่มันทำให้ใช้งานได้เพียงด้านซ้ายของจอมอนิเตอร์ส่วนที่ถูกต้องไม่แสดงอะไรเลย และฉันไม่พบข้อผิดพลาด - โอ้ดูเหมือนว่า Awesome WM จะไม่รองรับจอภาพ แต่ใช้เอาต์พุตเท่านั้น ดังนั้นคุณต้องการการสนับสนุนใน WM เช่นกัน
nert

โอ้ไม่เป็นไรที่ยอดเยี่ยมรองรับจอภาพของ xrandr มันไม่ได้ผลสำหรับฉัน แต่สิ่งที่ยอดเยี่ยมสามารถทำได้ด้วยตัวเอง: awesomewm.org/apidoc/classes/screen.html#screen:fake_add
nert

1

ฉันเจอบทความเกี่ยวกับ omgubuntuที่ให้วิธีง่ายๆในการเลียนแบบฟังก์ชั่น Windows Snap ใน Ubuntu / Gnome โดยใช้แผงควบคุม Compiz Windows Snap นี้ทำให้ฉันมีเดสก์ท็อปแบบจอกว้างหนึ่งจอ แต่ตัวเองสามารถต่อกับ windows ได้อย่างง่ายดายเพื่อเติมเต็มครึ่งหน้าจอ (นั่นไม่ใช่สิ่งที่ฉันกำลังมองหาในตอนแรก แต่ก็ยังค่อนข้างมีประโยชน์)


1

ฉันใช้วิธีแก้ปัญหากับคำถามนี้มาหลายปีแล้วโดยใช้ triplehead2go อุปกรณ์นั้นจะรวมจอภาพได้สูงสุด 3 ตัวและรายงานหนึ่งจอภาพขนาดใหญ่ไปยัง X

นี่คือวิธีแบ่งจอภาพขนาดใหญ่ออกเป็นพื้นที่ทำงานเสมือนใน xorg.conf:

Section "Device"
    # ... your other settings above
    Option         "TwinViewXineramaInfoOverride" "1280x1024+0+0, 1280x1024+1280+1, 1280x1024+2560+0"
EndSection

และถ้าคุณใช้ไดรเวอร์ nvidia รุ่นล่าสุดไดรเวอร์เหล่านั้นจะให้ส่วนขยาย xinerama ของตนเองซึ่งดูเหมือนจะไม่สนใจการตั้งค่าด้านบนดังนั้นคุณต้องเพิ่มสิ่งต่อไปนี้ในส่วนของอุปกรณ์นั้น:

Option         "NoTwinViewXineramaInfo" "true"

0

ฉันค่อนข้างแน่ใจว่าคุณสามารถทำได้โดยการปรับแต่งไฟล์X configของคุณแต่ฉันจะไม่เพียงเพราะฉันอาจทำลายการตั้งค่าการแสดงผลของฉัน หากคุณลองทำเช่นนี้ให้ระวังสำรองข้อมูลที่คุณแสดงการกำหนดค่าและตรวจสอบให้แน่ใจว่าคุณมีการเข้าสู่ระบบทางเลือกที่คุณสามารถใช้ในกรณีที่คุณต้องแก้ไขการแสดงผลของคุณ

คุณอาจได้รับความพึงพอใจมากขึ้นจากตัวจัดการหน้าต่างแบบเรียงต่อกันเช่นxmonadหรือแม้แต่เรียกใช้compizเพื่อควบคุมวิธีที่หน้าต่างเปิดปิด & ไทล์


0

ทำงานได้ดีสำหรับฉัน:

ฉันใช้สิ่งต่อไปนี้สำหรับจอภาพสองจอ (1280x1024 + 2048x1152):

3
0 0 1280 1024
1280 0 1024 1152
2304 0 1024 1152

0

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

นั่นคือคุณสมบัติ Window Snapping ที่อธิบายไว้ในบทความที่ David เชื่อมโยงถึง นอกจากนี้คุณสามารถกำหนดค่าทางลัดและทำให้หน้าต่างใช้ครึ่งบน / ล่างหรือหนึ่งในสี่ของหน้าจอ

Xinerama ทำให้ประสิทธิภาพการทำงานโดดเด่น (เนื่องจากเป็นการจำลองการกระทำ X ในหน้าจอ Xinerama ทั้งหมด) และทำงานได้ไม่ดีกับตัวจัดการหน้าต่างแบบประกอบ

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