กำหนดพื้นที่ทำงานบน i3 ให้กับจอแสดงผลหลายจอ


15

ฉันเปิดใช้งาน i3 บนแล็ปท็อป Linux ของฉัน ฉันมักจะใช้เพียงจอมอนิเตอร์ภายในของแล็ปท็อป (จอแสดงผลeDP1) แต่เมื่อฉันทำงานฉันมักจะเชื่อมต่อจอภาพที่สองเข้ากับพอร์ต HDMI ของคอมพิวเตอร์ (จอแสดงผลHDMI2) จนถึงตอนนี้ฉันได้ทำให้มันทำงานได้ดีโดยการเพิ่มคำสั่งเหล่านี้ไปยังไฟล์ config i3 ของฉัน:

# use workspaces on different monitors
workspace "1: P1" output eDP1
workspace "2: P2" output eDP1
workspace "3: P3" output eDP1
workspace "4: P4" output eDP1
workspace "5: P5" output eDP1
workspace "6: S1" output HDMI2 
workspace "7: S2" output HDMI2
workspace "8: S3" output HDMI2
workspace "9: S4" output HDMI2
workspace "10: S5" output HDMI2

# add HDMI monitor when connected
exec --no-startup-id xrandr --output HDMI2 --right-of eDP1
bindsym $mod+m exec --no-startup-id xrandr --output HDMI2 --auto --right-of eDP1

กล่าวอีกนัยหนึ่งเมื่อฉันเชื่อมต่อจอแสดงผล HDMI ของฉันฉันเพียงแค่กดMod+ Mเพื่อให้ i3 ตรวจจับได้ให้วางไว้ด้านขวาของจอแสดงผลหลักของฉันและมอบหมาย 5 พื้นที่ทำงานชื่อ (6-10) ให้กับมัน

นี่คือปัญหา:ที่บ้านฉันมีจอภาพอื่นที่ฉันสามารถเชื่อมต่อกับ VGA (จอแสดงผลDP2) ฉันสามารถเรียกใช้xrandrคำสั่งด้านบนเพื่อวางจอแสดงผลนี้ไว้ที่ด้านขวาของจอแสดงผลหลักของฉันได้ แต่ฉันไม่สามารถกำหนดพื้นที่ทำงานให้กับจอแสดงผลนี้เป็นค่าเริ่มต้นได้เว้นแต่ฉันจะแทนที่กฎที่ฉันมีอยู่แล้วสำหรับจอภาพ HDMI ฉันต้องการให้ทั้งสองพื้นที่ทำงานเหมือนกันไม่ว่าฉันจะใช้จอมอนิเตอร์แบบใดดังนั้นจึงไม่ใช่ตัวเลือก

TL; DRมีวิธีกำหนดพื้นที่ทำงานให้กับจอภาพสองจอที่แตกต่างกันหรือไม่ขึ้นอยู่กับว่าจอภาพใดเชื่อมต่ออยู่ (สมมติว่าจะไม่มีการเชื่อมต่อในเวลาเดียวกัน)?

คำตอบ:


21

คุณไม่สามารถกำหนดเอาต์พุตหลายรายการให้กับเวิร์กสเปซเดียวดู: https://github.com/i3/i3/issues/555

ดังนั้นวิธีเดียวคือเปลี่ยนการกำหนดค่า i3 แบบไดนามิก คุณสามารถกำหนดให้กับสคริปต์ฮอตคีย์ซึ่งจะทำสองสิ่ง: เปลี่ยนการแสดงผลของจอภาพด้วยxrandrและย้ายพื้นที่ทำงานด้วยi3-msg:

xrandr --output DP2 --auto --right-of eDP1
i3-msg "workspace 6, move workspace to output DP2"
...
i3-msg "workspace 10, move workspace to output DP2"

ด้วยสคริปต์ข้างต้นคุณจะย้าย 6-10 พื้นที่ทำงานไปที่ DP2 และสิ้นสุดอยู่ที่พื้นที่ทำงาน 10

ปรับปรุง 2019: การกำหนดผลหลายได้ดำเนินการเริ่มต้นจาก v4.16 ดูhttps://i3wm.org/docs/userguide.html#workspace_screen ตอนนี้คุณสามารถใช้พวกเขาเช่นนั้น:

workspace "6: S1" output HDMI2 VGA

ผลลัพธ์ที่พร้อมใช้งานครั้งแรกจะถูกนำมาใช้


2

ตามคู่มือผู้ใช้ไวยากรณ์:

workspace 1 output eDP1
...
workspace 6 output HDMI2 VGA

ควรทำงาน.

หรือคุณอาจกำหนดเอาต์พุตหลักบนเครื่องของคุณหากไม่ได้ตั้งค่า ( xrandr --output <output> --primary) และใช้ไวยากรณ์นี้:

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