Como encontrar e alterar o DPI da tela?


87

Estou tentando encontrar e alterar a configuração de DPI da tela (pontos por polegada) em 12.04 e 12.10. No entanto, não consigo encontrar nenhum aplicativo ou arquivo de configuração que possa fazer isso. Existe algum aplicativo ou arquivo conf para isso?

Observe que este é para 12.04+, portanto, o seguinte não funcionará:

Além disso, eles estão basicamente alterando o tamanho da fonte, não o DPI da tela real.


1
Estou tentando exercitar como ter diferentes dpi, em cada monitor.
Ctrl-alt-delor 04/04

1
Olá @richard, se você gostar, gostaríamos que você colocasse suas etapas e resultados aqui. Obrigado.
Luis Alvarado

Respostas:


117

Esta é uma versão atualizada da minha resposta anterior, relacionada ao Ubuntu 12.04. Na 16.04 (Xenial), são necessárias 3 etapas para definir o DPI corretamente, em vez de 2.

Vou explicar o exemplo do sistema com o Ubuntu 12.04 com Gnome Classic e um monitor com resolução 1680x1050. Minhas configurações iniciais: xdpyinfo | grep dotsrelatadas 96x96 dots, xrdb -query | grep dpirelatadas Xft.dpi: 96, grep DPI /var/log/Xorg.0.logrelataram algumas configurações estranhas NOUVEAU(0): DPI set to (90, 88).

Em 16.04, as saídas de todos esses três comandos eram consistentes e iguais a 96. Embora esse consenso seja melhor que o distúrbio de 12.04, o valor relatado é codificado permanentemente e longe do valor real de DPI.

Vamos calcular o DPI ideal para o meu monitor. O tamanho real da tela pode ser encontrado com o comando xrandr | grep -w connected(converter a saída em centímetros) ou com uma régua longa à mão. No meu caso X = 47.4cm:; Y = 29.6cm. Divida-os por 2,54 para obter o tamanho em polegadas X ~ 18.66in:; Y ~ 11.65in. Por fim, divida a quantidade real de pontos (com base na sua resolução) pelo tamanho em polegadas X = 1680/18.66 ~ 90dpi:; Y = 1050/11.65 ~ 90dpi. Então, meu dpi real é 90.

Esteja avisado de que o método manual de medição pode ser mais preciso do que a saída do comando, xrandr | grep -w connectedporque as versões mais recentes do servidor X ignoram o tamanho relatado pelo EDID e calculam o tamanho usando a resolução da tela e um valor codificado de DPI (mais informações aqui )
Outro método para encontrar o tamanho do monitor é ler seu EDID diretamente. Instale o read-edidpacote e execute o comando sudo get-edid | parse-edid | grep DisplaySizeno terminal. Sua saída fornecerá o tamanho real do seu monitor em milímetros. Caso contrário - use a régua.

Vamos começar a corrigir o DPI:

1) Na execução de 12.04 gksudo gedit, abra /etc/lightdm/lightdm.confe adicione um parâmetro na [SeatDefaults]seção:

xserver-command=X -dpi 90

Por padrão, não existe esse arquivo no 16.04; portanto, você deve criar lightdm.confmanualmente e colocá-lo /etc/lightdm/lightdm.conf.d/. O conteúdo deste arquivo é o mesmo:

[SeatDefaults]
xserver-command=X -dpi 90

Reinicie o computador ou reinicie o X. Agora, grep DPI /var/log/Xorg.0.logserá exibida a configuração desejada.

2) Na minha resposta anterior, propus criar um arquivo /etc/X11/Xsession.d/contendo string xrandr --dpi 90. Isso funcionou no 12.04, mas no 16.04 essa configuração não é persistente. Em sistemas mais novos, podemos adicionar o valor desejado no início da sessão. Execute "Aplicativos de inicialização", pressione o botão "Adicionar", nomeie "Fix DPI" e defina o comando xrandr --dpi 90no campo. Salve as alterações e faça login novamente. Agora xdpyinfo | grep dotsirá relatar 90x90 dots.

Se xdpyinfoainda mostrar 96, adicione um tempo limite antes de executar xrandr. Edite o comando em "Aplicativos de Inicialização" e altere-o para:

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

Referência

A etapa 2 é opcional para 12.04, porque em sistemas mais antigos a etapa 1 corrige valores Xorg.0.loge xdpyinfovalores.

3) No GNOME3, a configuração de DPI é codificada para 96 ​​e não pode ser alterada diretamente, mas o texto pode ser redimensionado. Calcule o multiplicador desejado: desired_DPI / 96(no meu caso 90/96 = 0.9375). Agora execute o comando (ou use dconfse você preferir):

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

As alterações serão aplicadas de uma só vez. xrdb -query | grep dpirelatará o desejado Xft.dpi: 90.

PS Existe outro método para corrigir a configuração de DPI, que é muito mais difícil e é descrita neste guia. Eu tentei também e o resultado foi o mesmo (pelo menos em 12.04).

Posfácio: Somente os desenvolvedores do Ubuntu podem dizer com certeza se os valores modificados pelas etapas 1 e 2 realmente importam no Ubuntu moderno ou são ignorados silenciosamente. Somente a Etapa 3 produz as alterações que são instantaneamente perceptíveis. Os usuários que consideram que certos aplicativos ainda podem depender das configurações do servidor X são incentivados a executar as três etapas descritas acima. Quanto ao resto, a Etapa 3 é suficiente - essa é a única maneira de personalização adotada nas distribuições modernas do Ubuntu.


2
Esta é uma resposta muito completa (Apreciamos a coisa toda), cheia de novas informações. Obrigado whtyger. +1
Luis Alvarado

2
Obrigado pela nota alta. Passei vários dias procurando em todos os lugares a solução do problema e agora fico feliz em compartilhá-lo com todos.
whtyger

1
aqui está uma planilha para economizar um pouco de tempo computando os valores: docs.google.com/spreadsheet/…
Tom Carchrae


1
@RaffiKhatchadourian Há esquema org.gnome.desktop.interfacee chave scaling-factornele. O valor padrão é 1 e pode ser apenas inteiro. Destina-se a monitores HiDPI. Existem alguns métodos para obter o fator de escala não inteiro usando xrandr. Verifique este link: wiki.archlinux.org/index.php/HiDPI (que é a base de conhecimento do Arch, não testou isso no Ubuntu).
whtyger

28

A partir do 14.04, temos uma opção que ajuda um pouco:

Suporte de dimensionamento

Na imagem abaixo, podemos ver a escala de 0,75 nas fontes e nas barras de título:

insira a descrição da imagem aqui

Na imagem abaixo, podemos ver a escala de 1,38 nas fontes e nas barras de título:

insira a descrição da imagem aqui


3
Isso funcionou para mim no Ubuntu 14.04 (alemão: "Anzeigegeräte"). Eu tive que restaurar o fator de escala de fonte padrão para 1.0 (eu o configurei para 2.0 antes) e redimensionar o tamanho do Launcher-Icon em "All Settings" -> "Darstellung "
rubo77 19/06/19

4
Isso não muda apenas o menu e as barras de título, incluindo o Iniciador, e NÃO o DPI total?
9788 John

1
@FuzzyToothpaste é por isso que eu disse "ajuda um pouco". Isso é que, quando você abaixa a escala, além de alterar o menu, a barra de título e os ícones do iniciador, o tamanho real das janelas, devido à alteração, será menor. Portanto, ajuda um pouco se você tiver, por exemplo, uma resolução de 1280x720 (como um laptop) e quiser instalar as janelas dentro do 720. Reduzir a escala para 0,8 ou menos "parecerá" que você está usando 1080 em vez de 720. Isso é claro que é com Non-Hi-DPI como os produtos da apple. Eu acho que o efeito seria maior nesse tipo de hardware.
Luis Alvarado

Olá, desculpe pelo meu comentário; Quero exibir as configurações de exibição como em suas fotos na sessão xserver: existe uma maneira de fazer isso?

9

No que diz respeito à minha experiência no Ubuntu, alterar a configuração do DPI da fonte muda muito mais do que apenas a maneira como as fontes são renderizadas. Também se aplica aos ícones e ao tamanho dos menus, por exemplo.

Só que o Xorg sugere ao ambiente de desktop qual é o DPI do monitor físico. E sim, você pode substituir isso no Xorg.conf, mas tem o mesmo efeito que alterar a configuração no seu DE. Por exemplo, no Kubuntu / KDE:

insira a descrição da imagem aqui


3
Existe uma versão Ubuntu (Unity) deste gerenciador de fontes.
Luis Alvarado

@LuisAlvarado Não, parece que este é apenas o GNOME2 e o KDE que oferecem isso ... A ferramenta Gnome-tweak deve ser capaz de fazer isso, mas trava a minha VM 12.10 Unity sempre que alterar o tamanho da fonte.
precisa saber é

9

Teve um problema semelhante, em uma tela de 2880x1620. Veja http://ubuntuforums.org/showthread.php?t=2106549 Resolvido colocando

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

no meu ~ / .xprofile

Em vez de "DP-0", coloque qualquer

xrandr

informa como nome do dispositivo.

Você pode ajustar a escala, é claro, mas 0,5 de alguma forma não ficou legal na minha tela.


3
Esta é apenas uma solução alternativa, porque você perde a resolução real. Com este dimensionamento seu monitor exibe apenas metade o pixel em vez de re tornando-lo na resolução escalado
rubo77

1
Infelizmente, o mouse não é dimensionado na mesma proporção que a tela ao usá-lo :-( Quando você reduz o tamanho da tela, é inofensivo, pois o mouse explora o espaço vazio fora da tela, mas ao expandir para obter um aplicativo complexo para exibir bem em telas menores, o mouse não chegar à borda da tela que torna este inutilizável nesse caso de uso
marsbard

7

Embora o xserver-command=X -dpi ...e os xrandr --dpi ...dados acima possam ter funcionado muito bem nas versões anteriores do Ubuntu, no Ubuntu 13.10 (que é o que eu tenho), o Unity ignora essas configurações e mantém o dpi fixo (no que diz respeito ao servidor X em 96 dpi).

E o xrandr --scale ...comando dimensiona a tela conforme descrito, mas a dimensiona de maneira a tornar o texto e os ícones um pouco embaçados. Mas funciona.

Parece que no Ubuntu 13.10 a melhor opção pode ser não tentar alterar a configuração de dpi para o servidor X, mas usar o unity-tweak-toolpara alterar as fontes padrão usadas pelo Unity e o fator de escala de fonte padrão. Você pode fazer o download unity-tweak-tooldo Ubuntu Software Center. Quando você abre ounity-tweak-toolvá para o botão Fontes e tente alterar o fator de escala da fonte para 1,2 ou 1,25 (ou superior ou inferior) para fazer com que as fontes tenham um bom tamanho. Nesse painel de controle, você também pode alterar as fontes padrão usadas pelo Unity. É certo que esta solução não dimensiona tudo na tela, apenas o texto, mas funciona muito bem no meu laptop com sua tela de 166 dpi. Parece que navegadores da Web como Firefox e Chromium não percebem essa configuração, mas ambos, Firefox e Chromium, permitem que você defina um tamanho mínimo de fonte nas configurações de aplicativos para aumentar a escala das fontes nas páginas da Web da mesma maneira.


Boa pesquisa Carl.
Luis Alvarado

5

No Ubuntu 14.10, com um laptop de 15 ", resolução 1920x1080 (345mm x 145mm), com densidade de 143ppi / dpi, fiz o seguinte.

No /etc/X11/xorg.conf.d/xorg.conf, adicionei o seguinte:

# 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

Isso define as configurações de dpi em todo o sistema para os 143dpi certos:

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

Também fiz todos os ajustes mencionados acima também:

  • Configurações do sistema (no painel Unity) -> Monitores -> Escala para as barras de menu e título: 1,25
  • No chromium, começo com: chromium-browser --enable_hidpi = 1
  • No Firefox, defini about: config -> layout.css.devPixelsPerPx: 1.4
  • No atom.io, comentei essa questão

Praticamente preciso ajustar todos os aplicativos, pretendo usar. Também nos navegadores, esse zoom também resulta em imagens borradas (ícones, botões em páginas da web etc.), porque também é ampliado. Eu adoraria definir algumas imagens nos tamanhos 1: 1 e 2: 1 com um único clique ou gesto.

Espero que ele adicione algumas informações úteis a partir de 9 de outubro de 2014.


Eu acho que você pode corrigir o bluriness escalando um múltiplo de 12. No mesmo caso definir o dpi para 144
Martin Konecny

+1 para colocar a data em sua postagem. Às vezes faço isso, mas você está me lembrando que preciso fazê-lo com mais frequência. (dica para todos os outros).
WinEunuuchs2Unix


3

Você pode dimensionar tudo com o xrandr, que provavelmente é o que você está procurando. Não sei ao certo como funciona internamente, mas o efeito parece ser uma alteração de dpi.

Para dimensionar sua resolução, primeiro encontre o nome da sua tela com 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)

Então, no meu caso, a tela do meu laptop é chamada LVDS.

Em seguida, execute o seguinte para dimensionar sua resolução:

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

O Iniciador e o Painel podem desaparecer por um momento, mas apenas passe o cursor sobre eles e eles devem reaparecer. Você também pode redimensionar as janelas abertas para que elas se ajustem à resolução menor.


Este desfoca a saída
Beernarrd

2

Como acabei com essa pergunta procurando o dimensionamento HiDPI do Windows no Ubuntu Gnome, aqui está minha adição a sugestões aleatórias, para que eu a encontre quando precisar novamente. :)

Para acessar esta caixa de diálogo, abra o Gnome Tweaks e vá para a seção Windows.

Gnome Tweaks - Windows


0

Estou usando o Zorin8 (baseado no Ubuntu13.x).

Você pode dimensionar a tela com o mouse (1024/800 = 1,28, 768/600 = 1,28):

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

Ou apenas desloque a tela, portanto, use o mouse para ver partes que não são visíveis na tela:

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

-2

Na verdade, você não pode alterar os ppi físicos do seu monitor. O ppi real é o hardware real, no entanto, a maioria dos softwares assume um ppi de 72 dpi por razões históricas, embora 96 ​​dpi não sejam incomuns agora.

Você pode alterar a resolução do monitor, que altera os ppi traduzidos, e pode alterar coisas como o tamanho da fonte.

Se você instalar o MyUnity, poderá alterar o DPI da fonte, entre outras coisas.

Se você tivesse um monitor real de 1024x768 pixels (resolução) e 72dpi, seria um monitor de 17 ". Se você definir um tamanho de fonte de 72, um caractere terá 1" de altura. Se você definir a tela com resolução de 800x600, a fonte será maior, enquanto a definição de 1600x1200 fará com que a fonte pareça menor.


E as opções do xorg como "UseEDIDDpi" e "DPI"? Eu li que, por exemplo, o primeiro pode desativar a leitura do EDID da placa de vídeo, caso seja lido errado e com o DPI você pode alterar o DPI. É isso que me confunde.
Luis Alvarado
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.