Ubuntu'da başlangıçta xrandr komutları nasıl çalıştırılır


13

xrandrBaşlangıçta aşağıdaki komutu nasıl çalıştırabilirim ?

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
Merhaba Udhaya Kumar bir cevabın olduğunu fark ettin mi? Lütfen yönetirseniz bana bildirin.
Jacob Vlijm

Yanıtlar:


22

Başlangıç ​​Uygulamalarına karmaşık komutlar ekleme

Genel olarak, aşağıdakileri seçerek başlangıçta (oturum açma) çalıştırmak için komutlar ekleyebilirsiniz: Çizgi> Başlangıç ​​Uygulamaları> Ekle. Bu durumda, çalıştırmak için karmaşık bir komutunuz vardır.

Bunu yapmak için iki seçenek vardır:

  1. ayrı bir komut dosyası yaz:

    #!/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
    

    Komut dosyasını boş bir dosyaya kopyalayın, farklı kaydedin set_monitor.sh ve yukarıda açıklandığı gibi uygulamaları başlatmak için aşağıdaki komutu ekleyin.

    /bin/bash /path/to/set_monitor.sh
    
  2. Komutları bir (çok uzun) komutla zincirleyin:

     /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"
    

    Bu durumda, &&komutlar arasında kullanmak , her komutun, ayrı satırlarda olduğu gibi, bir öncekinin başarılı bir şekilde çalıştırılması durumunda çalışmasını sağlar.

    Ardından, komutu yukarıda açıklandığı gibi Başlangıç ​​Uygulamaları'na ekleyin.

Önemli not: Başlangıç ​​Uygulamalarına xrandr komutları ekleme

xrandrBaşlangıçta komutlar eklemek zor olabilir; bazen masaüstü tamamen yüklenmeden çok erken çalıştırılırsa kırılırlar. Bu nedenle, komut dosyasını veya komutu çalıştırmak için (son durumda) şu komutla (muhtemelen) küçük bir mola eklemeniz gerekebilir:

/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"

En sleep 15uygun zamanı bulmak için ile biraz oynamanız gerekebilir .

Not

İlk satırı dışarıda bıraktım:

xrandr

çünkü hiçbir şey ekran kurulumunda bazı bilgileri görüntülemek :)


6
cvtModelinizi zaten biliyorsanız , komutu eklemenize gerek yoktur .
thethakuri

1
/bin/bash -c "..."Sarma :) benim için hile yaptı
Superole

Kubuntu 17.10'da, sleep"Oturum başlatmadan önce" seçeneğini seçerek komutu 'Başlangıç ​​uygulamaları' bölümünde parçası olmadan ekledim .
pat-s

1
3 yıl önce yazmak için +1 # xrandr only works in X11 sessions, not Wayland. O zamanlar iyi gelecek provaları.
WinEunuuchs2Unix

Bu çözüm nihayet Debian 10'umda iki monitörle çalıştı: Apple Thunderbolt 27 + LG 27MP59G. LG, doğal olarak yalnızca 1920x1080'i destekliyor. İle xrandrI 2560x1440 ait Tunderbolt aynı çözünürlükte kurmak /bin/bash -c "sleep 3&&xrandr --output DP-2 --auto --scale-from 2560x1440".
f0nzie

7

Göre bu en Şimdi giriş üzerine otomatik bölümünde, kendi komut yaptık 45custom_xrandr-settingsve içine yerleştirdi /etc/X11/Xsession.d/. Ubuntu 14.04 LTS altında benim için iyi çalışıyor. Aşağıdaki kodu case, o bölümde açıklanan komuttan sonra yerleştirebilirsiniz .

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;

Yukarıdakilerin aradığınız şey olduğuna inanıyorum. Mevcut çıkışları sadece xrandrkomutu çalıştırarak görebilirsiniz . Çıkışlar olabilmektedir VGA, VGA-0, DVI-0, TMDS-1ya da DisplayPort-0.

İşte yaptığım tam komut dosyası.

# 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

Dosyayı oluşturun ~/.xprofileve satırlarınızı içine yerleştirin. X kullanıcı oturumunun başında çalıştırılır.


3
bu işe yaramadı. komutlar çok erken ateş ediyor.
Necktwi

@neckTwi Teşekkürler, xrandr --output ...işe yaramadı, ancak önceki iki satır işe yaradı . Tüm bunlar benim için çalışıyor.
golopot
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.