¿Invertir colores en la configuración de pantalla dual / monitor dual?

9

Para invertir los colores en el monitor, invoco:

xcalib -invert -alter

El problema es que, en la configuración de monitor dual, invierte los colores solo en la primera pantalla.

No puedo usar los gadgets de Compitz para invertir el color, porque mi configuración es

  • Dos monitores rotados (pivote)

La pantalla dual cuando ambos son Piovot no funciona con la composición en mi tarjeta.

Xorg parece ser la única solución.

xcalib es excelente porque puedo cambiar dependiendo de la aplicación, de inmediato.

Cany sugerencias, soluciones ¿cómo invertir colores en ambas pantallas con xcalib?

PD

-screen El parámetro no funciona:

X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  130 (XFree86-VidModeExtension)
  Minor opcode of failed request:  19 (XF86VidModeGetGammaRampSize)
  Value in failed request:  0x17
  Serial number of failed request:  10
  Current serial number in output stream:  10

Aquí está mi xrandrconfiguración de pantalla:

~$ xrandr                                                                                                                                                              
Screen 0: minimum 320 x 200, current 2400 x 1920, maximum 3840 x 3840                                                                                                  
DFP1 connected 1200x1920+1200+0 left (normal left inverted right x axis y axis) 518mm x 324mm                                                                          
   1920x1200      60.0*+                                                                                                                                               
   1680x1050      60.0 +                                                                                                                                               
   1440x900       59.9 +                                                                                                                                               
   1280x800       60.0 +                                                                                                                                               
   1920x1080      60.0     50.0     30.0     25.0     24.0                                                                                                             
(...)                                                                                                                   
DFP2 connected 1200x1920+0+0 left (normal left inverted right x axis y axis) 518mm x 324mm                                                                             
   1920x1200      60.0*+                                                                                                                                               
   1920x1080      60.0 +                                                                                                                                               
   1776x1000      60.0 +                                                                                                                                               
   1680x1050      60.0 +                                                                                                                                               
   1440x900       59.9 +                                                                                                                                               
   1280x800       60.0 +   75.0                                                                                                                                        
   1152x648       60.0 +                                                                                                                                               
   1600x1200      60.0                                                                                                                                                 
   1400x1050      60.0                                                                                                                                                 
   1280x1024      75.0     60.0                                                                                                                                        
(...)                                                                        
CRT1 disconnected (normal left inverted right x axis y axis)                                                                                                           
CRT2 disconnected (normal left inverted right x axis y axis)   

Como puede ver, están rotados: 1200x1920configure en una pantalla virtual con maximum 3840 x 3840. Creo que esa es la razón por la que es como "una" pantalla 2400x1920dividida en ambas (entonces, xcalib se aplica solo a la primaria). Pero, es solo mi hipótesis, tal vez la razón es diferente.

Grzegorz Wierzowiecki
fuente

Respuestas:

5

Aquí hay un pequeño programa de utilidad que hace lo que quieres:

https://github.com/zoltanp/xrandr-invert-colors
Campbell
fuente
1
No solo publique un enlace (y un texto de relleno inútil); incluya algunos detalles relevantes para que haya suficiente contexto alrededor de la respuesta.
jasonwryan
Si bien @jasonwryan tiene razón sobre la calidad de la respuesta, puedo confirmar que xrandr-invert-colors funciona. Es hora de tirar el xcalib sin mantenimiento por la ventana y anunciar al nuevo campeón.
lkraav
1
@jasonwryan "detalle relevante": funciona. :) Esta utilidad hace exactamente lo que OP estaba pidiendo.
VasyaNovikov
En mi opinión, ritmos cortos y dulces son innecesariamente largos todos los días de la semana.
Sam Watkins
4

Uno podría intentar jugar con valores gamma negativos y valores de brillo <1 para generar una rampa gamma negativa en una salida específica.

xrandr --output [output] --gamma -0.5:-0.5:-0.5 --brightness 0.1 

esto es suficiente al menos para mí y funciona de forma inmediata, pero no tiene en cuenta ninguna curva gamma existente para una salida. podría valer la pena intentarlo. Saludos konrad

Konrad
fuente
3

Tratar xcalib -d :0 -invert -alter

La opción -d se refiere al dispositivo, y funcionó para mí cuando -s no

Lucian
fuente
En mi caso no ayuda ... -d :1-> Can't open display :1etc.
Grzegorz Wierzowiecki
1
-dse refiere a la pantalla, no al dispositivo. Por cierto, me encontré con el mismo problema y me gustaría saber la solución.
Cyker
2

Estaba experimentando el mismo problema que el OP. hice un

git clone https://github.com/zoltanp/xrandr-invert-colors.git

Luego instalé la dependencia mencionada en el archivo README, la construí y la instalé, y funciona muy bien. Problema resuelto.

Eché un vistazo al código fuente. La mayor parte del trabajo se realiza con una llamada a la biblioteca xcb para configurar la rampa gamma. El código esencialmente recorre el número de pantallas adjuntas, crea una rampa gamma, la invierte y la establece en esa pantalla. Muy simple, y no hay otro programa X que haga esto, que yo sepa.

Paul Martz
fuente
1

La página de manual indica que hay un parámetro -screen(corto -s). ¡Deberias hacer eso! Solo usa dos xcalibcomandos con diferentes -sparámetros.

rozcietrzewiacz
fuente
2
Yo se esto. No funciona. Bueno, lo has mencionado, lo he olvidado. Actualizaré mi declaración del problema.
Grzegorz Wierzowiecki
2
Su xrandrsalida dice que tiene el Xorg configurado como una pantalla (solo Screen 0en la parte superior). xcalibinteractúa directamente con el servidor Xorg, por lo que no puede ver más pantallas. Creo que necesita configurar varias Screensecciones en su /etc/X11/xorg.confpara que esto funcione correctamente.
rozcietrzewiacz
Desafortunadamente, cuando hago esto, el pivote en ambas pantallas no funciona :(. Gracias por la pista, ahora sé dónde buscar mejoras.
Grzegorz Wierzowiecki
¿Lo intentaste Option "Rotate"en tu xorg.conf? ¿O necesita rotar las pantallas después de que X se inicia?
rozcietrzewiacz
1
También estoy buscando una solución, -s 1 no funciona al agregar dinámicamente pantallas con --output VGA1 --auto.
lkraav
0

He encontrado ese consejo:

http://ubuntuforums.org/showthread.php?t=1482995

de usar "Efectos de escritorio" (lo tengo en KDE), hay uno que permite invertir los colores de todas las pantallas o solo ventanas selectivas.

Dado que en mi hardware actual, Compiz o cosas similares funcionan bien, puedo aprovechar tales "Efectos de escritorio". Sin embargo, me pregunto cómo usarlo en otros administradores de ventanas (como fluxbox) ... pero ese es un tema para una pregunta separada :). (PD: después de echar un vistazo a las fuentes de ese efecto: kwin /.../ invert.cpp parece que solo está agregando ganchos para procesar ventanas renderizadas en búferes separados cuando se hace al componer administradores de ventanas , por lo que tal vez solo se requiera KWin , con capacidad para correr con otras cosas que no sean KDE - para ser experimentado;))

rev. Grzegorz Wierzowiecki
fuente