Cara mendapatkan resolusi monitor eksternal yang ditetapkan oleh xrandr untuk bertahan

11

tl; dr

Laptop saya terus melupakan resolusi yang benar dari monitor eksternal yang terpasang padanya. Bagaimana saya bisa membuat konfigurasi "stick"?

Detail

Saya memiliki laptop yang menjalankan Linux Mint yang terpasang pada monitor ViewSonic eksternal. Saya mengaturnya untuk menggunakan monitor eksternal sebagai layar kedua (yaitu tidak dicerminkan). Ini bekerja dengan baik selama beberapa minggu.

Tiba-tiba, laptop tidak lagi mengenalinya sebagai ViewSonic, di mana saat itu ia tidak tahu resolusi optimalnya ( 1600 x 1200), hanya memungkinkan maksimum 1028 x 768. 1 Ini sama sekali tidak berfungsi dengan baik pada laptop saya, yang memiliki 1920 x 1200resolusi.

Setelah frustrasi, saya menemukan jawaban ini . Ini membantu saya untuk memperbaiki masalah, sebagai berikut (output dari cvtperintah menjadi modeline yang digunakan pada perintah berikutnya):

cvt 1600 1200
xrandr --newmode "1600x1200_60.00"  161.00  1600 1712 1880 2160  1200 1203 1207 1245 -hsync +vsync
xrandr --addmode VGA-1 1600x1200_60.00

Ini persis apa yang saya harapkan bisa saya lakukan, tetapi tidak bisa dilakukan melalui GUI. (Ada alasan mengapa saya masih menyukai baris perintah ...)

Ini sekali lagi bekerja dengan baik untuk sementara waktu. Namun, ketika saya mem-boot komputer hari ini dan masuk, saya mendapat popup area notifikasi dengan serangkaian kesalahan tentang berbagai mode percobaan yang tidak berfungsi, dan monitor eksternal dimatikan. Saya mengulangi perintah di atas, dan itu berfungsi lagi.

Saya punya kartu nVidia. Saya mencoba menginstal driver berpemilik ketika semuanya mulai serba salah, tetapi pada saat itu monitor eksternal tidak lagi dikenali sama sekali, jadi saya kembali ke driver open source. Saya tidak punya Xorg.confatau Xorg.conf.dhanya punya xorg.conf.failsafe.

Saya tidak ingin mengulangi perintah ini setiap kali saya mem-boot mesin. Apakah ada cara saya bisa menyelamatkan ini ke saya Xorg.confatau sesuatu? Sudah beberapa tahun sejak saya melakukan banyak hal dengan X. Adakah yang bisa membantu saya di sini?


1 Saya tidak dapat menentukan mengapa ini terjadi. Tebakan terbaik saya adalah pembaruan driver yang bermasalah.

Kazark
sumber
1
Kartu grafis apa yang Anda gunakan? Dan jika itu ATI / AMD atau Nvidia apakah Anda menggunakan driver berpemilik atau yang open source? Apakah saat ini Anda memiliki /etc/X11/corg.conffile atau apa saja /etc/X11/corg.conf.d? Id jadi, silakan edit pertanyaan Anda dan tambahkan konten file-file itu.
terdon
Harap edit pertanyaan Anda untuk menambahkan info tambahan, sulit dibaca dan mudah terlewatkan dalam komentar. Yang mengatakan, ya, xorg.conf tidak lagi diperlukan, hal-hal ini sekarang ditangani oleh udev.
terdon
Hanya dengan melihat pertanyaan Anda lagi dan apa yang saya lewatkan ketika saya menulis jawaban saya adalah bahwa Anda memiliki laptop. Apa yang Anda mungkin ingin melihat adalah menulis udevaturan untuk memanggil skrip untuk melakukan xrandr setiap kali monitor dicolokkan atau dicabut, ini akan jauh lebih baik id komputer Anda tidak selalu terpasang ke monitor. Kalau tidak, jika Anda senang mengaturnya di tempat yang sama sepanjang waktu, Xorg.confadalah cara untuk melakukannya.
Graeme

Jawaban:

5

Saya yakin ada cara yang lebih baik, saya pikir ini semua ditangani udevsekarang tetapi jika Anda tahu bahwa perintah itu akan menyelesaikannya, Anda selalu bisa membuatnya menjadi skrip:

#!/usr/bin/env bash
cvt 1600 1200
xrandr --newmode "1600x1200_60.00"  161.00  1600 1712 1880 2160  1200 1203 1207 1245 -hsync +vsync
xrandr --addmode VGA-1 1600x1200_60.00

Jadikan itu dapat dieksekusi dan kemudian tambahkan ke aplikasi startup Lingkungan Desktop Anda. Ini mungkin pilihan terbaik jika DE Anda memberi Anda opsi.


Jika Anda tidak dapat melakukan hal di atas, sebagai peretasan yang kotor Anda dapat menambahkannya ke ~/.profile:

if [ ! -t 0 ] 
then
    cvt 1600 1200
    xrandr --newmode "1600x1200_60.00"  161.00  1600 1712 1880 2160  1200 1203 1207 1245 -hsync +vsync
    xrandr --addmode VGA-1 1600x1200_60.00
fi

The if [ ! -t 0 ]harus memastikan ini hanya berjalan di GUI dan .profilebersumber oleh manajer login mint sebagai saya ingat.

Sekarang, Anda harus juga dapat menggunakan ~/.xsessiontetapi saya punya masalah dengan itu diabaikan. Banyak pendekatan lama diganti dan saya tidak yakin seperti apa keadaannya.

terdon
sumber
Anda tidak harus menggunakan cvt 1600 1200 karena kami sudah menggunakan outputnya di dua baris berikutnya.
PraveenMax
4

Jika Anda menggunakan driver berpemilik Nvidia maka nvdia-settingsharus menjadi alat GUI untuk mengkonfigurasi Xorg.conffile. Seharusnya memiliki paket sendiri di Linux Mint, jadi menginstalnya semudah:

sudo apt-get install nvidia-settings

Ini akan menempatkan ikon di menu Anda di suatu tempat, Anda dapat menjalankannya dari sana (meskipun saya tidak yakin bagaimana Anda mendapatkannya memiliki izin root). Dari baris perintah, saya yakin Anda bisa melakukannya:

sudo /usr/lib/nvidia/current/nvidia-settings

Jika Anda ingin melakukan baris perintah, maka nvidia-xconfigsepertinya itu adalah alat untuk digunakan ( nvidia-xconfigpaket untuk saya). Bagaimanapun Anda biasanya akan mendapatkan hasil yang lebih baik dengan driver berpemilik jika dikonfigurasi dengan benar. Alat-alat ini setidaknya akan menghasilkan Xorg.conffile yang masuk akal yang dapat Anda sesuaikan baik secara langsung atau melalui salah satu dari program ini.

Graeme
sumber