Come far persistere la risoluzione del monitor esterno impostata da xrandr


11

tl; dr

Il mio laptop continua a dimenticare la corretta risoluzione del monitor esterno ad esso collegato. Come posso rendere la configurazione "stick"?

Dettagli

Ho un laptop con Linux Mint collegato a un monitor ViewSonic esterno. L'ho impostato per utilizzare il monitor esterno come secondo schermo (cioè non speculare). Questo ha funzionato bene per alcune settimane.

Improvvisamente, il laptop non lo riconosce più come ViewSonic, a quel punto non conosceva la sua risoluzione ottimale ( 1600 x 1200), consentendo solo un massimo di 1028 x 768. 1 Questo non ha funzionato affatto bene con il mio laptop, che ha una 1920 x 1200risoluzione.

Dopo molta frustrazione, ho trovato questa risposta . Mi ha aiutato a risolvere il problema, come segue (l'output del cvtcomando è la modeline che è stata utilizzata nel comando successivo):

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

Questo è esattamente ciò che desideravo poter fare, ma non potevo farlo attraverso la GUI. (Ci sono ragioni per cui amo ancora la riga di comando ...)

Questo ha funzionato ancora una volta per un po '. Tuttavia, quando ho avviato il computer oggi e ho effettuato l'accesso, ho visualizzato un popup nell'area di notifica con una serie di errori su diverse modalità tentate che non funzionavano e il monitor esterno era spento. Ho ripetuto i comandi sopra e funziona di nuovo.

Ho una scheda nVidia. Ho provato a installare il driver proprietario quando le cose hanno iniziato a non funzionare, ma a quel punto il monitor esterno non è stato più riconosciuto, quindi sono tornato al driver open source. Non ho un Xorg.confo un Xorg.conf.d, solo un xorg.conf.failsafe.

Non voglio ripetere questi comandi ogni volta che avvio la macchina. C'è un modo per salvarlo sul mio Xorg.confo qualcosa del genere? Sono passati diversi anni da quando ho fatto molto con X. Qualcuno può aiutarmi qui?


1 Non sono stato in grado di determinare perché questo è successo. La mia ipotesi migliore è un aggiornamento problematico del driver.


1
Quale scheda grafica stai usando? E se è ATI / AMD o Nvidia stai usando il driver proprietario o quello open source? Al momento hai un /etc/X11/corg.conffile o qualcosa dentro /etc/X11/corg.conf.d? Id così, per favore modifica la tua domanda e aggiungi il contenuto di quei file.
terdon

Si prega di modificare la tua domanda per aggiungere informazioni supplementari, è difficile da leggere e facile da perdere nei commenti. Detto questo, sì, xorg.conf non è più necessario, queste cose sono ora gestite da udev.
terdon

Sto solo guardando di nuovo la tua domanda e quello che mi è mancato quando ho scritto la mia risposta è che hai un laptop. Quello che potresti voler esaminare è scrivere una udevregola per chiamare uno script per fare xrandr ogni volta che il monitor viene collegato o scollegato, questo sarà molto meglio se il tuo computer non è sempre collegato al monitor. Altrimenti, se sei felice di averlo installato sempre nello stesso posto, Xorg.confè la strada da percorrere.
Graeme,

Risposte:


5

Sono sicuro che c'è un modo migliore, penso che questo sia tutto gestito udevormai, ma se sai che quei comandi lo risolveranno, potresti sempre trasformarli in uno script:

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

Renderlo eseguibile e quindi aggiungerlo alle applicazioni di avvio dell'ambiente desktop. Questa è probabilmente la scelta migliore se il tuo DE ti offre l'opzione.


Se non riesci a fare quanto sopra, come un trucco sporco potresti aggiungerli al tuo ~/.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

L' if [ ! -t 0 ]dovrebbero garantire questo viene eseguito solo nella GUI e .profileproviene dal login manager di menta come ricordo.

Ora, dovresti anche essere in grado di utilizzare, ~/.xsessionma ho avuto problemi con questo essere ignorato. Molti degli approcci più vecchi vengono sostituiti e non sono sicuro di quale sia lo stato dell'arte.


Non è necessario utilizzare il cvt 1600 1200 poiché abbiamo già utilizzato il suo output nelle due righe successive.
PraveenMax

4

Se si utilizza il driver proprietario Nvidia, nvdia-settingsdovrebbe essere lo strumento GUI per configurare il Xorg.conffile. Dovrebbe avere il suo pacchetto in Linux Mint, quindi l'installazione sarebbe semplice come:

sudo apt-get install nvidia-settings

Questo dovrebbe mettere un'icona nel tuo menu da qualche parte, puoi eseguirla da lì (anche se non sono sicuro di come riesci ad avere i permessi di root). Dalla riga di comando credo che tu possa fare:

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

Se vuoi fare la riga di comando, allora nvidia-xconfigsembra essere lo strumento da usare ( nvidia-xconfigpacchetto per me). Ad ogni modo, di solito si ottengono risultati migliori con il driver proprietario se è configurato correttamente. Questi strumenti genereranno almeno un Xorg.conffile ragionevole che è quindi possibile modificare direttamente o tramite uno di questi programmi.

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.