È possibile avere due diverse configurazioni DPI per due schermi diversi?

90

Sto usando Ubuntu 12.04.3 con i driver NVidia (319) per la mia scheda grafica Quadro K2100M, e quando cambio lo schermo del mio portatile 3200x1800 in modalità 1920x1080 (usando nvidia-settings ), il display diventa sfocato ...

Sto usando due schermate:

  • La mia schermata principale è un LCD con risoluzione massima di 1920x1200.
  • Lo schermo del mio laptop (risoluzione originale 3200x1800) è posizionato a destra di quello.

Il problema principale è che, su Ubuntu, il font è troppo piccolo sullo schermo del mio portatile. Per questo motivo, volevo cambiare la risoluzione del mio laptop a 1920x1080.

Lettura Risposta di Galgalesh Ho provato a calcola il mio DPI ed ecco la configurazione DPI che dovrei avere:

  • 94x94 per il mio schermo LCD principale 1920x1200
  • 235x236 per lo schermo del mio laptop 3200x1800

C'è un modo per avere risoluzioni DPI doppie con un desktop esteso?

    
posta Anthony O. 20.12.2013 - 10:15

5 risposte

94

Sembra che le persone stiano ancora cercando di lavorare con diversi monitor e display HiDPI. Una buona soluzione è descritta nel wiki di arch link . Quindi, ho:

  • laptop asus ln303ux: 3200x1800,
  • monitor esterno: 1920x1200

Ora uso Ubuntu 14.10 e amp; GNOME Shell 3.12.2 che ha un supporto HiDPI abbastanza utile. Quindi uso solo il supporto out-of-the-box di HiDPI - il fattore di scala è 2 (può essere impostato tramite GUI). Ciò significa che sul monitor esterno ottengo tutto due volte più grande di quanto sia accettabile. Quindi, io uso xrandr; ma invece dello schermo del laptop di downscaling, schermo di monitor esterno di alto livello:

xrandr --output HDMI1 --scale 2x2 --mode 1920x1200 --fb 3840x4200 --pos 0x0
xrandr --output eDP1 --scale 1x1 --pos 320x2400

Quindi, uno per uno:

  1. --output HDMI1 nel mio caso è lo schermo esterno, eDP1 è lo schermo del laptop.
  2. --scale 2x2 : trasforma tutto su schermo esterno due volte più piccolo
  3. --mode XxY - imposta esplicitamente la risoluzione per lo schermo (non necessaria se è già impostata)
  4. --fb XxY - imposta la dimensione di uno schermo virtuale (framebuffer) ( importante senza questo, sarai in grado di usare solo una quarta parte dello schermo). Nel mio caso uno schermo era sopra l'altro, quindi ho sommato le altezze effettive 2400 + 1800 = 4200. Nota inoltre che la dimensione massima del framebuffer potrebbe essere specificata in xorg.conf, quindi non puoi superarla (è scritta nella prima riga di xrandr -q output).
  5. --pos XxY - nel mio caso ho impostato il posizionamento assoluto degli schermi, quindi lo schermo del mio portatile si trova direttamente nella parte inferiore dello schermo esterno.

E questo è tutto! Tutto è nitido come potrebbe essere.

FYI: per ottenere i nomi delle schermate e delle risoluzioni disponibili, è possibile eseguire xrandr --current . Maggiori informazioni sull'impostazione della risoluzione sono disponibili qui: link .

UPDATE - OPTION 2: una soluzione alternativa più interessante per le applicazioni che supportano GTK3. Se normalmente uso solo un'applicazione sul grande schermo (ad esempio alcuni IDE, come leksah), non ridimensiono lo schermo, ma eseguo l'applicazione ridimensionata alla sua dimensione originale

env GDK_SCALE=0.5 GDK_DPI_SCALE=0.5 CLUTTER_SCALE=0.5 appname
    
risposta data artem 02.12.2014 - 14:43
6

Perché è sfocato?

Lo schermo mostra sempre 3200x1800 pixel. Se si abbassa la risoluzione dello schermo sul computer significa solo che lo schermo deve ridimensionare l'immagine per adattarla allo schermo. A seconda del rapporto tra la risoluzione nativa e la risoluzione corrente, tale ridimensionamento produrrà un'immagine sfocata.

Puoi trovare ulteriori informazioni su ridimensionamento e risoluzione nativa qui: link

Come posso ingrandire il testo?

Se il testo è troppo piccolo hai due opzioni:

1. Cambia la dimensione del carattere di Ubuntu

Come posso cambiare i caratteri e regolare le loro dimensioni?

2. Cambia DPI (renderà l'intera interfaccia più grande, non solo il testo)

Come trovare e modificare il DPI dello schermo? (risposta di @whtyger)

    
risposta data Galgalesh 23.12.2013 - 17:23
6

Ho usato la soluzione di artmem ma ho incontrato il problema del mouse menzionato da EoghanM. La soluzione che ho trovato nella vecchia segnalazione relativa al suo collegamento a --panning.

Sto girando per:  - DP1-2 3840x2160 in DIP nativo.  - eDP1 1366x768, ridimensionato per sembrare ragionevole a destra di DP1-2.

Capisco che ciò accada avendo un frame buffer simile a DP1-2 + (2x eDP1), quindi ridimensiono tutto per andare a eDP1 di 1/2.

Questo dovrebbe essere semplice ma xrandr è un po 'complicato.

Qui --scale è usato per ridurre tutto ciò che sta per eDP1 di 1/2. --panning è lo stesso di eDP1 nel buffer del frame originale con la posizione (+ 3840 + 0) appena a destra di DP1-2. + 0 + 2160 sarebbe sotto di esso.

xrandr -d :0 --fb 6572x3696 --output DP1-2 --mode 3840x2160 --scale 1x1 --rate 60 --pos 0x0 --primary

# sometimes panning get applied incorrectly when switching from some other mode, running it twice is a work around
xrandr -d :0 --output eDP1 --off
xrandr -d :0 --fb 6572x3696 --output eDP1  --mode 1366x768  --scale 2x2 --panning 2732x1536+3840+0
xrandr -d :0 --fb 6572x3696 --output eDP1  --mode 1366x768  --scale 2x2 --panning 2732x1536+3840+0

Ho anche impostato Xft.dpi a 185

$ cat ~/.Xresources
Xft.dpi: 185

Quando disconnetto dal monitor esterno eseguo:

xrandr -d :0 --output DP1-2 --off
xrandr -d :0 --fb 2732x1536 --output eDP1  --mode 1366x768  --scale 2x2 --panning 2732x1536+0+0 --pos 0x0 --primary

Non sembra fantastico ma non sono molto lontano dalla mia scrivania. Si potrebbe aggirare questo cambiando Xft.dpi e riavviando tutti i programmi desktop. Non conosco un modo per cambiare Xft.dpi e quindi ottenere i client per usarlo senza riavviarli.

    
risposta data Brian C. 16.03.2017 - 16:47
3

Queste risposte sono ottime e mi hanno aiutato in precedenza, ma un recente

sudo apt-get upgrade 

cancellato il mio randr-config! Nel tentativo di ripristinare le mie impostazioni, ho scoperto che non riuscivo più a spostare il mouse oltre il quarto / quarto quadrante superiore del secondo schermo, indipendentemente dall'input --fb. Dal link alla fine ho scoperto che aggiungere panning ha fatto il trucco. Inoltre, l'uso di "--right-of" o "--left-of" è più semplice di "--pos".

"Generalmente se il tuo monitor HiDPI (laptop) è AxB pixel e il tuo monitor normale (esterno) è CxD e stai ridimensionando con [ExF], la riga di comando per right-of è:"

xrandr --output eDP-1 --auto --output HDMI-1 --auto --panning [C*E]x[D*F]+[A]+0 --scale [E]x[F] --right-of eDP-1
    
risposta data ONECore 15.05.2018 - 17:39
2

Sono stato in grado di risolvere questo problema (con problemi) utilizzando i dettagli delineati nella seguente discussione su github: link

Monitor esterno QHD (2560X1440), monitor interno / portatile 3200x1800

xrandr --output eDP-1 --scale 1x1 --pos 0x2880
xrandr --output DP-1 --mode 2560x1440 --scale 2x2 --fb 5120x4680

OR

Monitor FHD esterno (1920x1080), monitor interno / portatile 3200x1800

xrandr --output eDP-1 --scale 1x1 --pos 0x2160
xrandr --output DP-1 --mode 1920x1080 --scale 2x2 --fb 3840x3960

Questi funzionano, ma c'è una notevole quantità di lacerazione nel monitor ad alta risoluzione (laptop) quando sposto le finestre, ridimensiono gli schermi o scorri su un browser. Questo si presenta come una soluzione rending software (che ha tutti questi problemi di lacerazione e refresh lento).

Il suo 2017, Linux / Gnome deve affrontare la soluzione di scaling misto multi-monitor. Sia Windows 10 che OS X risolvono questo problema senza dover ricorrere a correzioni a banda larga da riga di comando che funzionano parzialmente (il problema del tearing non è accettabile per i giochi)

    
risposta data Jeets 20.07.2017 - 20:54

Leggi altre domande sui tag