Mengapa pengeditan lightdm.conf saya tidak memengaruhi resolusi layar desktop saya?

13

Saya ingin mengubah resolusi layar desktop saya menjadi 1366x768. Tapi VESA drivers(AMD REDWOOD)resolusi saya tidak terdeteksi. Jadi saya membuat skrip shell sebagai berikut: -

xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync  
xrandr --addmode DVI-0 1368x768_60.00  
xrandr --output DisplayPort-0 --off --output DVI-0 --mode 1368x768_60.00 --pos 0x0 --rotate normal --output HDMI-0 --off

Aku disimpan sebagai lightdmxrandr.shdalam /usr/bindan membuatnya dieksekusi. Kemudian saya menambahkan baris berikut ke /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf(yang setara dengan yang terkenal /etc/lightdm/lightdm.conf. Saya menggunakan file di atas karena saya pada 14,04 di mana tidak ada /etc/lightdm/lightdm.conf.): -

greeter-session=unity-greeter  
display-setup-script=/usr/bin/lightdmxrandr.sh  
session-setup-script=/usr/bin/lightdmxrandr.sh

dan menyimpannya. Secara teori, ini seharusnya mengubah resolusi layar login dan resolusi layar desktop menjadi 1366x768. Namun anehnya ini hanya mengubah resolusi layar login. Resolusi desktop tidak diubah. Kemudian saya menambahkan skrip ke aplikasi Startup dan itu mengubah resolusi desktop saya.

Jadi saya ingin tahu mengapa suntingan yang saya buat ke lightdm.conffile (atau lebih tepatnya 50-ubuntu.conffile) tidak mempengaruhi resolusi desktop saya. Apakah ini semacam bug yang harus dilaporkan di launchpad atau salah dengan mengatakan bahwa pengeditan di lightdm akan memengaruhi layar desktop?

PS: - Menurut saya ini bukan hanya spesifik untuk Ubuntu 14.04.

VenkiPhy6
sumber

Jawaban:

11

Saya mencoba hal serupa dan setelah beberapa debug saya pikir saya tahu apa yang terjadi. Naskah Anda mungkin sudah dijalankan dan mungkin tidak mengatur resolusi dengan benar. Namun, karena dijalankan oleh manajer login, ini berjalan sebelum Unity selesai mengatur lingkungan desktop Anda dan Unity membaca pengaturannya sendiri dan mereset resolusi ke apa yang Anda miliki. Jadi, saya pikir yang terjadi adalah:

  1. lightdm menjalankan skrip Anda dengan benar
  2. Ini menentukan resolusi yang Anda inginkan
  3. Unity diluncurkan, membaca pengaturannya dan kembali ke resolusi default yang Anda miliki di sana
  4. Resolusi Anda kembali ke apa sebelumnya

Sekarang, ini terjadi karena driver VESA tidak mendeteksi resolusi yang Anda inginkan secara otomatis. Ini berarti bahwa ketika Anda mengubah resolusi dari bagian Displays dari pengaturan Unity, Anda memberikan resolusi yang tidak tersedia kecuali Anda menjalankan xrandrperintah. Oleh karena itu, ini diabaikan saat Anda memulai ulang dan Unity kembali ke resolusi default.

Jadi, apa yang perlu Anda lakukan adalah membuat resolusi tersedia untuk Unity, kemudian atur sebagai default dan biarkan mengatasinya. Untuk melakukannya, Anda harus terlebih dahulu menambahkan baris ini ke /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf:

session-setup-script=/usr/bin/lightdmxrandr.sh

Kemudian, pastikan itu /usr/bin/lightdmxrandr.shterlihat seperti ini:

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

Perhatikan bahwa saya sebenarnya tidak mengatur resolusi, hanya membuatnya tersedia. Setelah Anda melakukan restart ini, kemudian login. Resolusi baru sekarang akan tersedia di Pengaturan => Menampilkan. Jika demikian, pilih di sana, keluar dan masuk kembali dan resolusinya harus ditetapkan dengan benar. Sekarang harus tetap di seluruh reboot.


Pendekatan alternatif:

  1. Buat /etc/X11/xorg.conffile yang mencantumkan resolusi yang Anda inginkan. Sesuatu seperti ini:

    Section "Monitor"
        Identifier    "Monitor0"
        Modeline "1368x768_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
    EndSection
    
    Section "Screen"
        Identifier     "Screen0"
        Device         "Card0"
        Monitor        "Monitor0"
        SubSection "Display"
            Modes       "1368x768_60.00"
        EndSubSection
    EndSection
    
    Section "Device"
        Identifier    "Card0"
        Driver        "vesa"
    EndSection
    
  2. Tambahkan skrip yang menjalankan xrandrperintah ke aplikasi startup sesi Anda.

terdon
sumber
Mengedit file di bawah /usr/share/lightdm/lightdm.conf.d/ adalah cara yang salah untuk mengubah lightdm.conf. Halaman proyek LightDM mengatakan bahwa admin sistem dapat mengganti konfigurasi default di /etc/lightdm/lightdm.conf.d/ atau /etc/lightdm/lightdm.conf Anda tidak boleh mengedit file di bawah / usr / share / lightdm / karena sementara itu mungkin bekerja untuk sementara waktu itu akan ditimpa oleh pembaruan paket Sumber: halaman proyek LightDM freedesktop.org/wiki/Software/LightDM Harap perbaiki jawaban Anda
happyskeptic
3
Saya tidak memiliki reputasi yang cukup untuk menambahkan komentar sederhana, tetapi saya ingin menunjukkan bahwa file sh perlu diberikan izin untuk dieksekusi. OP menyebutkan bahwa ia telah melakukan ini, tetapi jawaban terdon tidak memasukkannya dalam langkah-langkah. Jika tidak dapat dieksekusi maka Anda harus turun ke command prompt karena tidak akan masuk (setidaknya tidak untuk saya). Itu adalah pengawasan sederhana di pihak saya, tetapi kalau-kalau ada orang lain yang mengabaikan langkah itu saya ingin mengulanginya lagi di sini.
Kirk Spencer