अनप्लग किए गए डिस्प्ले अक्षम करें (xrandr)


17

मेरे पास दो वीडियो आउटपुट के साथ एक लैपटॉप है जिसका उपयोग मैं घर पर (एचडीएम 1, वीजीए 1) करता हूं। उन्हें सक्षम करने के लिए, मैं यह करता हूं:

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

जब मैं काम पर जाना चाहता हूं, तो मैं अपना लैपटॉप लेता हूं, लेकिन सबसे पहले निम्नलिखित काम करता हूं:

xrandr --output VGA1 --off
xrandr --output LVDS1 --left-of HDMI1 --auto
xrandr --output HDMI1 --off

और फिर यह मेरे लैपटॉप डिस्प्ले को वैसे ही सक्रिय छोड़ देता है जैसे इसे चाहिए।

मेरे सामने समस्या यह है कि कभी-कभी मुझे अपने कंप्यूटर को काम पर लेने से पहले दो स्क्रीन को अक्षम करना याद नहीं है। जब मैं आया, मैं के विभिन्न संयोजनों की कोशिश --outputऔर --offलेकिन मैं अपनी स्क्रीन पुन: सक्षम नहीं कर सकते।

यह वह आउटपुट है जो मुझे xrandrप्रदर्शित नहीं होने के साथ चलता है :

Screen 0: minimum 320 x 200, current 3840 x 1080, maximum 8192 x 8192
LVDS1 connected (normal left inverted right x axis y axis)
   1366x768       60.0 +
   1024x768       60.0··
   800x600        60.3     56.2··
   640x480        59.9··
VGA1 disconnected 1920x1080+1920+0 (normal left inverted right x axis y axis) 0mm x 0mm
HDMI1 disconnected 1920x1080+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
DP1 disconnected (normal left inverted right x axis y axis)
  1920x1080 (0x4c)  148.5MHz
        h: width  1920 start 2008 end 2052 total 2200 skew    0 clock   67.5KHz
        v: height 1080 start 1084 end 1089 total 1125           clock   60.0Hz

लगभग हर आदेश मैंने रिटर्न की कोशिश की है:

xrandr: Configure crtc 2 failed
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  21 (RRSetCrtcConfig)
  Serial number of failed request:  40
  Current serial number in output stream:  40

यह ऐसा है जैसे दो मॉनिटर अपने CRTC को नहीं दे रहे हैं और चूंकि मेरा हार्डवेयर केवल 2 का समर्थन करता है, यह तब तक बंद रहता है जब तक कि मैं उन मॉनिटर को प्लग इन नहीं करता और उन्हें अक्षम नहीं करता।

जवाबों:


11

आप अपने सभी विन्यास को केवल एक कमांड में रख सकते हैं, जैसे:

xrandr --output VGA1 --off --output HDMI1 --off --output LVDS1 --left-of HDMI1 --auto

और वह काम करना चाहिए, क्योंकि कमांड लिखने में भी मुश्किल है (लंबे समय तक) आप एक स्क्रिप्ट बना सकते हैं जो वर्तमान में संलग्न स्क्रीन के लिए परीक्षण करें और वांछित सेटअप करें। (आप एक कुंजी शॉर्टकट में जोड़ा जा सकता है)

if [ -z `xrandr --query | grep "HDMI1 connected"` ]
then
    xrandr --output DP2 --off --output DP1 --off --output HDMI2 --off \
        --output HDMI1 --off \
        --output LVDS1 --mode 1366x768 --pos 0x0 --rotate normal \
        --output VGA1 --off
else
    xrandr --output DP2 --off --output DP1 --off --output HDMI2 --off \
        --output HDMI1 --mode 1920x1080 --pos 0x0 --rotate normal --primary \
        --output LVDS1 --off --output VGA1 --off
fi

यह एक फैंसी स्क्रिप्ट नहीं है, लेकिन आपके लिए काम कर सकती है।


1

जब स्क्रीन दुर्भाग्य से अनप्लग होती है, तो कोई ईवेंट उत्पन्न नहीं होता है। एक स्क्रिप्ट पोल xrandr होना काफी भारी है, लेकिन आप / sys / class / drm / * / status में देख सकते हैं और उन फ़ाइलों को परागित कर सकते हैं जब आवश्यक xrandr कार्रवाई करें जब स्थिति 'कनेक्टेड ’से कुछ और (या पूरी तरह से गायब) हो जाती है।


1

मुझे पता है कि यह एक सुपर पुराना धागा है, लेकिन मैं मॉनिटर को चालू और बंद करने के बारे में आपकी जानकारी का उपयोग करके और फिर उन्हें डिस्कनेक्ट करने के बारे में जानकारी का उपयोग करते हुए साझा करना चाहता था। मैंने ऑटोरैंडर नामक एक कार्यक्रम का उपयोग किया और मूल रूप से सिर्फ दो मॉनिटर के साथ अपने प्रदर्शन को स्थापित किया autorandr --save docked। फिर मैंने xrandr --output VGA --offउसका उपयोग किया , फिर अपने मॉनिटर को अनप्लग किया , उसके बाद autorandr --save mobile। ऑटोरैंडर स्वचालित रूप से आपके द्वारा प्लग या अनप्लग किए गए के आधार पर विभिन्न मोड के बीच स्विच करेगा। उम्मीद है कि किसी और की मदद करता है जो इस पर ठोकर खाता है! इसके अलावा यह मेरे पहले वास्तविक उत्तर की तरह है तो मुझे बताएं कि क्या मैं और अधिक स्पष्ट होने के लिए कुछ भी बदल सकता हूं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.