Perché le mie modifiche a lightdm.conf non influiscono sulla risoluzione dello schermo del mio desktop?


13

Volevo cambiare la mia risoluzione dello schermo del desktop in 1366x768. Ma il mio VESA drivers(AMD REDWOOD)non ha rilevato quella risoluzione. Quindi ho creato uno script di shell come segue: -

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

L'ho salvato come lightdmxrandr.shin /usr/bine l'ho reso eseguibile. Quindi ho aggiunto le seguenti righe a /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf(che è l'equivalente del noto /etc/lightdm/lightdm.conf. Sto usando il file sopra come lo sono il 14.04 dove non c'è /etc/lightdm/lightdm.conf.): -

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

e lo ha salvato. In teoria, ciò avrebbe dovuto modificare la risoluzione dello schermo di accesso e la risoluzione dello schermo del desktop in 1366x768. Ma sorprendentemente questo ha cambiato solo la risoluzione dello schermo di accesso. La risoluzione del desktop non è stata modificata. Successivamente ho aggiunto lo script alle applicazioni di avvio e ciò ha cambiato la mia risoluzione desktop.

Quindi voglio sapere perché le modifiche apportate al lightdm.conffile (o meglio al 50-ubuntu.conffile) non hanno influito sulla risoluzione del desktop. È un qualche tipo di bug che deve essere segnalato al launchpad o è sbagliato affermare che le modifiche in lightdm influiranno sullo schermo del desktop?

PS: - Secondo me questo non è solo specifico per Ubuntu 14.04.

Risposte:


11

Ho provato una cosa simile e dopo un po 'di debug penso di aver capito cosa sta succedendo. Lo script probabilmente viene eseguito e probabilmente imposta correttamente la risoluzione. Tuttavia, poiché è gestito dal gestore degli accessi, viene eseguito prima che Unity abbia completato la configurazione dell'ambiente desktop e Unity legge le proprie impostazioni e reimposta la risoluzione su ciò che si aveva. Quindi, penso che ciò che accade sia:

  1. lightdm esegue correttamente il tuo script
  2. Questo imposta la risoluzione desiderata
  3. Unity si avvia, legge le sue impostazioni e ripristina la risoluzione predefinita disponibile
  4. La tua risoluzione torna a quello che era prima

Ora, questo accade perché il driver VESA non rileva automaticamente la risoluzione desiderata. Ciò significa che quando si modifica la risoluzione dalla sezione Display delle impostazioni di Unity, si ottiene una risoluzione che non è disponibile a meno che non si eseguano i xrandrcomandi. Pertanto, questo viene ignorato al successivo riavvio e Unity torna alla risoluzione predefinita.

Quindi, ciò che devi fare è rendere la risoluzione disponibile per Unity, quindi impostarla come predefinita e lasciarla gestire. Per fare ciò, devi prima aggiungere questa riga a /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf:

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

Quindi, assicurati che /usr/bin/lightdmxrandr.shassomigli a questo:

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

Nota che in realtà non sto impostando la risoluzione, ma la sto solo rendendo disponibile. Una volta eseguito questo riavvio, accedere. La nuova risoluzione ora dovrebbe essere disponibile in Impostazioni => Display. In tal caso, selezionalo lì, disconnettiti e riconnettiti e la risoluzione dovrebbe essere impostata correttamente. Ora dovrebbe persistere per tutti i riavvii.


Approcci alternativi:

  1. Crea un /etc/X11/xorg.conffile che elenca la risoluzione desiderata. Qualcosa come questo:

    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. Aggiungi lo script che esegue i xrandrcomandi alle applicazioni di avvio della sessione.


La modifica dei file in /usr/share/lightdm/lightdm.conf.d/ è il modo sbagliato di cambiare lightdm.conf. La pagina del progetto LightDM dice che gli amministratori di sistema possono sovrascrivere la configurazione predefinita in /etc/lightdm/lightdm.conf.d/ o /etc/lightdm/lightdm.conf Non dovresti modificare i file in / usr / share / lightdm / perché potrebbe funzionare per un po 'potrebbe essere sovrascritto dagli aggiornamenti del pacchetto Fonte: pagina del progetto LightDM freedesktop.org/wiki/Software/LightDM Correggi la tua risposta
happyskeptic

3
Non ho abbastanza reputazione per aggiungere un semplice commento, ma volevo sottolineare che il file sh deve avere il permesso di eseguire. L'OP ha affermato di averlo fatto, ma la risposta di Terdon non l'ha inclusa nei passaggi. Se non è eseguibile, dovrai passare al prompt dei comandi perché non accederà (almeno non per me). È stata una semplice supervisione da parte mia, ma nel caso in cui qualcun altro trascuri quel passo, ho voluto ribadirlo qui.
Kirk Spencer,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.