Come trovare e modificare il DPI dello schermo?


87

Sto cercando di trovare e quindi modificare l' impostazione DPI dello schermo (punti per pollice) in 12.04 e 12.10. Tuttavia, non riesco a trovare alcuna app o file di configurazione in grado di farlo. Esiste un file app o conf per questo?

Si noti che questo è per 12.04+ quindi il seguente non funzionerà:

Inoltre, stanno sostanzialmente cambiando la dimensione del carattere, non l'attuale DPI dello schermo.


1
Sto cercando di allenarmi su come avere diversi dpi, su ciascun monitor.
ctrl-alt-delor,

1
Ciao @richard, se lo fai, ci piacerebbe che tu metta i tuoi passi e risultati qui. Grazie.
Luis Alvarado,

Risposte:


117

Questa è una versione aggiornata della mia precedente risposta relativa a Ubuntu 12.04. In 16.04 (Xenial) sono necessari 3 passaggi per impostare correttamente DPI anziché 2.

Spiegherò sull'esempio del sistema con Ubuntu 12.04 con Gnome Classic e un monitor con risoluzione 1680x1050. Le mie impostazioni iniziali: xdpyinfo | grep dotssegnalate 96x96 dots, xrdb -query | grep dpisegnalate Xft.dpi: 96, grep DPI /var/log/Xorg.0.logsegnalate alcune impostazioni strane NOUVEAU(0): DPI set to (90, 88).

Nel 16.04 gli output di tutti questi 3 comandi erano coerenti e uguali a 96. Sebbene tale consenso sia migliore del disordine di 12.04, il valore riportato è hardcoded e lontano dal valore DPI reale.

Calcoliamo DPI ottimale per il mio monitor. La dimensione effettiva dello schermo può essere trovata con il comando xrandr | grep -w connected(converti l'output in centimetri) o con un lungo righello a mano. Nel mio caso X = 47.4cm:; Y = 29.6cm. Dividerli per 2,54 per ottenere la dimensione in pollici: X ~ 18.66in; Y ~ 11.65in. Infine dividere l'importo effettivo punti (in base alla risoluzione) per la dimensione in pollici: X = 1680/18.66 ~ 90dpi; Y = 1050/11.65 ~ 90dpi. Quindi il mio dpi reale è 90.

Attenzione , il metodo di misurazione manuale potrebbe essere più accurato dell'output del comando xrandr | grep -w connectedpoiché le versioni più recenti del server X ignorano le dimensioni riportate da EDID e calcolano le dimensioni utilizzando la risoluzione dello schermo e un valore codificato di DPI (maggiori informazioni qui ).
Un altro metodo per trovare la dimensione del monitor è leggere direttamente il suo EDID. Installa il read-edidpacchetto ed esegui il comando sudo get-edid | parse-edid | grep DisplaySizenel terminale. Il suo output ti darà le dimensioni effettive del tuo monitor in millimetri. In caso contrario, utilizzare il righello.

Iniziamo a correggere DPI:

1) In esecuzione 12.04 gksudo gedit, aprire /etc/lightdm/lightdm.confe aggiungere un parametro nella [SeatDefaults]sezione:

xserver-command=X -dpi 90

Non esiste un file simile in 16.04 per impostazione predefinita, quindi è necessario crearlo lightdm.confmanualmente e inserirlo /etc/lightdm/lightdm.conf.d/. I contenuti di questo file sono gli stessi:

[SeatDefaults]
xserver-command=X -dpi 90

Riavvia il computer o riavvia X. Ora grep DPI /var/log/Xorg.0.logmostrerà l'impostazione desiderata.

2) Nella mia precedente risposta ho proposto di creare un file /etc/X11/Xsession.d/contenente stringa xrandr --dpi 90. Funzionava nel 12.04, ma nel 16.04 questa impostazione non è persistente. Nei sistemi più recenti possiamo aggiungere il valore desiderato all'avvio della sessione. Esegui "Startup Applications", premi il pulsante "Aggiungi", chiamalo "Fix DPI" e imposta il comando xrandr --dpi 90nel campo. Salvare le modifiche e accedere nuovamente. Ora xdpyinfo | grep dotssegnalerà 90x90 dots.

Se xdpyinfomostra ancora 96, aggiungi un timeout prima di eseguire xrandr. Modifica il comando in "Applicazioni di avvio" e modificalo in:

bash -c "sleep 15; xrandr --dpi 90"

Riferimento

Il passaggio 2 è facoltativo per 12.04 perché nei sistemi precedenti il ​​passaggio 1 corregge sia i valori Xorg.0.logche i xdpyinfovalori.

3) In GNOME3 DPI l'impostazione è hardcoded su 96 e non può essere modificata direttamente, ma è possibile ridimensionare il testo. Calcola il moltiplicatore desiderato: desired_DPI / 96(nel mio caso 90/96 = 0.9375). Ora esegui il comando (o usa dconfse preferisci):

gsettings set org.gnome.desktop.interface text-scaling-factor 0.9375

Le modifiche verranno applicate immediatamente. xrdb -query | grep dpisegnalerà il desiderato Xft.dpi: 90.

PS Esiste un altro metodo per correggere le impostazioni DPI che è molto più difficile ed è descritto in questa guida. L'ho provato anche e il risultato è stato lo stesso (almeno in 12.04).

Postfazione: solo gli sviluppatori Ubuntu possono dire con certezza se i valori modificati dai Passaggi 1 e 2 contano davvero nella Ubuntu moderna o se vengono silenziosamente ignorati. Solo il passaggio 3 produce le modifiche che sono immediatamente visibili. Gli utenti che ritengono che determinate app possano ancora fare affidamento sulle impostazioni del server X sono incoraggiati a eseguire tutti e 3 i passaggi sopra descritti. Per il resto il passaggio 3 è sufficiente: è l'unico modo di personalizzazione adottato nelle moderne distribuzioni Ubuntu.


2
Questa è una risposta molto completa (ci è piaciuto tutto) piena di nuove informazioni. Grazie mille. +1
Luis Alvarado,

2
Grazie per il voto alto. Ho trascorso diversi giorni a cercare ovunque per risolvere il problema e ora sono felice di condividerlo con tutti.
whtyger

1
ecco un foglio di calcolo per farti risparmiare un po 'di tempo calcolando i valori: docs.google.com/spreadsheet/…
Tom Carchrae,


1
@RaffiKhatchadourian C'è schema org.gnome.desktop.interfacee chiave scaling-factorin esso. Il valore predefinito è 1 e può essere solo intero. È destinato ai display HiDPI. Esistono alcuni metodi per ottenere il fattore di ridimensionamento non intero utilizzando xrandr. Controlla questo link: wiki.archlinux.org/index.php/HiDPI (questa è la knowledge base di Arch, non l'ho testata su Ubuntu).
whtyger,

28

A partire da 14.04 abbiamo un'opzione che aiuta un po ':

Supporto per ridimensionamento

Nell'immagine qui sotto possiamo vedere il ridimensionamento che ha a 0,75 sui caratteri e sulle barre del titolo:

inserisci qui la descrizione dell'immagine

Nell'immagine qui sotto possiamo vedere il ridimensionamento che ha a 1.38 sui caratteri e sulle barre del titolo:

inserisci qui la descrizione dell'immagine


3
Questo ha funzionato per me in Ubuntu 14.04 (tedesco: "Anzeigegeräte") Ho dovuto ripristinare il fattore di ridimensionamento dei caratteri predefinito su 1.0 (l'ho impostato su 2.0 prima) e ridimensionare la dimensione dell'icona di avvio in "Tutte le impostazioni" -> "Darstellung "
rubo77,

4
Questo non cambia solo il menu e le barre del titolo, incluso il Launcher, e NON il DPI totale?
John Scott,

1
@FuzzyToothpaste ecco perché ho detto "aiuta un po '". Quel bit è che, quando si abbassa la scala, oltre a cambiare il menu, la barra del titolo e le icone di avvio, le dimensioni effettive delle finestre, a causa della modifica, saranno più piccole. Quindi aiuta un po 'se ad esempio hai una risoluzione di 1280x720 (come un laptop) e vuoi adattare le finestre a quel 720. Abbassare la scala a 0,8 o meno "ti sembrerà" di usare 1080 anziché 720. Questo ovviamente è con Non Hi-DPI come i prodotti Apple. Immagino che l'effetto sarebbe maggiore su quel tipo di hardware.
Luis Alvarado,

Ciao, scusa per il mio commento; Voglio visualizzare le impostazioni di visualizzazione come sulle tue foto tramite la sessione xserver: c'è un modo per farlo?

9

Per quanto riguarda la mia esperienza in Ubuntu, la modifica dell'impostazione DPI dei caratteri cambia molto più del semplice modo in cui i caratteri sono resi. Si applica anche alle icone e alle dimensioni dei menu, ad esempio.

È solo che Xorg suggerisce l'ambiente desktop su quale sia il DPI del display fisico. E sì, puoi sovrascriverlo in Xorg.conf, ma ha lo stesso effetto della modifica dell'impostazione nel tuo DE. Ad esempio in Kubuntu / KDE:

inserisci qui la descrizione dell'immagine


3
Esiste una versione Ubuntu (Unity) di questo gestore di font.
Luis Alvarado,

@LuisAlvarado No, sembra che questo sia solo GNOME2 e KDE che offre questo ... Gnome-tweak-tool dovrebbe essere in grado di farlo, ma si arresta in modo anomalo sulla mia VM Unity 12.10 ogni volta che cambia la dimensione del carattere.
gertvdijk,

9

Ha avuto un problema simile, su uno schermo 2880x1620. Vedi http://ubuntuforums.org/showthread.php?t=2106549 Risolto inserendo

xrandr --output DP-0 --scale 0.75x0.75

nel mio ~ / .xprofile

Invece di "DP-0", inserisci qualunque cosa

xrandr

ti dice come nome del dispositivo.

Puoi modificare la scala ovviamente, ma 0,5 in qualche modo non è stato bello sul mio schermo.


3
Questo ho solo una soluzione alternativa, perché perdi la risoluzione reale. Con questo ridimensionamento il monitor visualizza solo metà del pixel invece di renderizzarlo nuovamente con la risoluzione in scala
rubo77

1
Sfortunatamente il mouse non si ridimensiona alla stessa velocità dello schermo quando lo si utilizza :-( Quando si ridimensiona così com'è, questo è innocuo poiché il mouse esplora solo lo spazio vuoto fuori dallo schermo ma quando si ingrandisce per ottenere un'applicazione complessa da visualizzare bene su schermi più piccoli, il mouse non raggiunge il bordo dello schermo, il che lo rende inutilizzabile in quel caso d'uso
marsbard

7

Mentre il xserver-command=X -dpi ...e xrandr --dpi ...dato sopra potrebbero aver funzionato molto bene nelle versioni precedenti di Ubuntu, in Ubuntu 13.10 (che è quello che ho) Unity ignora quelle impostazioni e mantiene i dpi fissi (per quanto riguarda il server X a 96 dpi).

E il xrandr --scale ...comando ridimensiona lo schermo come descritto, ma lo ridimensiona in modo tale da rendere un po 'sfocato il testo e le icone. Ma funziona

Sembra che in Ubuntu 13.10 l'opzione migliore potrebbe essere quella di non tentare di modificare l'impostazione dpi per il server X ma di utilizzare invece il unity-tweak-toolper modificare i caratteri predefiniti utilizzati da Unity e il fattore di ridimensionamento predefinito dei caratteri. Puoi scaricare unity-tweak-toolda Ubuntu Software Center. Quando apri il fileunity-tweak-toolvai al pulsante Caratteri e prova a cambiare il fattore di ridimensionamento dei caratteri su 1.2 o 1.25 (o superiore o inferiore) per far apparire i caratteri di buone dimensioni per te. Su questo pannello di controllo è inoltre possibile modificare i caratteri predefiniti utilizzati da Unity. Certo, questa soluzione non ridimensiona tutto sullo schermo, solo il testo, ma funziona davvero bene sul mio laptop con lo schermo da 166 dpi. Sembra che i browser Web come Firefox e Chromium non notino questa impostazione, ma ciascuno sia Firefox che Chromium consentono di impostare una dimensione minima dei caratteri nelle impostazioni dell'applicazione per ridimensionare i caratteri sulle pagine Web allo stesso modo.


Buona ricerca Carl.
Luis Alvarado,

5

In Ubuntu 14.10, con un laptop da 15 ", risoluzione 1920x1080 (345mm x 145mm), con densità 143ppi / dpi, ho fatto quanto segue.

In /etc/X11/xorg.conf.d/xorg.conf, ho aggiunto quanto segue:

# xdpyinfo | grep -B2 resolution
# https://wiki.archlinux.org/index.php/xorg#Display_size_and_DPI
Section "Monitor"
    Identifier             "<default monitor>"
    DisplaySize             345 195    # In millimeters
EndSection

In questo modo le impostazioni dpi dell'intero sistema sono impostate su 143 dpi corretti:

$ xdpyinfo | grep dots
resolution:    142x142 dots per inch

Ho anche fatto tutte le modifiche sopra menzionate:

  • Impostazioni di sistema (nel pannello Unity) -> Display -> Scala per menu e barre del titolo: 1.25
  • In cromo, inizio con: chromium-browser --enable_hidpi = 1
  • In Firefox ho impostato su: config -> layout.css.devPixelsPerPx: 1.4
  • In atom.io, ho commentato questo problema

Praticamente ho bisogno di modificare ogni applicazione, ho intenzione di utilizzare. Anche nei browser questo zoom risulta anche immagini sfocate (icone, pulsanti su pagine Web, ecc.), Perché viene anche ingrandito. Mi piacerebbe impostare un'immagine con dimensioni 1: 1 e 2: 1 con un solo clic o gesto.

Spero che aggiunga alcune informazioni utili al 9 ottobre 2014.


Penso che puoi correggere la sfocatura ridimensionando un multiplo di 12. In te stesso imposta il dpi su 144
Martin Konecny ​​il

+1 per inserire la data nel tuo post. Lo faccio a volte ma mi stai ricordando che devo farlo più spesso. (suggerimento per tutti gli altri).
WinEunuuchs2Unix,

3

Installa Ubuntu-Tweak http://ubuntu-tweak.com/

Aprilo e vai su 'Tweaks> Fonts'. Quindi modifica il "Fattore di ridimensionamento del testo"

Funziona alla grande. Godere.


3

Puoi ridimensionare tutto con xrandr, che è probabilmente quello che stai cercando. Non sono sicuro di come funzioni internamente, ma l'effetto sembra essere un cambio di dpi.

Per ridimensionare la tua risoluzione, trova prima il nome del tuo display con xrandr:

lars:~$ xrandr
Screen 0: minimum 320 x 200, current 1366 x 768, maximum 1600 x 1600
LVDS connected 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
   1366x768       60.0*+
   1280x768       60.0 +
   1280x720       60.0 +
   1024x768       60.0 +
   1024x600       60.0 +
   800x600        60.0 +
   800x480        60.0 +
   720x480        60.0 +
   640x480        60.0 +
DFP1 disconnected (normal left inverted right x axis y axis)
CRT1 disconnected (normal left inverted right x axis y axis)

Quindi, nel mio caso il display del mio laptop si chiama LVDS.

Quindi eseguire quanto segue per ridimensionare la risoluzione:

xrandr --output LVDS --scale 0.75x0.75

Il Launcher e il Pannello potrebbero scomparire per un momento, ma basta passare il cursore su di essi e dovrebbero riapparire. Potrebbe anche essere necessario ridimensionare le finestre aperte in modo che si adattino alla risoluzione più piccola.


Questo sfoca l'output
Beernarrd,

2

Alla fine di questa domanda alla ricerca del ridimensionamento HiDPI di Windows in Ubuntu Gnome, ecco la mia aggiunta ai suggerimenti casuali, in modo che la trovo quando ne ho bisogno di nuovo. :)

Per accedere a questa finestra di dialogo, apri Gnome Tweaks e vai alla sezione Windows.

Gnome Tweaks - Windows


0

Sto usando Zorin8 (basato su Ubuntu13.x).

È possibile ridimensionare lo schermo con il mouse (1024/800 = 1.28, 768/600 = 1.28):

xrandr --output LVDS1 --mode 800x600 --panning 1024x768 --scale 1.28x1.28

O fai una panoramica dello schermo, quindi devi usare il mouse per vedere le parti che non sono visibili sullo schermo:

xrandr --output LVDS1 --mode 800x600 --panning 1024x768

-2

In realtà non puoi cambiare il ppi fisico del tuo monitor. Il vero ppi è l'effettivo ppi hardware, tuttavia la maggior parte dei software assumerà un ppi di 72 dpi per motivi storici, anche se 96 dpi non è raro ora.

Puoi cambiare la risoluzione del monitor, che cambia la ppi tradotta e puoi cambiare cose come la dimensione del carattere.

Se installi MyUnity puoi modificare il carattere DPI, tra le altre cose.

Se avessi un monitor da 1024x768 pixel (risoluzione) vero ed era vero 72 dpi, sarebbe un monitor da 17 ". Se imposti una dimensione del carattere di 72, un carattere sarebbe alto 1". Se si imposta il display su una risoluzione di 800x600, il carattere sarà più grande, mentre l'impostazione 1600x1200 renderebbe il carattere più piccolo.


Che dire delle opzioni xorg come "UseEDIDDpi" e "DPI"? Ho letto che ad esempio il primo può disabilitare la lettura dell'EDID dalla scheda video nel caso in cui sia letto in modo errato e con DPI è possibile modificare DPI. Questo è ciò che mi confonde.
Luis Alvarado,
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.