Vraag Hoe het DPI-scherm te vinden en te wijzigen?


Ik probeer het te vinden en vervolgens te wijzigen scherm DPI (dots per inch) instelling in 12.04 en 12.10. Ik kan echter geen app of configuratiebestand vinden dat dit kan doen. Is hier een app- of conf-bestand voor?

Merk op dat dit voor 12.04+ is, dus het volgende werkt niet:

Bovendien veranderen ze feitelijk de lettergrootte, niet de werkelijke scherm-DPI.


81
2017-10-08 14:53


oorsprong


Ik probeer te trainen met verschillende dpi, op elke monitor. - ctrl-alt-delor
Hallo @richard, als je dat doet, zouden we het leuk vinden als je hier je stappen en resultaten neerzet. Dank je. - Luis Alvarado♦


antwoorden:


Dit is een bijgewerkte versie van mijn vorige antwoord dat betrekking had op Ubuntu 12.04. In 16.04 (Xenial) zijn 3 stappen nodig om DPI correct in te stellen in plaats van 2.

Ik zal het voorbeeld van het systeem uitleggen met Ubuntu 12.04 met Gnome Classic en een monitor met een resolutie van 1680x1050. Mijn startinstellingen: xdpyinfo | grep dots gerapporteerd 96x96 dots , xrdb -query | grep dpi gerapporteerd Xft.dpi: 96 , grep DPI /var/log/Xorg.0.log heeft een aantal rare instellingen gerapporteerd NOUVEAU(0): DPI set to (90, 88).

In 16.04 waren de outputs van al deze 3 commando's consistent en waren gelijk aan 96. Hoewel zo'n consensus beter is dan de stoornis van 12.04, is de gerapporteerde waarde hard gecodeerd en ver van de echte DPI-waarde.

Laten we de optimale DPI voor mijn monitor berekenen. De werkelijke grootte van het scherm is te vinden met het commando xrandr | grep -w connected (zet uitvoer om in centimeters) of met een lange liniaal met de hand. In mijn geval: X = 47.4cm ; Y = 29.6cm. Verdeel ze met 2,54 om de maat in inches te krijgen: X ~ 18.66in ; Y ~ 11.65in. Deel tenslotte het werkelijke aantal punten (op basis van uw resolutie) in op de maat in inches: X = 1680/18.66 ~ 90dpi ; Y = 1050/11.65 ~ 90dpi. Dus mijn echte dpi is 90.

Wees gewaarschuwd, de handmatige meetmethode kan nauwkeuriger zijn dan de uitvoer van het commando xrandr | grep -w connected omdat de nieuwere versies van X server de door EDID gerapporteerde grootte negeren en de grootte berekenen met behulp van de schermresolutie en een hard gecodeerde waarde van DPI (meer info) hier).
Een andere methode om de grootte van de monitor te vinden, is door de EDID rechtstreeks te lezen. Installeren read-edid pakket en voer de opdracht uit sudo get-edid | parse-edid | grep DisplaySize in de terminal. De uitvoer geeft u de werkelijke grootte van uw monitor in millimeters. Zo niet - gebruik de liniaal.

Laten we DPI gaan repareren:

1) In 12.04 run gksudo gedit, Open /etc/lightdm/lightdm.conf en voeg een parameter toe onder [SeatDefaults] sectie:

xserver-command=X -dpi 90

Er is standaard geen bestand in 16.04, dus je moet maken lightdm.conf handmatig en zet het in /etc/lightdm/lightdm.conf.d/. De inhoud van dit bestand is hetzelfde:

[SeatDefaults]
xserver-command=X -dpi 90

Start de computer opnieuw op of start X opnieuw. Nu grep DPI /var/log/Xorg.0.log zal de gewenste instelling tonen.

2) In mijn vorige antwoord stelde ik voor om een ​​bestand te maken in /etc/X11/Xsession.d/ met een string xrandr --dpi 90. Dit werkte in 12.04, maar in 16.04 is deze instelling niet persistent. In nieuwere systemen kunnen we de gewenste waarde toevoegen bij het starten van de sessie. Voer "Startup Applications" uit, druk op de knop "Toevoegen", noem deze "Fix DPI" en stel de opdracht in xrandr --dpi 90 in het veld. Sla de wijzigingen op en log opnieuw in. Nu xdpyinfo | grep dots zal rapporteren 90x90 dots.

Als xdpyinfo nog steeds 96 en voeg dan een time-out toe voordat het programma wordt uitgevoerd xrandr. Bewerk de opdracht in "Startup Applications" en wijzig deze in:

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

Referentie 

Stap 2 is optioneel voor 12.04 omdat in oudere systemen stap 1 beide reparaties uitvoert Xorg.0.log en xdpyinfo waarden.

3) In GNOME3 is de DPI-instelling hard gecodeerd naar 96 en kan niet rechtstreeks worden gewijzigd, maar de tekst kan in plaats daarvan worden geschaald. Bereken de gewenste multiplier: desired_DPI / 96 (in mijn geval 90/96 = 0.9375). Voer nu de opdracht uit (of gebruik dconf als je dat liever hebt):

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

Wijzigingen worden in één keer toegepast. xrdb -query | grep dpi zal het gewenste melden Xft.dpi: 90.

Postscriptum Er is een andere methode om de DPI-instelling te herstellen, die veel moeilijker is en die wordt beschreven in deze gids. Ik probeerde het ook en het resultaat was hetzelfde (tenminste in 12.04).

Nawoord: Alleen Ubuntu-ontwikkelaars kunnen met zekerheid zeggen of waarden die zijn gewijzigd door stap 1 en 2 er echt toe doen in moderne Ubuntu of dat ze stilzwijgend worden genegeerd. Alleen stap 3 produceert de wijzigingen die direct merkbaar zijn. Gebruikers die van mening zijn dat bepaalde apps nog steeds op X-serverinstellingen kunnen vertrouwen, worden aangemoedigd om alle 3 de hierboven beschreven stappen uit te voeren. Voor de rest is stap 3 voldoende - dat is de enige manier van maatwerk die wordt toegepast in moderne Ubuntu-distro's.


105
2018-03-25 09:32



Dit is een zeer compleet (Genoten van het hele ding) antwoord vol met nieuwe informatie. Bedankt, bedankt. 1 - Luis Alvarado♦
Bedankt voor het hoge cijfer. Ik heb verschillende dagen doorgebracht met het zoeken naar oplossingen voor het probleem en ben nu blij om het met iedereen te delen. - whtyger
hier is een spreadsheet om u een beetje tijd te besparen bij het berekenen van de waarden: docs.google.com/spreadsheet/... - Tom Carchrae
Is het mogelijk om twee verschillende DPI-configuraties te hebben voor twee verschillende schermen? - rubo77
@RaffiKhatchadourian There's schema org.gnome.desktop.interface en sleutel scaling-factor in het. De standaardwaarde is 1 en deze kan alleen integer zijn. Het is bedoeld voor HiDPI-schermen. Er zijn enkele methoden om niet-gehele schalingsfactoren te gebruiken xrandr. Controleer deze link: wiki.archlinux.org/index.php/HiDPI (dat is Arch knowledge base, heb dit niet getest in Ubuntu). - whtyger


Vanaf 14.04 hebben we een optie die een beetje helpt:

Ondersteuning schalen

In de onderstaande afbeelding kunnen we de schaal zien die deze heeft 0.75 op de lettertypen en titelbalken:

enter image description here

In de onderstaande afbeelding kunnen we de schaal zien die deze heeft 1,38 op de lettertypen en titelbalken:

enter image description here


28
2018-05-06 23:46



Dat werkte voor mij in Ubuntu 14.04 (duits: "Anzeigegeräte") Ik moest de standaard lettertype-schalingsfactor herstellen naar 1.0 (ik plaatste het naar 2.0 berfore) en de grootte van het Launcher-pictogram in "Alle instellingen" -> "Darstellung " - rubo77
Verandert dat niet alleen de menu- en titelbalk, inclusief de Launcher, en NIET de totale DPI? - John Scott
@FuzzyToothpaste daarom zei ik "helpt een beetje". Die bit is dat, als je de schaal lager zet, behalve het veranderen van het menu, de titelbalk en de lanceerinrichting, de actuall-grootte van de vensters vanwege de verandering kleiner zal zijn. Dus het helpt een beetje als je bijvoorbeeld een resolutie van 1280x720 hebt (zoals een laptop) en je de vensters in die 720 wilt passen. Als je de schaal naar 0,8 of minder verlaagt, "voelt" het alsof je 1080 in plaats van 720 gebruikt. is natuurlijk met Non Hi-DPI zoals de Apple-producten. Ik vermoed dat het effect groter zou zijn op dat type hardware. - Luis Alvarado♦
Hallo, sorry voor mijn reactie; Ik wil de schermafwerkingen weergeven als op uw foto's via de xserver-sessie: is er een manier om dit te doen?


Wat mijn ervaring in Ubuntu betreft, verandert het veranderen van de DPI-instelling van het lettertype veel meer dan alleen de manier waarop lettertypen worden gerenderd. Het is ook van toepassing op pictogrammen en de grootte van menu's bijvoorbeeld.

Het is alleen zo dat Xorg de Desktop Environment aangeeft wat de DPI van het fysieke display is. En ja, je kunt dit in het Xorg.conf overschrijven, maar het heeft hetzelfde effect als het veranderen van de instelling in je DE. Bijvoorbeeld in Kubuntu / KDE:

enter image description here


9
2018-01-26 18:47



Is er een Ubuntu (Unity) -versie van deze lettertypebeheerder? - Luis Alvarado♦
@LuisAlvarado Nee, het lijkt erop dat dit alleen GNOME2 en KDE dit aanbieden ... Gnome-tweak-tool zou dit moeten kunnen doen, maar het crasht mijn 12.10 Unity VM wanneer de lettergrootte wordt gewijzigd. - gertvdijk


Had een soortgelijk probleem, op een scherm van 2880x1620. Zien http://ubuntuforums.org/showthread.php?t=2106549 Opgelost door zetten

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

in mijn ~ / .xprofile

In plaats van "DP-0", wat dan ook

xrandr

vertelt u als apparaatnaam.

Je kunt natuurlijk de schaal aanpassen, maar 0,5 zag er op de een of andere manier niet goed uit op mijn scherm.


8
2017-11-06 23:36



Dit is maar een tijdelijke oplossing, want je verliest de echte resolutie. Met deze schaalverdeling geeft uw monitor slechts de helft van de pixel weer in plaats van deze opnieuw in de geschaalde resolutie weer te geven - rubo77
Helaas schaalt de muis niet op dezelfde snelheid als het scherm bij gebruik :-( Bij het verkleinen is dit onschadelijk omdat de muis alleen lege ruimte buiten het scherm verkent, maar bij het op schaal brengen om een ​​complexe applicatie goed weer te geven op kleinere schermen reikt de muis niet naar de rand van het scherm waardoor dit onbruikbaar wordt in dat geval - marsbard


Terwijl de xserver-command=X -dpi ... en xrandr --dpi ... hierboven gegeven heeft mogelijk heel goed gewerkt in eerdere versies van Ubuntu, in Ubuntu 13.10 (wat ik heb) Unity negeert die instellingen en houdt de dpi vast (voor zover het de X-server betreft met 96 dpi).

En de xrandr --scale ... opdracht schaalt het scherm zoals beschreven maar schaalt het op een zodanige manier dat tekst en pictogrammen een beetje wazig worden. Maar het werkt.

Het lijkt erop dat in Ubuntu 13.10 de beste optie misschien niet is om te proberen de dpi-instelling voor de X-server te wijzigen, maar in plaats daarvan de unity-tweak-tool om de standaardlettertypen die door Unity worden gebruikt en de standaardlettertype-schaalfactor te wijzigen. Je kunt het downloaden unity-tweak-tool van het Ubuntu Software Center. Wanneer u de unity-tweak-tool ga naar de knop Lettertypen en probeer de lettertype-schaalfactor te wijzigen in 1,2 of 1,25 (of hoger of lager) om de lettertypen voor u een goed formaat te laten weergeven. Op dit configuratiescherm kunt u ook de standaardlettertypen wijzigen die door Unity worden gebruikt. Toegegeven, deze oplossing schaalt niet alles op het scherm, alleen de tekst, maar het werkt echt goed op mijn laptop met zijn 166 dpi scherm. Het lijkt erop dat webbrowsers zoals Firefox en Chromium deze instelling niet opmerken, maar bij zowel Firefox als Chromium kunt u een minimale lettergrootte instellen in de toepassingsinstellingen om de lettertypen op webpagina's op dezelfde manier op te schalen.


6
2018-03-23 01:12



Goed onderzoek Carl. - Luis Alvarado♦


In Ubuntu 14.10 deed ik het volgende met een 15 "-laptop, een resolutie van 1920x1080 (345 mm x 145 mm) en een dichtheid van 143ppi / dpi.

In /etc/X11/xorg.conf.d/xorg.conf heb ik het volgende toegevoegd:

# 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

Hiermee worden de systeembrede dpi-instellingen ingesteld op de juiste 143 dpi:

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

Ik heb ook alle bovengenoemde tweakings gedaan:

  • Systeeminstellingen (in Unity-paneel) -> Beeldschermen -> Schaal voor menubalk en titelbalk: 1.25
  • In chroom begin ik met: chromium-browser --enable_hidpi = 1
  • In Firefox stelde ik ongeveer in: config -> layout.css.devPixelsPerPx: 1.4
  • In atom.io heb ik gereageerd deze kwestie

Eigenlijk moet ik elke applicatie aanpassen, ben ik van plan om te gebruiken. Ook in browsers resulteert deze zoom ook in wazige beelden (pictogrammen, knoppen op webpagina's, enz.), Omdat ook wordt ingezoomd. Ik zou graag een afbeelding willen instellen op 1: 1 en 2: 1 formaat met een enkele klik of gebaar.

Ik hoop dat het nuttige informatie toevoegt vanaf 9 oktober 2014.


4
2017-10-09 11:38



Ik denk dat je de wazigheid kunt herstellen door een veelvoud van 12 te schalen. Stel in je geval de dpi in op 144 - Martin Konecny
+1 voor het plaatsen van de datum in uw bericht. Ik doe dat soms, maar je herinnert me eraan dat ik het vaker moet doen. (hint voor iedereen). - WinEunuuchs2Unix


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

Open het en ga naar 'Tweaks> Fonts'. Wijzig vervolgens de 'Tekstschaalfactor'

Werkt goed. Genieten.


3
2018-03-06 14:43





Je kunt alles opschalen met xrandr, wat waarschijnlijk is wat je zoekt. Ik weet niet zeker hoe het intern werkt, maar het effect lijkt een dpi-verandering te zijn.

Om uw resolutie te schalen, zoekt u eerst de naam van uw display met 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)

Dus in mijn geval wordt mijn laptopscherm LVDS genoemd.

Voer vervolgens het volgende uit om uw resolutie te schalen:

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

De Launcher en het paneel kunnen even verdwijnen, maar u kunt uw cursor eroverheen houden en ze moeten opnieuw verschijnen. Mogelijk moet u de grootte van geopende vensters aanpassen zodat ze in de kleinere resolutie passen.


3
2017-10-18 20:19