1 puntos por GN⁺ 2023-12-30 | 1 comentarios | Compartir por WhatsApp
  • Es un experimento para no limitar los monitores de desarrollo a 0° y 90°, sino aplicar rotaciones de ángulo arbitrario con xrandr en Linux para obtener líneas de código más largas
  • 0° funciona bien para apps y videos panorámicos, pero deja muchos márgenes en sitios web y documentos; 90° es bueno para leer documentos de texto, pero resulta desfavorable para ver películas y por los ángulos de visión
  • 1° puede servir para compensar la inclinación del escritorio, pero el renderizado de fuentes se vuelve inestable; 45° parece un punto medio entre horizontal y vertical, pero en relaciones de aspecto no cuadradas el aprovechamiento del espacio se vuelve raro
  • En un monitor ultrawide 21:9, una rotación de unos 22°, cercana a la diagonal, se trata como la configuración que ofrece la mayor longitud de línea
  • La aplicación real se hace en Xorg colocando una matriz de transformación en xrandr --output HDMI-3 --transform...; Wayland no era compatible

Experimento de rotación de monitor más allá de 0° y 90°

  • Los monitores en vertical se han probado desde hace tiempo para lectura y programación, y su ventaja es que permiten mostrar mucho texto a la vez
  • La comparación de ángulos básicos es la siguiente
    • : encaja bien con la mayoría de las aplicaciones y videos en formato panorámico
    • Desventaja de 0°: puede generar muchos márgenes y padding alrededor de sitios web y documentos
    • 90°: adecuado para documentos de texto que se leen hacia abajo, como la página de un libro
    • Desventaja de 90°: no muestra bien las películas y causa problemas de ángulo de visión
  • En Linux, se puede rotar la pantalla a un ángulo arbitrario con xrandr
    • En macOS y Windows, hacer lo mismo es más complicado
    • En una MacBook el experimento no funcionó, pero en una computadora de escritorio funcionó sin problemas
  • Los resultados por ángulo adicional mezclan practicidad y humor
    • : se observó que la barra de menú desaparecía hacia la derecha y, aunque puede ser útil cuando el escritorio está ligeramente inclinado, el renderizado de fuentes se vuelve extraño
    • 45°: da una sensación intermedia entre horizontal y vertical, cercana a la diagonal, pero en relaciones de aspecto que no son cuadradas el espacio no encaja bien
    • 22°: en una relación de aspecto 21:9, se acerca a la rotación necesaria según el cálculo del ángulo del triángulo, y se trata como la configuración que ofrece la mayor longitud de línea
  • La rotación de 22° lleva a la conclusión de que, gracias a la gran longitud de línea, ya no hace falta preocuparse por el límite de 80 columnas, pero la webcam empieza a deslizarse hacia abajo

Aplicarlo con una matriz de transformación de xrandr

  • El entorno de funcionamiento se limitó a Xorg, sin compatibilidad con Wayland
  • El comando básico tiene la forma xrandr --output HDMI-3 --transform lots of numbers here
  • En --transform se coloca una matriz de transformación para la posición y la rotación de la pantalla
  • El formato básico necesario para rotar y desplazar es el siguiente
cos(x),-sin(x),shift_left,sin(x),cos(x),shift_up,0,0,1
  • Los comandos de ejemplo no incluyen desplazamiento al centro y no centran la pantalla con el argumento de que no se conoce la resolución
#-0.1
xrandr --output HDMI-3 --transform 0.999998476913288,0.00174532836589831,0,-0.00174532836589831,0.999998476913288,0,0,0,1

#1
xrandr --output HDMI-3 --transform 0.999847695156391,-0.0174524064372835,0,0.0174524064372835,0.999847695156391,0,0,0,1

#45
xrandr --output HDMI-3 --transform 0.707106781186548,-0.707106781186548,0,0.707106781186548,0.707106781186548,0,0,0,1

#22
xrandr --output HDMI-3 --transform 0.927183854566787,-0.374606593415912,0,0.374606593415912,0.927183854566787,0,0,0,1
  • También se incluye una pequeña calculadora en JavaScript que genera comandos xrandr a partir de los valores de entrada

1 comentarios

 
GN⁺ 2023-12-30
Opiniones de Hacker News
  • Este artículo lo plantea en tono gracioso, pero en realidad algunos sistemas de control de tráfico aéreo usan pantallas rotadas en diagonal, con esa “línea larga” alineada con la ruta principal de aproximación al aeropuerto.
    La configuración que vi era una pantalla grande con entrada por stylus, no una ultrapanorámica, sino una pantalla de relación de aspecto relativamente estándar girada en ángulo.
    • Yo también busqué, como otros, y vi bastantes pantallas con relación 1:1; eso no me parece nada mal.
    • Me encantaría ver una foto de esa configuración.
    • Interesante. Por eso me cuesta entender la decisión de usar GPS/apps de mapas en dispositivos en modo horizontal aun configurándolos para que la dirección de avance quede “arriba”.
      Quiero maximizar la información “hacia adelante”, por donde voy a manejar, no la de los costados.
  • Si tienes un monitor ultrapanorámico, ¿no podrías girarlo y crear una enorme pantalla circular mediante persistencia de la visión? También podría servir como ventilador para dispersar el calor que genera la GPU al redibujar constantemente.
    • Hace unos días me apareció en el feed de YouTube “spinning gaming monitor”: https://youtu.be/J6P3o6zrqsc?si=NUB7YviQNYoSW7Vi
    • La mayoría de los compositores ya redibujan continuamente, y en chips modernos casi no supone carga. Tampoco creo que se note el costo adicional de los cálculos de movimiento y rotación.
  • Cambiando un poco de tema, mi consejo es que conviene más un 4K grande que un ultrapanorámico. Obtienes más píxeles por menos dinero.
    Los únicos ultrapanorámicos que realmente valen la pena son los modelos de resolución 5K x 2K; tienen más píxeles que un solo 4K, pero son caros. Aun así, un monitor 5K 16:9 tiene más píxeles.
    Personalmente uso tres 4K de 27 pulgadas; salen más baratos que un solo ultrapanorámico 5K y tienen muchos más píxeles.
    • No entiendo muy bien por qué usar varios monitores. Ahora hago el 98% de mi trabajo en un solo 32 pulgadas 4K 16:9, con todo en una pantalla grande.
      Tengo al lado documentación, una webapp con hot reload, videos que veo mientras trabajo y un monitor auxiliar para videollamadas durante screen sharing, pero como pesa girar la cabeza, en la práctica no lo uso mucho. El 80% del tiempo está vacío.
    • Totalmente al revés. Durante años usé 2 monitores 4K y el año pasado cambié a un ultrapanorámico; fue completamente distinto.
      Sentí que nunca debí haber comprado dos 4K, ni siquiera una configuración de doble monitor. Un ultrapanorámico es mucho más perfecto y funcional que tener los biseles gruesos de dos monitores justo en el centro del campo visual.
    • En cambio yo uso un monitor 49 pulgadas 32:9, y para una laptop es excelente. El soporte para un solo monitor es mucho mejor que para configuraciones duales o mayores.
      Lo conectas directo a la laptop y simplemente funciona. Cuando usaba dos pantallas necesitaba una estación de acoplamiento y, sinceramente, la mayoría eran bastante malas. Si subes a modelos de gama alta, se esfuma todo el dinero que ahorraste con monitores baratos.
      Normalmente también necesitas un dock compatible con Thunderbolt, y aunque la laptop diga que lo soporta, eso en sí mismo trae cierto tipo de problemas. Con el ultrapanorámico también fue más fácil configurar atajos de administración de ventanas.
    • Siempre hay que mirar el PPI. Aproximadamente es así:
      27” 5K (5120 x 2880) -> 218 PPI
      32” 4K (3840 x 2160) -> 137.68 PPI
      34” 5K (5120 x 2160) -> 163.44 PPI
      39.7” 5K (5120 x 2160) -> 139.97 PPI
      Apple Pro Display XDR 32" 6K (6016 x 3384) -> 218 PPI
    • Estoy preparando una nueva build para reemplazar un sistema de 11 años, y los monitores son un dolor de cabeza. Los requisitos de trabajo general/coding chocan con los de edición de fotos.
      Como trabajo con imágenes de 40 megapíxeles o más, conviene una pantalla de la mayor resolución posible para reducir el zoom in/out. Pero eso obliga a usar escalado de pantalla para otros elementos de la UI.
      Windows en general lo maneja bien, pero cuando no funciona suele ser porque el programa que usas se queda corto. Después de investigar mucho, parece que lo mejor es elegir un tamaño físico que permita usar la resolución deseada sin un escalado excesivo, por ejemplo 300%.
      Estoy mirando muy de cerca el Dell Ultrasharp 32" 6K. Su dpi es algo alto, 223, pero puede mostrar alrededor del 75% de una foto sin recortar. Probablemente también compre un LG DualUp.
      Lo que no me gusta de ambos, especialmente considerando el precio del Dell, es que decepcionantemente usan paneles 8bit+FRC. No quiero enterarme tarde de si soy sensible al parpadeo o de si el panel no dura mucho. Aun así, el Dell tiene 3 años de garantía, y el LG también se puede comprar en versión comercial con 3 años de garantía.
  • Lo ideal, obviamente, es un monitor que rote unos 54.74 grados de ángulo mágico, para eliminar los efectos de las interacciones anisotrópicas.
    https://en.m.wikipedia.org/wiki/Magic_angle
    • Este artículo de Wikipedia se lee como un chiste. Muy gracioso.
  • ¿La rotación “ideal” real para lograr la máxima longitud de línea no está más cerca de 23° que de 22°? Porque Atan(9/21) = 23.20°.
    Y quizá se pueda ir más allá. Si pensamos el contenido de la pantalla como un plano arbitrario, ¿qué tal inclinarlo hacia el lado opuesto al usuario, como SNES Mode 7 o los créditos iniciales de Star Wars? ¡Altura de pantalla infinita!
    • ¿La altura de las letras no afecta ese cálculo? Como la línea más larga posible no se podría renderizar en los dos extremos, ¿no podría una línea más corta en otro ángulo mostrar más texto?
    • Si el monitor es curvo, quizá esté más cerca de 24°.
  • Para mi código Go, 90 grados es lo mejor. En esa orientación puedo meter muchos más bloques “if err != nil”.
    • Así también se puede usar un layout de 2 columnas. Total, nadie debería escribir más de 80 caracteres.
  • En una línea parecida, ojalá hubiera más pantallas 3:2 y la gente las conociera mejor. El campo visual central humano, no el periférico, tiene una relación muy cercana a 3:2, pero por economías de escala 16:9 es un poco más barato y muchísimo más común.
    Y para quienes tengan curiosidad: girar una 16:9 en vertical para ganar espacio vertical no ayuda, porque queda demasiado angosta. Para mí, probablemente lo mejor sería una pantalla cuadrada.
    De paso también están los problemas de renderizado subpíxel y los ángulos de visión de los paneles TN, pero eso es relativamente menor.

LG DualUp es un monitor 16:18 casi cuadrado, tiene más resolución que el Eizo y cuesta casi la mitad.

  • Que la proporción del campo visual central humano sea cercana a 3:2 no tiene mucha relevancia cuando el tamaño del monitor es mucho mayor que ese campo visual central.
    Lo importante es la tensión en el cuello. En la práctica, uno tiende a querer mantener la cabeza horizontal y moverla de lado a lado. Los movimientos laterales no luchan contra la gravedad, pero los movimientos hacia arriba y hacia abajo sí.
    Por eso, en tamaño de monitor, es mejor que sea más ancho que alto.
  • Huawei fabrica un monitor de 28 pulgadas 3:2: https://consumer.huawei.com/uk/monitors/mateview/specs/
    La resolución es 3840*2560.
  • Exacto. Recién después de encontrar una vieja IBM Thinkpad en el sótano y usarla me di cuenta de lo desalineadas que están las pantallas widescreen.
    Además, cosas como las barras de herramientas suelen comerse espacio vertical y terminan aplastando el área de trabajo hacia una proporción más ancha. Al leer o escribir texto, los extremos izquierdo y derecho de la pantalla quedan simplemente como una pizarra vacía.
    A igual superficie, una pantalla más alta se siente mucho más amplia. Aunque poner dos ventanas/paneles/búferes lado a lado quizá no sea tan cómodo como antes.
    Si estás usando una pantalla 3:2, me da curiosidad saber qué modelo es.
  • Por eso me gustaba tanto la SurfaceBook. La relación de aspecto era casi perfecta. Ahora volví a una MBP, que es lo siguiente más aceptable.
  • A la solución de 22° le falta una implementación de ventanas triangulares o una opción de vista de ventanas con “división diagonal”.
    • Creo que la pantalla óptima sería aproximadamente triangular o cercana a un semicírculo. Una pantalla rectangular rotada es apenas una aproximación muy burda.
  • Compré un monitor de 48 pulgadas como monitor principal. No hay que preocuparse por rotaciones ni nada parecido; simplemente tienes una pantalla enorme frente a ti.
    Parece que a algunas personas les incomoda tener un monitor grande enfrente, pero una vez que lo pruebas, te das cuenta de que usar monitores pequeños de 27 o 32 pulgadas en configuración simple/doble/triple es innecesariamente complicado.
    Un solo monitor grande es mucho mejor. Los monitores grandes son el futuro; la gente todavía no se siente cómoda comprándolos, por alguna razón.
    • Puede ser un problema de soporte de software. Simplemente se “siente” más fácil usar dos monitores que usar uno solo como si fueran dos.
      Relacionado con eso, me da curiosidad cómo configuraste la gestión de ventanas.
    • Si es un monitor 4K de 48 pulgadas, al final es algo así:
      • 4 monitores de 24 pulgadas 1080P sin biseles
      • 4 monitores de 24 pulgadas 1080P atados a una cuadrícula fija, sin flexibilidad
        Cada persona tiene sus preferencias, y eso está bien.
    • Yo también tengo un monitor de 48 pulgadas. A ambos lados tengo además un monitor de 27 pulgadas en modo vertical.
      Pero no termino de entender por qué ven como complejo usar varios monitores. Los conectas, si hace falta arrastras una ventana a un lado y simplemente trabajas.
    • La razón por la que me resisto a comprar un monitor grande es que me resulta incómodo trabajar en el escritorio mirando un monitor enorme, y no percibo una ventaja personal del espacio adicional para programar.
      Incluso en una laptop de 16 pulgadas hay espacio suficiente para tres paneles de terminal verticales: uno para editar, uno para documentación y uno para comandos de shell. Si necesito buscar algo en la web, cambio de espacio con cmd-H y vuelvo a la terminal con cmd-L.
      Como mi flujo de trabajo funciona en la laptop, funciona igual vaya adonde vaya. Claro que no es un método para todo el mundo, pero soy bastante escéptico de que los monitores grandes sean el futuro para la mayoría, y casi seguro de que no son mi futuro.
    • Como no siempre quiero usar toda la pantalla en cualquier monitor, prefiero tener varios monitores pequeños que pueda apagar cuando haga falta.
      Eso tiene sus propias dificultades, pero cosas como navegar por la web sí quiero hacerlas en pantalla completa, y en una pantalla gigantesca eso no encaja bien.