Xrandr के साथ दोहरी मॉनिटर सेटअप: अक्षम स्क्रॉलिंग के बिना / के साथ


11

यह एक सवाल नहीं है, बल्कि उबंटू के तहत एक समस्या के लिए एक काम है, मैंने सामना किया।

सेटअप:
एक लैपटॉप स्क्रीन (जैसे, "LVDS-1-0") और दूसरी स्क्रीन (जैसे, "DP-1") को देखते हुए दूसरी स्क्रीन आपकी प्राथमिक स्क्रीन और आपकी मॉनिटर आपके प्राथमिक स्क्रीन के दाईं ओर होने के साथ ( या बाएं) एक एक्सटेंशन के रूप में (चित्र देखें)। ऐसा न करने के स्पष्ट xrandr निर्देशों के बावजूद पहली स्क्रीन को हमेशा वस्तुतः बढ़ाया गया था। इसे दर्ज करते समय, मैं अपने माउस कर्सर को प्राथमिक मॉनिटर पर दाईं ओर ले जाने पर कष्टप्रद स्क्रॉलिंग से बचने में सक्षम था।

xrandr --output LVDS-1-0 --off
xrandr --output DP-1 --mode 1920x1080 --primary --pos 0x0 --output LVDS-1-0 --mode 1920x1080 --pos 1920x0

इसके बाद, यह सिर्फ स्क्रीन को स्क्रॉल किए बिना एक मॉनिटर से दूसरे में जाता है।

अपडेट करें

असतत ग्राफिक्स कार्ड पर स्विच करने के बाद (एनवीडिया असतत है और इंटेल मेरे लैपटॉप के लिए एकीकृत है), आउटपुट के क्रम को बदलने की आवश्यकता है:

output_DP=$(xrandr | grep " connected" | grep DP | awk '{print $1}')
output_LVDS=$(xrandr | grep " connected" | grep LVDS | awk '{print $1}')

xrandr --output $output_LVDS --off
xrandr --output $output_LVDS --mode 1920x1080 --pos 1920x0 --output $output_DP --mode 1920x1080 --pos 0x0  --primary

अधिक सुविधा के लिए, मैंने असतत और एकीकृत ग्राफिक्स कार्ड के बीच स्विच करने के बाद से इन वेरिएबल्स को अधिक लचीलापन दिया, आउटपुट डिवाइसों के पदनाम में बदलाव करता है (उदाहरण के लिए, LVDS-1-0 बनाम LVDS-1)।

मॉनिटर लेआउट

जवाबों:


6

मैं उसी बग से मिला। आपका समाधान मेरे लिए काम नहीं किया। आपकी चाल बस एक ट्रिगर है जो बग को अंदर नहीं गिरने देता है। मैंने थोड़ा सा खोदा और एक अच्छा लड़का मिला जिसमें एक समाधान था जो दूसरों के साथ-साथ यहां भी मदद कर सकता है।

मुख्य समस्या यह है कि हम यहां जिस बग से मिले थे, वह मॉनिटर का कारण बनता है जो दूसरे में स्क्रॉल कर रहा है ताकि दोनों स्क्रीन के आकार के साथ एक आभासी स्क्रीन हो। तो समाधान को मॉनिटर रिज़ॉल्यूशन को फिट करने के लिए उस स्क्रीन पर उस अतिरिक्त वर्चुअल स्पेस को अक्षम करना पड़ सकता है। यह आमतौर पर --panning AxBतर्क के साथ किया जाता है - हम इसका उपयोग वर्चुअल स्पेस साइज सेट करने के लिए करते हैं।

यह आप इसे कैसे कर सकते हैं:

xrandr \
  --output LVDS-1-0 --mode 1920x1080 --panning 1920x1080 --pos 1920x0 \
  --output HDMI-0   --mode 1920x1080 --panning 1920x1080 --pos 0x0    --primary

(स्लैश \को कमांड में नईलाइन का उपयोग करने के लिए जोड़ा गया।)

अफसोस की बात यह है कि ड्राइवर (जो बग है) ने हमारे द्वारा सेट की गई पैनिंग (या सेट नहीं) को ओवरराइट करना प्रतीत होता है। लेकिन क्या यह पैनिंग का एक और हिस्सा स्थापित करने के लिए नहीं है: ट्रैकिंग क्षेत्र! ट्रैकिंग क्षेत्र वास्तव में स्क्रीन का वह हिस्सा है जो कैमरा उस मॉनीटर पर कर्सर का अनुसरण करता है।

tl; dr: तो यह विचार है कि पैनिंग को ड्राइवर के रूप में सेट करें लेकिन इसके बजाय ट्रैकिंग क्षेत्र को प्रतिबंधित करें।

यह निम्नलिखित कमांड के साथ किया जाता है:

xrandr \
  --output LVDS-1-0 --mode 1920x1080 \
  --output HDMI-0   --mode 1920x1080 --panning 3840x1080+0+0/1920x1080+1920+0/0/0/0/0    --primary

"पहले चार पैरामीटर [ panningतर्क की] कुल पैनिंग क्षेत्र, अगले चार पॉइंटर ट्रैकिंग क्षेत्र (जो उसी क्षेत्र में चूक करते हैं) को निर्दिष्ट करते हैं। अंतिम चार पैरामीटर सीमा और डिफ़ॉल्ट को 0. निर्दिष्ट करते हैं।" [ आदमी xrandr ]


मैंने अंतिम कमांड को एक शेल स्क्रिप्ट में रखा है जिसे मैं कीबोर्ड के माध्यम से कॉल करता हूं (जब डिस्प्ले हार्डवेयर स्विच करता है) और कुछ सेकंड के बाद स्वचालित रूप से लॉगिन होता है।
सेबस्टियन बर्थ

ट्रैकिंग क्षेत्र सेट करना मेरे सेटअप में भी महत्वपूर्ण था।
krlmlr

अंत में, आपके समाधान ने मेरी मदद नहीं की, लेकिन मैंने संकल्पों को अकेले छोड़ कर एक समाधान पाया। दर्पण के लिए कमान: xrandr --output HDMI1 --same-as Laptop1और विस्तारित के लिए:xrandr --output Laptop1 --auto --output HDMI1 --auto --left-of Laptop1
एडेनशॉ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.