Xrandr özelleştirmesini nasıl kalıcı yapabilirim?


65

Ekran çözünürlüğümü kalıcı olarak değiştirmek için GDM'nin başlangıç ​​komut dosyasını (/ etc / gdm / Init / Default) düzenlerdim.

Bunu Ubuntu Oneiric'deki LigthDM ile nasıl yapabilirim?


ana klasörünüzdeki .xprofile komutunu ekleyin. Bkz askubuntu.com/questions/63863/... çözünürlük ayarlama ve .xprofile ekleyerek için temel bir kılavuz için
duffydack

Yanıtlar:


21

Ekran modlarını ekleyebileceğinizi düşünüyorum /etc/X11/xorg.conf.

Eğer yoksa xorg.conf, aşağıdakileri temel olarak kullanabilirsiniz. Sen isimlerle girişlerini değiştirmeniz gerekiyor Modeline, Driverve Modessisteminiz için doğru girişlerle. Donanımınıza bağlı olarak, örneğin sisteminizde birden fazla grafik yongası varsa, ek girişlere ihtiyacınız olabilir.

Section "Monitor"
    Identifier    "Monitor0"
    Modeline "1280x1024_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
    Modeline "1024x768_60.00"   63.50  1024 1072 1176 1328  768 771 775 798 -hsync +vsync
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Card0"
    Monitor        "Monitor0"
    SubSection "Display"
        Modes       "1280x1024_60.00" "1024x768_60.00"
    EndSubSection
EndSection

Section "Device"
    Identifier    "Card0"
    Driver        "nvidia"
EndSection

Sisteminizin kullandığı video sürücüsünün adını bilmiyorsanız, adı aşağıdaki gibi alabilirsiniz (intel grafik yonganız varsa, sürücü adı yalnızca "intel" dir):

lshw -class display | grep "driver"

Modelinler şununla oluşturulabilir cvt:

cvt <h-resolution> <v-resolution> [refresh]

Bunu denedim ve bir nedenden ötürü açılmadı. cvtKomuta üretilen sürücüyü, diğerinden olan sürücüyü kullandım (ve vesaçok denedik ), fakat sadece hata mesajı vermedi. Jon Roberts'ın çözümü benim için mükemmel bir şekilde çalıştı ve burada bahsettiğiniz video kartı sürücüsü gibi yeniliklerden bağımsız olarak kolayca başa çıkabiliyor, bu yüzden cevabını oy veriyorum.
Mike

1
Bu - rotate gibi bir şey için yardımcı görünmüyor.
Jherico

2
Bu cevap modası geçmiş. John Roberts Cevaplarına
con-f-use

+1 Mükemmel-o! GDM w / 3. Gnome kullanarak, ve bu benim GDm'mi 1080p monitörleri tanımak için kullandı. Teşekkür ederim!
eduncan911

Bilgisayarımda lshwçıktı i915, ancak doğru sürücü intel.
user202729

63

/etc/lightdm/lightdm.confAşağıdaki seçenekleri eklemek için değiştirin :

display-setup-script> giriş ekranı görünmeden önce mycustomloginvideo.sh dosyasını çağırır.

session-setup-script> kullanıcı masaüstü oturumu başlamadan önce mycustomdesktopvideo.sh dosyasını çağırır

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
# for your login screen, e.g. LightDM (Ubuntu 11.10) or GDM (11.04 or earlier)
display-setup-script=/usr/share/mycustomloginvideo.sh
# for your desktop session
session-setup-script=/usr/share/mycustomdesktopvideo.sh

Şu anki oturumunuzun X konfigürasyonundan parametreleri seçerek "arandr" gui aracının yukarıdaki sh komut dosyasını oluşturmasını sağlayabilirsiniz.

Kabuk komut dosyanızın çalıştırılabilir olduğundan emin olun:

chmod a+x /usr/share/mycustom*video.sh

ve çalışıp çalışmadığını (yani xrandr komutunuzda yazım hatası veya yapılandırma hatası olmadığını) yalnızca bir terminalde çalıştırarak test edebilirsiniz:

/usr/share/mycustomdesktopvideo.sh

Giriş betiği herhangi bir nedenle çalışmazsa, makineniz giriş ekranına önyükleme işlemini tamamlayamayabilir. Masaüstü betiği başarısız olursa, giriş yaptıktan sonra bir masaüstüne sahip olamayabilirsiniz. Harici bir monitör ayarlıyorsanız, bu betiğin bağlantısını kestiğinizde başarısız olur ve X oturumu başlamaz.


Mdm kullanarak Nane 13 XFCE için, / etc / mdm / Init / Default düzenleyin. Komut dosyanızı "exit 0" dan önce arayın
StackUnder

Evnn, Fedora'da çalışıyor ... sadece Xfce'in display-setup-scriptzaten ekran ayarları tarafından ayarlandığı için betiğe ihtiyacı vardı, bu yüzden session-setup-scriptbeni giriş ekranına bıraktı .
Wilf

10

Bazıları benim için işe yaramadığını söylememe rağmen, başka bir geçici çözüm yayınladı. Muhtemelen sizin için işe yarayabilir. Benim durumumda birliği kırar ve sadece fare imlecini hareket ettirebilirim. Uygulama göstergesi üst paneli boş görünüyor, ancak LCD'mi çıkardıktan sonra eklenen satırları silebildim ve her şey normale döndü.

dosyayı düzenle /usr/sbin/lightdm-session

İşte bu dosyanın ilk kısmı şimdi nasıl görünüyor:

#!/bin/sh
#
# LightDM wrapper to run around X sessions.

echo "Running X session wrapper"

# Load profile
for file in "/etc/profile" "$HOME/.profile" "/etc/xprofile" "$HOME/.xprofile"; do
  if [ -f  "$file" ]; then
     echo "Loading profile from $file";
     . "$file"
  fi
done

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

# Load resources

Xrandr ayarlarının sizinkiyle eşleşmesi için değiştirilmesi gerektiğini unutmayın.


Bu çözüm eski bir makinede lubuntu 17.x için harika çalıştı. Yalnızca oturumu etkiler, böylece karşılama oturum açma ekranı istenen çözünürlükte görüntülenmez.
Laconbass

6

Bir süredir benzer bir sorunu çözmeye çalışıyorum ve benim için işe yarayan bir çözüm buldum, umarım yardımı dokunur ...

Eskiden bir AOA110'a sahip bir adayım var, ekranı çok fazla kırmıştım ve yeni bir dizüstü bilgisayar satın aldıktan sonra onu HTPC'ye dönüştürmeye karar verdim ancak sahip olduğum harici ekran X tarafından tanınmıyor, bu yüzden Doğru çözünürlükte çalışmasını sağlamak için defalarca 'ince ayar yapın'.

İşte yaptığım şey:

Bunu kullandıktan sonra http://ubuntuforums.org/showthread.php?t=1112186 5. adıma kadar öğretici xrandr'da çalışan ve kabul edilebilir bir çözünürlük bulabildim, ancak bu LightDM giriş ekranında işe yaramadı.

Nasıl işe yarayabileceğini yukarıda ısrarla yapmak için adımları takip etmeyin ama bunun 11.10'da yapmanın doğru yolu olduğunu düşünüyorum. Bu yazıyı ihtiyaçlarıma uyarladığım https://wiki.archlinux.org/index.php/Xorg adresinde ArchWiki'de buldum .

İlk önce burada bir dosya oluşturun: /etc/X11/xorg.conf.d/10-monitor.conf

Ardından, ekranınıza uygun X ayrıntılarını, madenin nasıl göründüğünü buraya ekleyin:

Section "ServerLayout"
Identifier     "DualSreen"
Screen       0 "Screen0"
Screen       1 "Screen1" RightOf "Screen0" #Screen1 at the right of Screen0
#Option         "Xinerama" "1" #To move windows between screens
EndSection

Section "Monitor"
Identifier     "LVDS1"
Option         "ignore" "true"
EndSection

Section "Monitor"
Identifier     "VGA1"
Option         "Enable" "true"
Modeline "1440x900_60.00"  106.47  1440 1520 1672 1904  900 901 904 932  -HSync +Vsync
EndSection

Section "Device"
Identifier     "Device0"
Driver         "intel"
Screen         0
EndSection

Section "Device"
Identifier     "Device1"
Driver         "intel"
Screen         1
EndSection

Section "Screen"
Identifier     "Screen0"
Device         "Device0"
Monitor        "VGA1"
DefaultDepth    24
Option         "TwinView" "0"
SubSection "Display"
    Depth          24
    Modes          "1440x900_60.00"
EndSubSection
EndSection

Section "Screen"
Identifier     "Screen1"
Device         "Device1"
Monitor        "LVDS1"
DefaultDepth   24
Option         "TwinView" "0"
SubSection "Display"
    Depth          24
EndSubSection
EndSection

Eklenecek önemli bitler uygunların altındadır, kullanırken bulduğunuz Section "Monitor"uygun Modelineolanı gtf 1440 900 60.00ve daha sonra Section "Screen"doğru olanı içeren karşılık gelenları içerir Modes.

Yapmaya çalıştığım şeyin yalnızca VGA1 bağlantısını uygun bir çözünürlüğe ayarlamak değil, LVDS1 çıkışımı kullanmamasını söylemek olduğunu fark edeceksiniz. Açıkçası, kurulumunuzun doğru sayıda çıktısını ve doğru Aygıt, Ekran ve Ekran bölümlerini eşleştirmek için sizinkileri uygun şekilde ayarlamanız gerekecektir.

Epic post için üzgünüm, bir süredir xorg.conf dosyalarını, şimdiye kadar kullandığım Hannspree ekranı ve önceki 11.10'da kullandığım eski xorg.conf ayarları ile çimdikledim. Ben işe yarayan tek çözüm buldum.

İyi şanslar!


Kullanımı xrandr -qsize hangi ekranın kullanıldığı ve olası Modlar hakkında doğru bilgileri vermelidir.
faithinfriction

Temel bir yapılandırma dosyası çalışan oluşturulabilir Xorg :1 -configurebu kopyalanabilir - Yeni bir X sunucusu yapar ve ondan bir yapılandırma dosyası oluşturur, /root/xorg.conf.newiçin /etc/X11/xorg.conf. Daha iyi bir yol buldum yukarıdaki cevaptı
Wilf

5

Dizüstü bilgisayarımda yukarıdakilerle benzer bir sorun yaşadım ve sohbete bir şey eklemek istedim. Giriş çözünürlüğünü umursamıyorsanız (umurumda değil), ancak gerçek çalışma alanının doğru çözünürlük olmasını istiyorsanız, monitör bilgilerinizi LightDM'e ekleyebilirsiniz ancak giriş yapana kadar tam çözünürlüğü açamazsınız.

Monitörüm için aşağıdaki betiği bir dosyaya ekledim: lighdmxrandr

xrandr --newmode "1440x900_60.00"  106.50  1440 1528 1672 1904  900 903 909 934 -hsync +vsync
xrandr --addmode VGA1 1440x900_60.00

sonra onu ararım /etc/lightdm/lightdm.conf

display-setup-script=/usr/bin/lightdmxrandr

Giriş yaptıktan sonra monitörümü Ekranlar'da ayarlayabilirim ve yeniden oturum açtıktan sonra bile çalışıyor (bana çok çirkin bir hata verirdi).


Bu istenildiği gibi çalıştı ancak yeniden giriş yapmamak için yeniden başlatılması gerekiyordu ...
CrandellWS

4

Jon Roberts'ın cevabı için bir geliştirme olarak, arandr'ın mevcut senaryoda çalışan tüm parametreleri sh script nesnesine dahil etmediğini belirteyim. Birincil monitör (çift monitör yapılandırması kullanıyorsanız), her monitör için yenileme hızı ve gama ayarları dahil değildir. Oturum betiğim şuna benziyor:

#!/bin/sh
xrandr --output LVDS --mode 1366x768 --pos 1600x432 --rotate normal --output HDMI-0 --off --output DVI-0 --off --output VGA-1 --mode 1600x1200 --rate 85 --pos 0x0 --rotate normal --primary
xrandr --output VGA-1 --gamma 0.8:0.7:0.55 

İlk hatta manuel olarak --rate ve --primary seçeneklerini ekledim ve daha sonra manuel olarak gama düzeltmesiyle ikinci bir çizgi ekledim, çünkü bir monitörü primer konumuna getirdiğinizde görünüşte xrandr gama ayarları kayboluyor .

Bir monitör hazırlanırken gama ayarlarıyla ilgili bu özel davranışın amaçlanıp amaçlanmadığını bilmiyorum.

Ayrıca, oturum kabuğu betiği lightdm tarafından değil, başlangıç ​​uygulaması olarak adlandırılır, çünkü lightdm, xrandr için işler hazır olmadan önce garip şeyler olur ve garip şeyler olur.


4

Yeni LXDE kutumda (çift klon değil) genişletilmiş bir ekran isteme sorununu doğru komutu buldum ancak kalıcı hale getiremedi.

xrandr --output VGA-0 --right-of DVI-0

Yukarıdaki yöntemlerin hepsi, bunu yapmanın doğru yolu olarak çok zor değildi.

Sonunda bunu buldum: http://www.sudo-juice.com/change-lxde-screen-resolution-ubuntu-lubuntu/

Bu bir tedavi çalıştı, ancak bunun yerine gedit kullandım:

gksu gedit /etc/xdg/lxsession/LXDE/autostart

Ardından, satırın sonuna, başında bir @ simgesi eklenir:

@xrandr --output VGA-0 --right-of DVI-0

Bu yardımcı olur ve sudo-meyve suyu için teşekkür ederim.

PS -xrandr komutundaki çifte dikkat edin --(ekranımda çok net görünmedi).


2

Yeni belge oluştur ve onu örn isim /home/yourusername/yourscriptname.sh yazın

#!/bin/bash
xrandr --newmode "1600x900_60.00"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync
xrandr --addmode VGA1 1600x900_60.00
xrandr --output VGA1 --mode 1600x900_60.00
unity --replace

ve ana klasörünüze kaydedin (bu, çözünürlüğü 1600x900 olarak ayarlar)

Başlangıç ​​Uygulamaları'nı açın (veya çalıştırın gnome-session-properties) ve "EKLE" yi tıklayın. Bir isim verin ve komut satırına yazın:

bash /home/yourusername/yourscriptname.sh

Kaydedin ve şimdi komut dosyası şimdi her oturum açışınızda çalıştırılacak, bu nedenle etkin olması için önce oturumu kapatmanız gerekir. Komutu (örn. bash /home/yourusername/yourscriptname.sh) Bir terminalde çalıştırmak, betiğin çalışıp çalışmadığını kontrol etmek için iyi bir fikir olacaktır.


Bu (burada silinmişse) bu sorunun OP'si tarafından burada yerine burada yazıldığı gibi düzenlenmiştir - orijinal biçimlendirmeyi geri yükledim; Muhtemelen doğru yapılandırmayı elde etmek için kullanılan xrandr komutları ile değiştirilir.
Wilf

Çift monitörlü ekranımda, HDMI-0 ekranım için EDID okunuyor, ancak DVI-0 için EDID okunmuyor. Depolanan bir config betiğine işaret etmek /usr/binişe yaramadı, ancak bu betiği başlangıç ​​uygulamalarıma eklemek gnome-session-propertiesde başarılı oldu!
noobninja

1

Tepkiler temelinde, bazı testler yaptım ve bana işe yarayan yararlı bir yöntem buldum, sonra otomatik yüklemelerimle otomatikleştirmek için basit bir komut dosyası oluşturdum. Ancak başka herhangi bir durumda da işe yarayacak.

Bir scriptinstallxrandrfixed.sh oluşturun Bu satırları ekleyin:

#Variables for lightdm script and xrandr script to setup fixed resolution for old displays: 
xrandrscript=/usr/local/bin/xrandrscript.sh
lightdmstartscript=/usr/share/lightdm/lightdm.conf.d/60-xrandrscript.conf

 #Added old style configuration for lightdm: 
 sudo  ln -s /usr/share/lightdm/lightdm.conf.d /etc/lightdm/lightdm.conf.d
 #A fix to some old displays in high school at Fray Bentos, fix to 1024x768
 #Some useful information comes from: http://askubuntu.com/questions/63681/how-can-i-make-xrandr-customization-permanent
 sudo sh -c "echo '[SeatDefaults]' > $lightdmstartscript"
 # for your login screen, e.g. LightDM (Ubuntu 11.10) or GDM (11.04 or earlier)
 sudo sh -c "echo 'display-setup-script=$xrandrscript' >> $lightdmstartscript"
 # for your desktop session
 sudo sh -c "echo 'session-setup-script=$xrandrscript' >> $lightdmstartscript"
 sudo sh -c "echo 'xrandr --size 1024x768 --rate 60.0' > $xrandrscript"
 sudo chmod +x $xrandrscript

lightdm ekranı ve oturumu için komut dosyaları ve dosyalar yaratacaktır. yürütmesine izin vermeyi unutma

chmod + x scriptinstallxrandrfixed.sh

Ve yürüt

./scriptinstallxrandrfixed.sh (dosyanın bulunduğu dizine yerleştirilmelisiniz.)

aynı dizinde değilse: /path/to/script/scriptinstallxrandrfixed.sh

İhtiyaçlarınızı ayaklarınıza değiştirin. Saygılarımla. Pablo.

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.