Ubuntu में स्टार्टअप पर xrandr कमांड कैसे चलाएं


13

मैं xrandrस्टार्टअप पर निम्न कमांड कैसे चला सकता हूं ?

xrandr

cvt 1368 768 
xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync
xrandr --addmode VGA1 1368x768_60.00
xrandr --output VGA1 --mode 1368x768_60.00 

1
उध्या कुमार क्या आपने देखा कि आपके पास एक उत्तर है? कृपया मुझे बताएं कि क्या आप प्रबंधन करते हैं।
जैकब वलीजम

जवाबों:


22

स्टार्टअप एप्लिकेशन में जटिल कमांड जोड़ना

सामान्य तौर पर, आप स्टार्ट अप (लॉग इन) को चलाने के लिए कमांड चुन सकते हैं: डैश> स्टार्टअप एप्लिकेशन> ऐड। इस मामले में, आपके पास चलाने के लिए एक जटिल कमांड है।

ऐसा करने के लिए दो विकल्प हैं:

  1. एक अलग स्क्रिप्ट लिखें:

    #!/bin/bash
    
    cvt 1368 768 
    # xrandr only works in X11 sessions, not Wayland
    [ "$XDG_SESSION_TYPE" = x11 ] || exit 0
    xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync
    xrandr --addmode VGA1 1368x768_60.00
    xrandr --output VGA1 --mode 1368x768_60.00

    स्क्रिप्ट को एक खाली फ़ाइल में कॉपी करें, इसे सहेजें set_monitor.sh और ऊपर बताए अनुसार स्टार्टअप एप्लिकेशन में निम्न कमांड जोड़ें।

    /bin/bash /path/to/set_monitor.sh
    
  2. एक (बहुत लंबे) कमांड के लिए कमांड को चेन करें:

     /bin/bash -c "cvt 1368 768&&xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync&&xrandr --addmode VGA1 1368x768_60.00&&xrandr --output VGA1 --mode 1368x768_60.00"
    

    इस स्थिति में, &&कमांड के बीच का उपयोग करके प्रत्येक कमांड को जल्द से जल्द चलाया जाएगा (और यदि) पिछले एक को सफलतापूर्वक चलाया जाता है, जैसे वे अलग-अलग लाइनों पर हैं।

    फिर ऊपर बताए अनुसार, स्टार्टअप एप्लिकेशन में कमांड जोड़ें।

महत्वपूर्ण नोट: स्टार्टअप अनुप्रयोगों में xrandr कमांड्स जोड़ना

xrandrस्टार्टअप में कमांड जोड़ना मुश्किल हो सकता है; डेस्कटॉप पूरी तरह से लोड होने से पहले कभी-कभी वे बहुत जल्दी चलने पर टूट जाते हैं। इसलिए आपको (शायद) स्क्रिप्ट या कमांड चलाने के लिए कमांड में थोड़ा ब्रेक जोड़ने की आवश्यकता हो सकती है, जैसे (अंतिम मामले में):

/bin/bash -c "sleep 15&&cvt 1368 768&&xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync&&xrandr --addmode VGA1 1368x768_60.00&&xrandr --output VGA1 --mode 1368x768_60.00"

sleep 15इष्टतम समय खोजने के लिए आपको थोड़ा खेलने की आवश्यकता हो सकती है ।

ध्यान दें

मैंने पहली पंक्ति छोड़ दी:

xrandr

के बाद से यह कुछ भी नहीं है, लेकिन अपने स्क्रीन सेटअप पर कुछ जानकारी प्रदर्शित :)


6
cvtयदि आप पहले से ही अपने मॉडल को जानते हैं तो आपको कमांड शामिल करने की आवश्यकता नहीं है ।
thethakuri

1
/bin/bash -c "..."रैपिंग मेरे लिए :) चाल किया था
Superole

कुबंटु 17.10 पर, मैंने sleep"स्टार्टअप स्टार्टअप" विकल्प का चयन करके 'स्टार्टअप अनुप्रयोगों' में भाग के बिना कमांड जोड़ा ।
पैट-एस

1
3 साल पहले लिखने के लिए +1 # xrandr only works in X11 sessions, not Wayland। अच्छा भविष्य के सबूत वापस तो।
विनयुनुच्स 2 यूनिक्स

इस समाधान ने अंत में मेरे डेबियन 10 में दो मॉनिटरों के साथ काम किया: ऐप्पल थंडरबोल्ट 27 + एलजी 27 एमपी 5 जी। मूल रूप से, एलजी केवल 1920x1080 का समर्थन करता है। के साथ xrandrमैं इसे 2560x1440 के Tunderbolt के एक ही संकल्प में स्थापित किया /bin/bash -c "sleep 3&&xrandr --output DP-2 --auto --scale-from 2560x1440"
fnnie

7

के अनुसार इस पर अब यह प्रवेश पर स्वचालित रूप से खंड, मैं अपने ही स्क्रिप्ट बना दिया है 45custom_xrandr-settingsऔर इसे में रखा /etc/X11/Xsession.d/। यह Ubuntu 14.04 LTS के तहत मेरे लिए ठीक काम करता है। आप caseउस अनुभाग में वर्णित कमांड के बाद नीचे दिए गए कोड को रख सकते हैं ।

PRI_OUTPUT="DVI-0";
# Make and force resolution
myNewMode=$(cvt 1366 768 60 | grep -oP 'Modeline\K.*') &&                           #grep evrything after 'Modline'
myNewModeName=\"$(echo $myNewMode | grep -oP '"\K[^"\047]+(?=["\047])' )\" &&       #grep everything inside quotes
xrandr --newmode $myNewMode;
sleep 15;       
xrandr --addmode $PRI_OUTPUT $myNewModeName;

मेरा मानना ​​है कि उपरोक्त वही है जो आप खोज रहे हैं। आप उपलब्ध आउटपुट को केवल xrandrकमांड चलाकर देख सकते हैं । आउटपुट हो सकता है VGA, VGA-0, DVI-0, TMDS-1या DisplayPort-0

यहाँ पूरी स्क्रिप्ट है जो मैंने बनाई है।

# To configure xrandr automatically during the first login, 
# save this script to your computer as /etc/X11/Xsession.d/45custom_xrandr-settings: 

# If an external monitor is connected, place it with xrandr
# External output may be "VGA" or "VGA-0" or "DVI-0" or "TMDS-1"

# More info at http://www.thinkwiki.org/wiki/Xorg_RandR_1.2


PRI_OUTPUT="DVI-0";
SEC_OUTPUT="DisplayPort-0";
SEC_LOCATION="left";    # SEC_LOCATION may be one of: left, right, above, or below

case "$SEC_LOCATION" in
       left|LEFT)
               SEC_LOCATION="--left-of $PRI_OUTPUT"
               ;;
       right|RIGHT)
               SEC_LOCATION="--right-of $PRI_OUTPUT"
               ;;
       top|TOP|above|ABOVE)
               SEC_LOCATION="--above $PRI_OUTPUT"
               ;;
       bottom|BOTTOM|below|BELOW)
               SEC_LOCATION="--below $PRI_OUTPUT"
               ;;
       *)
               SEC_LOCATION="--left-of $PRI_OUTPUT"
               ;;
esac

# Make and force resolution
myNewMode=$(cvt 1366 768 60 | grep -oP 'Modeline\K.*') &&                           #grep evrything after 'Modline'
myNewModeName=\"$(echo $myNewMode | grep -oP '"\K[^"\047]+(?=["\047])' )\" &&       #grep everything inside quotes
xrandr --newmode $myNewMode;
sleep 15;       
xrandr --addmode $PRI_OUTPUT $myNewModeName;


# Activate secondary out (display port)
xrandr | grep $SEC_OUTPUT | grep " connected "
if [ $? -eq 0 ]; then
#   xrandr --output $SEC_OUTPUT --auto $SEC_LOCATION
    xrandr --output $PRI_OUTPUT --mode $myNewModeName --output $SEC_OUTPUT --auto $SEC_LOCATION
else
    xrandr --output $PRI_OUTPUT --mode $myNewModeName --output $SEC_OUTPUT --off
fi

2

फाइल बनाएं ~/.xprofileऔर उसमें अपनी लाइनें डालें। इसे X उपयोगकर्ता सत्र की शुरुआत में चलाया जाता है।


3
यह काम नहीं किया। आदेश बहुत जल्दी आग।
नेकटविली

@neckTwi धन्यवाद, मैंने पाया कि xrandr --output ...काम नहीं करता है लेकिन पिछली दो लाइनें काम करती हैं। यह सब मेरे लिए काम करता है।
गोलपोस्ट २ '’१
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.