Quem está definindo o Xresource Xft.dpi?

4

Recentemente, recebemos novos laptops com uma tela de 2160p. Eu recebi com o Ubuntu 16.04 instalado no desktop Unity. Desde então, instalei e usei o Xfce 4, mas mantive o greeter da Unity (porque bonito).

Eu esperava ver problemas de dimensionamento de fonte com a exibição de alto DPI, mas algo definiu o coeficiente Xft.dpi para 192 em vez do típico 96. Isso é obtido por quase todos os aplicativos, fazendo com que a exibição interna seja maioritariamente utilizável. 10 de 10, certo?

Bem, não, porque não consigo descobrir onde isso está sendo definido. O painel de aparência do Xfce afirma que o DPI é 96. dconf variables onde elas existem também mostram 96. xdpyinfo também diz que é 96. Xorg.0.log tem uma mensagem sobre DPI, e diz que é 96. lightdm.conf (arquivo de configuração para o Unity greeter) não mostra nenhuma tentativa de alterá-lo. E xrandr está relatando uma matriz de transformação de identidade (sem escala).

Minha suspeita é que o GNOME ou o greeter Unity são os culpados, já que o greeter começa renderizado no Flyspeck 3, mas depois se recupera depois de um momento. Mas não consigo descobrir onde foi dito para fazer isso ou como ele persiste na sessão de desktop.

Meu objetivo é conectar um monitor externo de 1080p e ajustar o DPI de modo que ambos os displays fiquem vagamente legíveis. Mas eu não posso efetivamente fazer isso se estou lutando com outra coisa tentando fazer isso pelas minhas costas.

Todas as pistas são bem-vindas.

Informações do sistema

  • Ubuntu 16.04.3
  • unidade 7.4.0 + 16.04.20160906-0ubuntu1
  • xorg 1: 7.7 + 13ubuntu3
  • xfce 4.12.2
por ewhac 30.08.2017 / 22:26

2 respostas

1

Eu tenho isso parcialmente descoberto. @derobert estava correto; a configuração é deixada pelo saudador Unity.

Eu criei duas contas de usuário fictícias para experimentar. O greeter da Unity começa em 96 DPI, depois se redesenha a 192 DPI. Com um usuário fictício recém-criado, fiz login em uma sessão do Unity. A área de trabalho retornou imediatamente para 96 DPI. Os vários painéis de controle também relataram 96 DPI. Então, o Unity parece forçar a configuração.

Com o outro usuário fictício, eu entrei em uma sessão do Xfce. Todos os painéis de controle relataram 96 DPI. No entanto, o DPI relatado por xrdb -query - e usado por todos os programas em execução - permaneceu em 192, presumivelmente remanescente do greeter da Unity. Mas o instante eu modifiquei a configuração de DPI no painel de controle de aparência do Xfce, a área de trabalho inteira virou para o valor de DPI e ficou lá. Meu palpite é que, até você tocar no valor de DPI, a configuração não estará nas variáveis xfconf do usuário e, se não estiver presente, ela não será configurada explicitamente no login.

Parece que o Xfce tem um bug - seja para não verificar o valor atual de Xft.dpi na inicialização ou para não forçá-lo a um padrão esperado.

Eu ainda não descobri por que a saudação da Unity está mudando para 192 DPI em primeiro lugar.

    
por 09.09.2017 / 03:08
0

Aparentemente, o daemon Gnome-settings muda Xft.dpi.

Eu executo isso como /usr/lib/gsd-xsettings de ~ / .xinitrc. Eu não uso o Gnome, mas preciso configurar vários aplicativos GTK para, por exemplo, não pisca o cursor, e é por isso que eu corro o daemon. (Eu também poderia editar ~/.config/gtk-3.0/settings.ini )

Eu acabei de alterar isso, então eu corro o xrdb depois iniciando o daemon de configurações.

Provavelmente não estou entendendo parte da terminologia da pergunta, mas talvez isso seja útil. Eu imagino que um dos softwares que você está executando está executando gsd-xsettings.

Aqui é a parte do código que altera a propriedade Xft.dpi:

$ grep -n Xft.dpi gnome-settings-daemon/plugins/xsettings/gsd-xsettings-manager.c -2
852-        g_debug("xft_settings_set_xresources: orig res '%s'", add_string->str);
853-
854:        update_property (add_string, "Xft.dpi",
855-                                g_ascii_dtostr (dpibuf, sizeof (dpibuf), (double) settings->scaled_dpi / 1024.0));
856-        update_property (add_string, "Xft.antialias",

A parte superior desse arquivo explica detalhadamente por que o padrão do software é 96 DPI. Presumivelmente, eu poderia configurar algo para definir um valor XSETTINGS para "Xft / DPI" e, em seguida, o GTK estaria usando o valor que eu prefiro, em vez de sobrescrever o valor que eu configurei em ~ / .Xdefaults com seu "padrão" de 96.

    
por 28.09.2018 / 23:46