¿Es posible tener diferentes configuraciones de DPI para dos pantallas diferentes?

123

Estoy usando Ubuntu 12.04.3 con controladores NVidia (319) para mi tarjeta gráfica Quadro K2100M, y cuando cambio la pantalla principal de mi computadora portátil 3200x1800 al modo 1920x1080 (usando nvidia-settings), la pantalla se vuelve borrosa ...

Estoy usando dos pantallas:

  • Mi pantalla principal es una LCD con resolución máxima de 1920x1200.
  • La pantalla de mi computadora portátil (resolución original 3200x1800) se encuentra a la derecha de eso.

El principal problema es que, en Ubuntu, la fuente es demasiado pequeña en la pantalla de mi computadora portátil. Debido a eso, quería cambiar la resolución de mi computadora portátil a 1920x1080.

Leyendo la respuesta de Galgalesh , traté de calcular mi DPI y aquí está la configuración de DPI que debería tener:

  • 94x94 para mi pantalla LCD principal 1920x1200
  • 235x236 para la pantalla de mi computadora portátil 3200x1800

¿Hay alguna manera de tener resoluciones DPI dobles con un escritorio extendido?

Anthony O.
fuente
3
Bueno, manejar cualquier pantalla LCD en una resolución no nativa aparecerá borrosa. Esto se debe a la forma en que los píxeles se disponen de forma fija y la señal no coincide con esto. ¿Qué es exactamente lo que esperas que pase? ¿Deshabilitar la escala quizás? Pero luego solo se muestra en el medio de la pantalla y no en pantalla completa. Para una visualización óptima, mantenga siempre su visualización en la resolución de pantalla nativa. No creo que esto tenga nada que ver con Ubuntu.
gertvdijk
2
@gertvdijk: ¿Entonces tiene una manera de mantener ambos monitores en su resolución de pantalla nativa? Creo que eso es lo que Anthony pregunta.
beldaz
2
@beldaz Mi respuesta fue a la revisión 1 de la pregunta . No mencionó nada relacionado con la configuración de doble pantalla en ese momento. Debido a que la pregunta se modificó significativamente, esto levanta las cejas para cualquier publicación modificada después de esa fecha. Básicamente invalida todo lo contribuido y realmente disminuye mi motivación para ayudar. Los usuarios deberían hacer una nueva pregunta, en mi opinión.
gertvdijk
@gertvdijk Lo siento, tiene sentido ahora.
beldaz
Me pregunto si la posibilidad de usar Wayland en el nuevo Ubuntu hace que esto sea más fácil de resolver.
mkataja

Respuestas:

120

Parece que la gente todavía está luchando por tratar de trabajar con varios monitores y pantallas HiDPI. Una buena solución se describe en arch wiki https://wiki.archlinux.org/index.php/HiDPI#Multiple_displays . Así que tengo:

  • portátil asus ln303ux: 3200x1800,
  • monitor externo: 1920x1200

Ahora uso Ubuntu 14.10 y GNOME Shell 3.12.2 que tiene soporte HiDPI bastante utilizable. Así que solo uso el soporte inmediato de HiDPI: el factor de escala es 2 (se puede configurar a través de la GUI). Eso significa que en el monitor externo obtengo todo el doble de lo aceptable. Por lo tanto, uso xrandr; pero en lugar de reducir la escala de la pantalla del portátil, amplío la pantalla del monitor externo:

xrandr --output HDMI1 --scale 2x2 --mode 1920x1200 --fb 3840x4200 --pos 0x0
xrandr --output eDP1 --scale 1x1 --pos 320x2400

Entonces, uno por uno:

  1. --output HDMI1en mi caso es la pantalla externa, eDP1es la pantalla del portátil.
  2. --scale 2x2 - haga que todo en la pantalla externa sea dos veces más pequeño
  3. --mode XxY - establece explícitamente la resolución para la pantalla (no es necesario si ya está configurado)
  4. --fb XxY- establecer el tamaño de una pantalla virtual (framebuffer) ( importante sin esto, solo podrá usar una cuarta parte de la pantalla). En mi caso, una pantalla estaba encima de otra, así que agregué alturas efectivas 2400 + 1800 = 4200. También tenga en cuenta que el tamaño máximo de framebuffer puede especificarse en xorg.conf, entonces no puede excederlo (está escrito en la primera línea de xrandr -qsalida).
  5. --pos XxY- en mi caso configuré el posicionamiento absoluto de las pantallas, por lo que la pantalla de mi computadora portátil está directamente en la parte inferior de la pantalla externa. El valor Y aquí es el doble de la altura del monitor externo.

Y esto es todo! Todo es tan nítido como podría ser.

FYI: para obtener los nombres de las pantallas y las resoluciones disponibles, se puede ejecutar xrandr --current. Puede encontrar más información sobre cómo configurar la resolución aquí: https://wiki.ubuntu.com/X/Config/Resolution .

ACTUALIZACIÓN - OPCIÓN 2: una solución alternativa más interesante para aplicaciones que admiten GTK3. Si normalmente uso solo una aplicación en la pantalla grande (por ejemplo, algunos IDE, como leksah), no cambio el tamaño de la pantalla, pero ejecuto la aplicación escalada a su tamaño original

env GDK_SCALE=0.5 GDK_DPI_SCALE=0.5 CLUTTER_SCALE=0.5 appname
artem
fuente
77
tengo un error of failed request: BadValue (integer parameter out of range for operation):-(
Juh_
44
La --fbopción no parece habilitar más de un cuarto de la 2x2pantalla (el cursor del mouse no se puede mover más allá del cuadrante superior izquierdo)
EoghanM
2
El escalado funciona, pero ¿no pierde el HiDPI? Todo parece escalado y borroso.
Andy
8
Para una configuración lado a lado con un monitor externo de 1920x1080 ubicado a la izquierda de mi computadora portátil hiDPI 3200x1800:xrandr --output eDP1 --scale 1x1 --pos 3840x0 ; xrandr --output HDMI1 --scale 2x2 --mode 1920x1080 --fb 7680x2160 --pos 0x0
Daniel Bower
2
El parámetro --fb es 2 * monitor externo + pantalla del portátil
Brian C.
10

¿Por qué está borroso?

Su pantalla siempre muestra 3200x1800 píxeles. Si baja la resolución de la pantalla en su computadora, eso significa que su pantalla tiene que escalar la imagen para que se ajuste a su pantalla. Dependiendo de la relación entre su resolución nativa y la resolución actual, esa escala producirá una imagen borrosa.

Puede encontrar más información sobre la escala y la resolución nativa aquí: https://en.wikipedia.org/wiki/Native_resolution

¿Cómo puedo agrandar el texto?

Si el texto es demasiado pequeño, tiene dos opciones:

1. Cambiar el tamaño de fuente de Ubuntu

¿Cómo cambio las fuentes y ajusto su tamaño?

2. Cambiar DPI (agrandará toda la interfaz, no solo el texto)

¿Cómo encontrar y cambiar la pantalla DPI? (respuesta por @whtyger)

Galgalés
fuente
1
Solo como una nota sobre el aumento de los tamaños de fuente. En lugar de eso, aumente el DPI para que se escale toda la interfaz de usuario. Esto debería reconocerse correctamente automáticamente (leyendo el EDID desde su pantalla), pero si eso falla: ¿Cómo encontrar y cambiar el DPI de la pantalla?
gertvdijk
23
En realidad, esa no es una respuesta para mi pregunta. Estoy usando dos pantallas diferentes con diferentes resoluciones . Hice el cálculo: mi pantalla LCD principal izquierda debería tener una resolución de 94x94 DPI, mientras que la pantalla de mi computadora portátil derecha debería tener 235x235 DPI ... Y no encuentro ninguna manera de establecer dos resoluciones de DPI diferentes, excepto configurando nvidia para ejecutar 2 separó X, y luego no puedo pasar una ventana de izquierda a derecha ... Windows es mucho mejor para manejar ese problema :(
Anthony O.
99
-1 por ignorar completamente el punto de la pregunta
Martin Konecny
8
@AnthonyO. Por favor, no cambie su pregunta considerablemente después de que se haya publicado una respuesta que no le gusta. En el momento en que se publicó esta respuesta, no mencionó nada relacionado con una configuración de pantalla dual (consulte la revisión 1 ). Cambiar su pregunta invalida todo lo que ya se haya publicado y no debe hacerlo. En cambio, revierta las ediciones de preguntas y publique una nueva pregunta.
gertvdijk
55
@MartinKonecny ​​El interlocutor original editó sustancialmente su pregunta, esta respuesta responde a su pregunta original, verifique las revisiones.
Jamie Kitson
7

Utilicé la solución de artmem pero me encontré con el problema del mouse mencionado por EoghanM. La solución que encontré en el antiguo informe de error al que se vinculó se relacionó con --panning.

Estoy fotografiando para: - DP1-2 3840x2160 en DIP nativo. - eDP1 1366x768, escalado para parecer razonable a la derecha de DP1-2.

Obtengo que esto suceda al tener un búfer de trama que es como DP1-2 + (2x eDP1) y luego escalo todo 1/2 yendo a eDP1.

Esto debería ser simple, pero xrandr es un poco complicado.

Aquí --scale se usa para reducir todo lo que va a eDP1 en 1/2. - el desplazamiento es el mismo que eDP1 en el búfer de trama original con la posición (+ 3840 + 0) justo a la derecha de DP1-2. + 0 + 2160 estaría debajo de él.

xrandr -d :0 --fb 6572x3696 --output DP1-2 --mode 3840x2160 --scale 1x1 --rate 60 --pos 0x0 --primary

# sometimes panning get applied incorrectly when switching from some other mode, running it twice is a work around
xrandr -d :0 --output eDP1 --off
xrandr -d :0 --fb 6572x3696 --output eDP1  --mode 1366x768  --scale 2x2 --panning 2732x1536+3840+0
xrandr -d :0 --fb 6572x3696 --output eDP1  --mode 1366x768  --scale 2x2 --panning 2732x1536+3840+0

También configuré Xft.dpi en 185

$ cat ~/.Xresources
Xft.dpi: 185

Cuando me desconecto del monitor externo ejecuto:

xrandr -d :0 --output DP1-2 --off
xrandr -d :0 --fb 2732x1536 --output eDP1  --mode 1366x768  --scale 2x2 --panning 2732x1536+0+0 --pos 0x0 --primary

Eso no se ve muy bien, pero no estoy muy lejos de mi escritorio. Puede solucionar esto cambiando Xft.dpi y reiniciando todos sus programas de escritorio. No conozco una forma de cambiar Xft.dpi y luego hacer que los clientes lo usen sin reiniciarlos.

Brian C.
fuente
La panorámica fue la pieza final del rompecabezas: resolvió el cursor atascado en una cuarta parte del problema de la pantalla. Gracias @Brian!
rtindru
2
"ejecutarlo dos veces" ???? Holy Pixel, funciona (ya estaba aplicando la panorámica, pero se aplica correctamente solo si ejecuto el mismo comando dos veces).
Riccardo Galli
Sí, noté que funcionaba cada dos veces que lo ejecutaba, así que pensé en probarlo dos veces y, bueno, aquí estamos.
Brian C.
Muy bien, entonces esto no funciona con el núcleo 4.5.2. Instalé solo ese kernel para tratar un problema relacionado con Docker en 4.5.1 y ahora el script anterior me deja con una pantalla en negro. Para arreglar esto en 4.5.2 hago los comandos eDP1 primero sin el --off y luego el comando DP1-2.
Brian C.
1
¡Finalmente trabajé con la panorámica! Sin embargo, todavía tengo un mouse y una pantalla con fallas (desde que comencé a usar xrandr). ¿Alguna idea?
hsandt
4

Pude resolver esto (con problemas) usando los detalles descritos en la siguiente discusión de github: https://github.com/linuxmint/Cinnamon/issues/3606

Monitor externo QHD (2560X1440), monitor interno / portátil 3200x1800

xrandr --output eDP-1 --scale 1x1 --pos 0x2880
xrandr --output DP-1 --mode 2560x1440 --scale 2x2 --fb 5120x4680

O

Monitor externo FHD (1920x1080), monitor interno / portátil 3200x1800

xrandr --output eDP-1 --scale 1x1 --pos 0x2160
xrandr --output DP-1 --mode 1920x1080 --scale 2x2 --fb 3840x3960

Estos funcionan, pero hay una cantidad significativa de desgarros en el monitor de alta resolución (computadora portátil) cuando muevo ventanas, cambio el tamaño de las pantallas o me desplazo en un navegador. Esto se siente como una solución de software (que tiene todos estos problemas de desgarro y actualizaciones lentas).

En 2017, Linux / Gnome necesita abordar la solución de escalado mixto de varios monitores. Tanto Windows 10 como OS X tienen esto resuelto sin tener que recurrir a soluciones de ayuda de banda de línea de comando que funcionan parcialmente (el problema de desgarro no es aceptable para los juegos)

Jeets
fuente
1
¿Es esta una nueva respuesta o estás tratando de reportar un error?
user68186
Es una elaboración sobre una respuesta existente, con más opciones que uno puede aprovechar. La respuesta proporcionada por @artem arriba explica cómo funcionan estas configuraciones. Simplemente intenté proporcionar 2 opciones que se pueden usar para personas que tienen un monitor externo QHD o FHD, y un monitor primario 4K / monitor portátil. El error está en el desgarro que ves con esta solución. Eso es inherente a este enfoque.
Jeets
2
Con la proliferación de 4k y configuraciones de resolución múltiple, estoy de acuerdo con el párrafo final que necesita resolución. No era tan malo antes, pero ahora simplemente está arruinando mi configuración en un monitor ahora que tengo un 4k. Esperemos que Ubuntu 18 LTS lo solucionen.
neuronet
3
Es 2018 ... sigue siendo el mismo sh1t :)
Stefanos Kalantzis
Wayland funciona muy bien para esto. Excepto que es solo por esto ... También tuve una buena experiencia con wayland + kde, mejor que gnome + wayland. Regresé a X debido a la falta de soporte para algunos programas que solo se ejecutan en X y a problemas de estabilidad. 2018 ...
Victor
4

Estas respuestas son geniales y me ayudaron anteriormente, pero una reciente

sudo apt-get upgrade 

borré mi configuración de randr! Al intentar restaurar mi configuración, descubrí que ya no podía colocar el mouse más allá del cuadrante superior 1/4 de la segunda pantalla, sin importar la entrada --fb. De https://wiki.archlinux.org/index.php/HiDPI#Side_display finalmente descubrí que agregar paneo funcionó. Además, el uso de '--right-of' o '--left-of' es más simple que '--pos'.

"Genéricamente, si su monitor HiDPI (computadora portátil) tiene píxeles AxB y su monitor normal (externo) es CxD y está escalando con [ExF], la línea de comandos para el derecho es:"

xrandr --output eDP-1 --auto --output HDMI-1 --auto --panning [C*E]x[D*F]+[A]+0 --scale [E]x[F] --right-of eDP-1
ONECore
fuente
Esto es interesante, y definitivamente parece que podría ser útil para alguien, aunque no estoy seguro exactamente de que esto sea una respuesta a esta pregunta. ¿Tal vez deberías abrir y luego responder tu propia pregunta? No muy seguro.
Hee Jin
1
@ Emily: Creo que esta respuesta pertenece aquí. Utilicé la respuesta de artem hoy y tuve el problema exacto que ONECore declaró (solo el cuadrante superior izquierdo de la pantalla se podía usar con el mouse). Afortunadamente, vi esta respuesta, y la panorámica funcionó al instante.
BrainCore
Sí, lo siento, quería que fuera una respuesta a la respuesta de @ artem, pero Stackexchange es súper increíble y no me dejará responder hasta que obtenga 50 puntos de brownie.
ONECore
También tenga en cuenta que esto no parece ser persistente, por lo que a menos que lo agregue a xorg.conf, desaparecerá en cada reinicio. Pero luego, si lo agrega allí, fuerza esa configuración sin importar qué (a veces no enchufo el monitor). Por lo tanto, me resulta muy fácil crear un shell y ejecutarlo cuando quiero. Simplemente agregue el código anterior a un archivo de texto que termine en .sh (como resolution.sh), luego hágalo ejecutable con "chmod 0700 resolution.sh" en el terminal.
ONECore
¡Muchas gracias por compartir tu experiencia también @BrainCore!
Hee Jin
1

Tengo un monitor de 1024x768 desactualizado, conectado a una computadora portátil (menos desactualizada).
Las ventanas se muestran en tamaños bastante diferentes, mucho más grandes en el monitor externo (que tiene un tono de punto más grande y antiguo).
Encontré un comando para escalar el monitor:

xrandr --output VGA-1 --scale 1.5x1.5

VGA-1 es el nombre interno del monitor, que se encuentra al ejecutar el siguiente comando:

xrandr --current | grep connected

El efecto es que ahora el monitor antiguo muestra su contenido en casi el mismo tamaño que el portátil.

Curiosamente, funciona escalando x1.5 pero no 1.45, la pantalla (en mi caso) se vuelve negra.

Cuando ejecuté el comentario de la escala la primera vez, el resultado fue aterrador porque el contenido de ambas pantallas se superpuso. Por ejemplo, el puntero del cursor apareció dos veces.

Ejecuté un programa:

arandr &

para establecer las posiciones relativas de la pantalla para arreglarlo.
Funciona como la configuración Configuración> Dispositivos> Pantallas .

Lo instalé con:

sudo apt-get install arandr

¡Gracias @LuisAlvarado y otros por compartir sus conocimientos!

Juan lanus
fuente
Esto funciona para mí temporalmente, pero no se pega si reinicio. Creo que necesito encontrar un script para hacer lo que arandrestá haciendo aquí, y luego poner todo en mi bashrc o algo así. ¡Gracias!
Max von Hippel
arandr puede exportar un archivo de configuración. Configuré el archivo en mi escritorio y lo introduje en arandr en cada reinicio. No desarrollé un script y ahora tengo un monitor y ya no uso arandr.
Juan Lanus
0

Puño $xrandrpara mostrar todas las salidas

Screen 0: minimum 320 x 200, current 7680 x 2160, maximum 8192 x 8192
eDP-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
   3840x2160     60.00*+  59.98    59.97  
   3200x1800     59.96    59.94  
   2880x1620     59.96    59.97   
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 connected 3840x2160+3840+0 (normal left inverted right x axis y axis) 521mm x 294mm
   1920x1080     60.00*+  50.00    59.94  
   1920x1080i    60.00    50.00    59.94  
   1680x1050     59.88  
   1280x1024     75.02    60.02

Como puede ver en este caso, el segundo monitor está conectado. DP-3 Luego puede revender la pantalla: $xrandr --output DP-3 --auto --scale 2x2

Abdelhak
fuente