Bagaimana saya bisa membuat kustomisasi xrandr menjadi permanen?

65

Saya biasa mengedit skrip startup untuk GDM (/ etc / gdm / Init / Default) untuk secara permanen mengubah resolusi tampilan saya.

Bagaimana saya bisa melakukan ini dengan LigthDM di Ubuntu Oneiric?

Edocastillo
sumber
tambahkan ke .xprofile di folder rumah Anda. Lihat askubuntu.com/questions/63863/… untuk panduan dasar untuk mengatur resolusi dan menambahkan ke .xprofile
duffydack

Jawaban:

21

Saya pikir Anda dapat menambahkan mode tampilan ke /etc/X11/xorg.conf.

Jika Anda tidak memiliki xorg.conf, maka Anda dapat menggunakan yang berikut sebagai dasar. Anda perlu mengganti entri dengan nama Modeline, Driverdan Modesdengan entri yang benar untuk sistem Anda. Bergantung pada perangkat keras Anda, Anda mungkin perlu entri tambahan, misalnya jika sistem Anda memiliki lebih dari satu chip grafis.

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

Jika Anda tidak tahu nama driver video yang digunakan sistem Anda, maka Anda bisa mendapatkan nama sebagai berikut (jika Anda memiliki chip grafis intel, nama drivernya hanya "intel"):

lshw -class display | grep "driver"

Modelines dapat dihasilkan dengan cvt:

cvt <h-resolution> <v-resolution> [refresh]
Nimmermehr
sumber
Saya mencoba ini dan itu tidak mau boot karena alasan tertentu. Saya menggunakan modeline yang dihasilkan dari cvtperintah dan driver dari yang lain (dan mencoba vesajuga), tetapi hanya tergantung tanpa pesan kesalahan. Solusi Jon Roberts bekerja sempurna untuk saya dan tidak tergantung pada hal-hal seperti driver kartu video yang Anda sebutkan di sini yang dapat dengan mudah salah bagi pemula, jadi karena itu saya memilih jawabannya.
Mike
1
Ini sepertinya tidak membantu untuk hal seperti --rotate.
Jherico
2
Jawaban ini sudah usang. Lihat John Roberts Answer
gunakan con
+1 Sempurna-o! Menggunakan GDM dengan Gnome 3.16, dan ini membuat GDm saya mengenali monitor 1080p. Terima kasih!
eduncan911
Di komputer saya, lshwoutput i915, namun driver yang benar intel.
user202729
63

Ubah /etc/lightdm/lightdm.confuntuk menambahkan opsi berikut:

display-setup-script> panggil mycustomloginvideo.sh Anda sebelum layar login muncul

session-setup-script> panggil mycustomdesktopvideo.sh Anda sebelum sesi desktop pengguna dimulai

[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

Anda mungkin memiliki alat gui "arandr" menghasilkan skrip sh di atas, memilih parameter dari konfigurasi X sesi Anda saat ini.

Pastikan skrip shell Anda dapat dieksekusi:

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

dan Anda dapat mengujinya apakah berfungsi (yaitu bahwa Anda tidak memiliki kesalahan ketik atau konfigurasi apa pun dalam perintah xrandr Anda) hanya dengan menjalankannya di terminal:

/usr/share/mycustomdesktopvideo.sh

Jika skrip login tidak berfungsi karena alasan apa pun, mesin Anda mungkin tidak menyelesaikan proses booting ke layar login. Jika skrip desktop gagal, Anda mungkin tidak mendapatkan desktop setelah masuk. Jika Anda mengatur monitor eksternal, skrip ini akan gagal saat Anda mencabutnya, dan sesi X tidak akan dimulai.

Jon Roberts
sumber
Untuk Mint 13 XFCE menggunakan mdm, edit / etc / mdm / Init / Default. Panggil skrip Anda sebelum "keluar 0"
StackUnder
Evnn bekerja di Fedora ... hanya membutuhkan display-setup-scriptscript karena Xfce sudah diatur oleh pengaturan tampilan, jadi session-setup-scriptsaya baru saja membuangnya di layar login.
Wilf
10

Seseorang memposting solusi lain, meskipun saya harus mengatakan itu tidak bekerja untuk saya. Mungkin bisa bekerja untuk Anda. Dalam kasus saya itu merusak kesatuan dan saya hanya bisa menggerakkan kursor mouse saya. Panel atas indikator aplikasi terlihat kosong, tetapi setelah mencabut LCD saya, saya dapat menghapus baris yang ditambahkan dan semuanya kembali normal.

edit file /usr/sbin/lightdm-session

Inilah tampilan bagian pertama file itu sekarang:

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

Perhatikan bahwa pengaturan Xrandr harus diubah agar sesuai dengan Anda.

Meconio
sumber
Solusi ini bekerja sangat baik untuk lubuntu 17.x pada mesin lama. Ini hanya memengaruhi sesi, sehingga layar masuk yang lebih hangat tidak ditampilkan dengan resolusi yang diinginkan.
laconbass
6

Saya telah mencoba untuk memecahkan masalah yang sama untuk sementara waktu sekarang dan menemukan solusi yang berfungsi untuk saya jadi semoga ini akan membantu ...

Saya memiliki aspirasi lama AOA110 yang telah saya hancurkan layar terlalu sering dan setelah membeli laptop baru memutuskan bahwa saya akan mencoba mengubahnya menjadi HTPC tetapi tampilan eksternal yang saya miliki tidak dikenali oleh X jadi saya harus 'tweak' berkali-kali untuk membuatnya bekerja pada resolusi yang benar.

Inilah yang saya lakukan:

Setelah menggunakan http://ubuntuforums.org/showthread.php?t=1112186 tutorial hingga langkah 5, saya dapat menemukan resolusi yang berfungsi dan dapat diterima di xrandr tetapi ini tidak berfungsi pada layar login LightDM.

Jangan ikuti langkah-langkah untuk membuatnya bertahan di atas bagaimana cara kerjanya tapi saya pikir ini adalah cara yang tepat untuk melakukannya di 11.10. Saya menemukan posting ini di ArchWiki https://wiki.archlinux.org/index.php/Xorg yang saya sesuaikan dengan kebutuhan saya.

Pertama buat file di sini: /etc/X11/xorg.conf.d/10-monitor.conf

Kemudian tambahkan detail X yang sesuai untuk tampilan Anda di sini adalah tampilan saya:

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

Bit penting untuk ditambahkan berada di bawah yang sesuai Section "Monitor"termasuk yang sesuai Modelineyang Anda temukan saat menggunakan gtf 1440 900 60.00dan kemudian di bawah yang sesuai Section "Screen"termasuk yang benar Modes.

Anda akan melihat bahwa apa yang saya coba lakukan adalah tidak hanya mengatur koneksi VGA1 ke resolusi yang sesuai tetapi juga mengatakan untuk tidak menggunakan output LVDS1 saya. Tentunya Anda perlu mengubah milik Anda dengan tepat untuk mencocokkan jumlah output yang tepat dan bagian Perangkat, Layar dan Tampilan yang tepat untuk pengaturan Anda.

Maaf untuk postingan epik, saya telah men-tweak file xorg.conf untuk beberapa waktu sekarang dengan tampilan Hannspree yang saya gunakan dan setup xorg.conf lama yang saya gunakan sebelum 11.10 hanya tidak berfungsi dengan baik lagi ini adalah hanya solusi yang saya temukan yang berfungsi.

Semoga berhasil!

pelanggaran keyakinan
sumber
Menggunakan xrandr -qharus memberi Anda informasi yang tepat di mana tampilan sedang digunakan dan Mode yang mungkin.
faithinfriction
File konfigurasi dasar dapat dihasilkan dengan menjalankan Xorg :1 -configure, yang membuat server X baru dan menghasilkan file konfigurasi darinya - ini dapat disalin dari /root/xorg.conf.newke /etc/X11/xorg.conf. Saya menemukan cara yang lebih baik adalah jawaban di atas
Wilf
5

Saya memiliki masalah yang sama dengan laptop saya seperti di atas, dan saya ingin menambahkan sesuatu ke percakapan. Jika Anda tidak peduli dengan resolusi login (saya tidak), tetapi ingin ruang kerja yang sebenarnya menjadi resolusi yang tepat, Anda dapat menambahkan informasi monitor Anda ke LightDM tetapi tidak mengaktifkan resolusi penuh sampai Anda login.

Saya baru saja menambahkan skrip berikut untuk monitor saya di file: lighdmxrandr

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

lalu saya menyebutnya /etc/lightdm/lightdm.conf

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

Setelah saya login, saya dapat mengatur monitor saya di Display dan berfungsi, bahkan setelah saya login kembali (digunakan untuk memberi saya kesalahan besar yang jelek).

Karl
sumber
Ini berfungsi seperti yang diinginkan tetapi harus reboot tidak login ulang ...
CrandellWS
4

Sebagai tambahan untuk jawaban Jon Roberts, izinkan saya menentukan bahwa arandr tidak termasuk dalam pembuatan skrip sh semua parameter yang bekerja di sesi saat ini. Monitor utama (jika Anda menggunakan konfigurasi dua monitor), pengaturan refresh rate dan gamma untuk setiap monitor tidak termasuk, misalnya. Script sesi saya terlihat seperti itu:

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

Saya secara manual menambahkan opsi --rate dan --primary di baris pertama dan kemudian menambahkan secara manual baris kedua dengan koreksi gamma karena pengaturan gamma tampaknya xrandr hilang setiap kali Anda mengganti monitor ke primer .

Saya tidak tahu apakah perilaku khusus ini dengan pengaturan gamma saat membuat monitor utama dimaksudkan atau bug.

Selain itu script shell sesi tidak dipanggil oleh lightdm tetapi sebagai aplikasi startup, karena tampaknya lightdm memanggil script sebelum semuanya siap untuk xrandr dan hal-hal aneh terjadi.

Hermes
sumber
4

Saya memiliki masalah menginginkan tampilan yang diperluas pada kotak LXDE baru saya, (bukan klon ganda), menemukan perintah yang benar, tetapi tidak bisa membuatnya permanen.

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

Semua metode di atas kelihatannya terlalu sulit / bukan cara yang tepat untuk melakukannya.

Saya akhirnya menemukan ini: http://www.sudo-juice.com/change-lxde-screen-resolution-ubuntu-lubuntu/

Itu berhasil, tetapi saya menggunakan gedit:

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

Kemudian tambahkan baris di akhir dengan simbol @ di awal:

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

Semoga itu bisa membantu dan terima kasih untuk jus sudo.

PS. Perhatikan double -dalam perintah xrandr --(tidak muncul terlalu jelas di layar saya).

abisdad
sumber
2

Buat dokumen baru dan beri nama misalnya /home/yourusername/yourscriptname.sh Ketik

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

dan simpan di folder rumah Anda (ini menetapkan resolusi ke 1600x900)

Buka Aplikasi Startup (atau jalankan gnome-session-properties) dan klik "ADD". Beri nama dan ketik di baris perintah:

bash /home/yourusername/yourscriptname.sh

Simpan, dan sekarang skrip akan dijalankan sekarang setiap Anda masuk, jadi Anda harus keluar terlebih dahulu agar bisa berlaku. Menjalankan perintah (misalnya bash /home/yourusername/yourscriptname.sh) di terminal juga merupakan ide bagus untuk memeriksa apakah skrip berfungsi.

Nikhil
sumber
Ini diedit (sebagai gantinya jika dihapus) oleh OP dari jawaban ini karena telah diposting di sini alih-alih di sini - saya mengembalikan format asli karena ini mungkin berguna karena seharusnya mengembalikan konfigurasi xrandr saat login - isi skrip bash harus mungkin diganti dengan perintah xrandr yang digunakan untuk mendapatkan konfigurasi yang tepat.
Wilf
Pada layar dual-monitor saya, EDID untuk layar HDMI-0 saya sedang dibaca, tetapi EDID untuk DVI-0 saya tidak sedang dibaca. Menunjuk ke skrip konfigurasi yang disimpan di /usr/bintidak berfungsi, tetapi menambahkan skrip itu ke aplikasi startup saya gnome-session-propertiesberhasil!
noobninja
1

Berdasarkan tanggapan di atas, saya telah melakukan beberapa tes dan menemukan metode yang berguna yang berfungsi untuk saya, kemudian saya telah membuat skrip sederhana untuk mengotomatiskannya dengan instalasi otomatis saya. Tapi itu akan berhasil pada kasus lain.

Buat scriptinstallxrandrfixed.sh Tambahkan baris ini:

#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

itu akan membuat skrip dan file untuk tampilan dan sesi lightdm. jangan lupa untuk memberikannya izin untuk dieksekusi

chmod + x scriptinstallxrandrfixed.sh

Dan jalankan

./scriptinstallxrandrfixed.sh (Anda harus ditempatkan di direktori yang sama di mana Anda memiliki file.)

jika tidak di direktori yang sama: /path/to/script/scriptinstallxrandrfixed.sh

Ubah sesuai kebutuhan Anda. Salam Hormat. Pablo.

pablodav
sumber