![¿Cómo determinar qué entidad cambia la configuración de DPI de Xorg?](https://rvso.com/image/169420/%C2%BFC%C3%B3mo%20determinar%20qu%C3%A9%20entidad%20cambia%20la%20configuraci%C3%B3n%20de%20DPI%20de%20Xorg%3F.png)
Instalé Xubuntu 19.04 y, para tener en cuenta la resolución de la pantalla de mi computadora portátil, /etc/lightdm/lightdm.conf
agregué la línea
xserver-command=X -dpi 166
El resultado es que el panel XFCE, el terminal y otros programas GTK2 y GTK3 adoptan los tamaños de fuente correctos (lo mismo que si hubiera configuradoConfiguración de DPI personalizadaenApariencia→Fuentesa 166), pero todos los demás como, por ejemplo, Yakuake todavía ven 96 DPI. Además, si lo intento xdpyinfo
, obtengo estos 96 DPI:
$ xdpyinfo | grep dot
resolution: 96x96 dots per inch
Además, si marco y desmarco la casillaConfiguración de DPI personalizadaopción, las fuentes también se reducen en XFCE (aparentemente, el servidor X vuelve a consultar DPI).
Entonces sospecho que, durante el inicio de la sesión, alguna entidad cambia la configuración de DPI de la pantalla como si estuviera ejecutando xrandr --dpi 96
. Si ejecuto manualmente xrandr --dpi 166
, los programas comienzan a comportarse correctamente.
Me gustaría saber qué entidad exactamente está haciendo esto, para solucionarlo desde el principio en lugar de agregar soluciones alternativas posteriores al inicio. ¿Cómo puedo encontrarlo?
Respuesta1
Gracias a los comentarios de @mosvy, descubrí que el culpable es xfsettingsd
. En particular, suxfce_displays_helper_normalize_crtc
La función contiene esta elección arbitraria codificada de 96 DPI:
/* The 'physical size' of an X screen is meaningless if that screen
* can consist of many monitors. So just pick a size that make the
* dpi 96.
*
* Firefox and Evince apparently believe what X tells them.
*/
helper->mm_width = (helper->width / 96.0) * 25.4 + 0.5;
helper->mm_height = (helper->height / 96.0) * 25.4 + 0.5;
Después de eliminar esta función en el binario reemplazando su primer byte con 0xC3
(instrucción x86/x86_64 RET
), ya no me imponen 96 DPI.
Sin embargo, esta no es una solución a largo plazo, porque una actualización puede sobrescribir este archivo, por lo que tengo que conservar xfce4-settings
el paquete (por apt-mark hold xfce4-settings
) o hacer algo más para evitar este mal comportamiento.