Problema de escalado usando resolución Ultra HD entre una computadora portátil y un monitor

Problema de escalado usando resolución Ultra HD entre una computadora portátil y un monitor

Tengo una computadora portátil que usa Arch Linux y Gnome Shell. Mi tarjeta gráfica es una Intel HD 520. La resolución de pantalla de mi computadora portátil es 3200×1800. En el trabajo conecto mi computadora portátil a un monitor que tiene una resolución de 1920×1080. La conexión se realiza mediante un cable HDMI. El sistema detecta correctamente ambas pantallas y sus resoluciones. El problema es el siguiente:

En resoluciones ultra HD, Gnome (¿Gnome hace esto o es el controlador de la tarjeta gráfica?) escala las ventanas para hacerlas más grandes. Esto tiene mucho sentido; de lo contrario, la barra de Firefox, por ejemplo, sería una línea delgada. Pero el problema es que cuando muevo una ventana (por ejemplo, Firefox) de un monitor a otro, esta escala se conserva. Como resultado, las cosas parecenenormeen mi monitor de 1920×1080, aunque la resolución se detecta correctamente.

  1. ¿Es esto un error? En caso afirmativo, ¿de quién es la culpa? ¿Gnome, gráficos Intel HD o el kernel de Linux?
  2. ¿Puedo corregirlo?

Respuesta1

  1. TLDR: No es un error, solo una solución menos ideal para usar cómodamente pantallas HiDPI.

Parece que estas soluciones surgen del hecho de que la mayoría del software no compensa automáticamente los monitores con DPI más altos. Si dejamos las cosas como están (sin escala ni configuración de DPI), muchos programas terminan viéndose pequeños en una pantalla HiDPI. Como tal, la compensación se puede realizar a nivel del sistema operativo (consulteInformación sobre HiDPI para Arch Linux), pero esto causa un problema cuando tienes dos pantallas con diferente densidad de píxeles.

  1. Dada una pantalla HiDPI interna a 3200x1800 y una externa a 1920x1080, las siguientes configuraciones deberían funcionar (probadas con Dell XPS9350 y XPS9360).

Configurar externo a la derecha:

xrandr --dpi 276 --fb 7040x3960 --output eDP-1 --mode 3200x1800 --output 
DP-1 --scale 2x2 --pos 3200x0 --panning 3840x2160+3200+0

Configurar externo a la izquierda:

xrandr --dpi 276 --fb 7040x3960 --output DP-1 --scale 2x2 --panning
-3840x2160+3200+0 --pos 0x0 --output eDP-1 --mode 3200x1800 --pos 3840x0

Si uno se encuentra cambiando mucho, podría ser una buena idea poner estos comandos en su .bashrc como alias. Por ejemplo:

alias ext-config-right="xrandr --dpi 276 --fb 7040x3960 --output eDP-1 --mode 
3200x1800 --output DP-1 --scale 2x2 --pos 3200x0 --panning 3840x2160+3200+0"

Respuesta2

Parece ser que hay una configuración única para pantallas ultra HD, que se aplica a todos los monitores conectados, aunque puede que no sea adecuada, y parece ser una configuración de X, tal vez.

ElWiki de ArchLinuxtiene una sección sobre esto, con algunas opciones usando xrandr para escalar el monitor, donde eDP1 es la pantalla del portátil:

xrandr --output eDP1 --auto --output HDMI1 --auto --scale 2x2 --right-of eDP1

aparentemente todavía puede haber algunos problemas, ya sea que estas dos pantallas se superpongan o, en segundo lugar, es posible que el cursor no cubra todas ambas pantallas.

si el monitor interno tiene dimensiones AxB, el externo tiene CxD y la escala es ExF, como se sugiere en la wiki de Arch, entonces un script de shell está vinculado a un usuario llamadovengados Github, que necesitaría que las pantallas tuvieran las adecuadas. Da:

xrandr --output eDP1 --auto --pos ${(A-C)/2}x${D} --scale 1x1 \
--output HDMI1 --auto --scale 2x2 --pos 0x0

Para el segundo problema, Arch sugiere utilizar la panorámica:

xrandr --output eDP1 --auto \
--output HDMI1 --auto --panning [C*E]x[D*F]+[A]+0 --scale [E]x[F] --right-of eDP1

y finalmente, si algo de eso ayudó, la wiki de Ubuntu sugiere que el comando xrandr podría guardarse en /etc/gdm/Init/Default, justo antes de la línea initctl -q emit login-session-start DISPLAY_MANAGER=gdm. (lo siento, representante demasiado baja para un tercer enlace...)

información relacionada