Farben beim Dual-Screen / Dual-Monitor-Setup umkehren?

9

Um die Farben auf dem Monitor zu invertieren, rufe ich Folgendes auf:

xcalib -invert -alter

Das Problem ist, dass beim Dual-Monitor-Setup die Farben nur auf dem ersten Bildschirm invertiert werden.

Ich kann Compitz-Gadgets nicht zum Invertieren von Farben verwenden, da mein Setup so ist

  • Zwei gedrehte (schwenkbare) Monitore

Dual-Screen, wenn beide Piovot sind, funktioniert nicht mit dem Komponieren auf meiner Karte.

Xorg scheint nur eine Lösung zu sein.

xcalib ist großartig, weil ich je nach App sofort wechseln kann.

Cany Vorschläge, Lösungen, wie man Farben auf beiden Bildschirmen mit xcalib invertiert?

PS

-screen Parameter funktioniert nicht:

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

Hier ist meine xrandrBildschirmkonfiguration:

~$ 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)   

Wie Sie sehen können, werden sie gedreht - eingerichtet 1200x1920auf einem virtuellen Bildschirm mit maximum 3840 x 3840. Ich denke, das ist der Grund, warum es wie ein Bildschirm ist 2400x1920, der auf beide aufgeteilt ist (also gilt xcalib nur für den primären Bildschirm ). Aber es ist nur meine Hypothese, vielleicht ist die Vernunft anders.

Grzegorz Wierzowiecki
quelle

Antworten:

5

Hier ist ein kleines Hilfsprogramm, das macht, was Sie wollen:

https://github.com/zoltanp/xrandr-invert-colors
Campbell
quelle
1
Bitte poste nicht nur einen Link (und nutzlosen Fülltext); Fügen Sie einige relevante Details hinzu, damit die Antwort einen ausreichenden Kontext aufweist.
Jasonwryan
Während @jasonwryan in Bezug auf die Antwortqualität Recht hat, kann ich bestätigen, dass xrandr-invert-colours funktioniert. Es ist Zeit, das nicht gewartete Xcalib aus dem Fenster zu werfen und den neuen Champion anzukündigen.
lkraav
1
@ jasonwryan "relevantes Detail": es funktioniert. :) Dieses Dienstprogramm macht genau das, wonach OP gefragt hat.
VasyaNovikov
Meiner Meinung nach sind kurze und süße Beats an jedem Tag der Woche unnötig langatmig.
Sam Watkins
4

Man könnte versuchen, mit negativen Gammawerten und Helligkeitswerten <1 zu spielen, um eine negative Gammarampe an einem bestimmten Ausgang zu erzeugen.

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

Dies reicht zumindest für mich aus und funktioniert sofort, berücksichtigt jedoch keine vorhandenen Gammakurven für eine Ausgabe. könnte einen Versuch wert sein. Grüße konrad

konrad
quelle
3

Versuchen xcalib -d :0 -invert -alter

Die Option -d bezieht sich auf das Gerät und hat bei mir funktioniert, wenn -s nicht funktioniert hat

Lucian
quelle
In meinem Fall hilft es nicht ... -d :1-> Can't open display :1etc.
Grzegorz Wierzowiecki
1
-dbezieht sich auf das Display, nicht auf das Gerät. Übrigens bin ich auf das gleiche Problem gestoßen und möchte die Lösung wissen.
Cyker
2

Ich hatte das gleiche Problem wie das OP. Ich habe ein

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

Dann habe ich die in der README-Datei angegebene Abhängigkeit installiert, erstellt und installiert, und sie funktioniert hervorragend. Problem gelöst.

Ich habe mir den Quellcode angesehen. Der Großteil der Arbeit wird mit einem Aufruf der xcb-Bibliothek erledigt, um die Gammarampe einzustellen. Der Code durchläuft im Wesentlichen die Anzahl der angehängten Bildschirme, erstellt eine Gammarampe, invertiert sie und legt sie auf diesem Bildschirm fest. Sehr einfach, und meines Wissens gibt es kein anderes X-Programm, das dies tut.

Paul Martz
quelle
1

Die Manpage zeigt an, dass es einen -screen(kurzen -s) Parameter gibt. Das sollte es tun! Verwenden Sie einfach zwei xcalibBefehle mit unterschiedlichen -sParametern.

rozcietrzewiacz
quelle
2
Ich weiß das. Es funktioniert nicht. Gut, dass du es erwähnt hast, ich habe es vergessen. Ich werde meine Problemstellung aktualisieren.
Grzegorz Wierzowiecki
2
Ihre xrandrAusgabe besagt, dass Sie den Xorg als einen Bildschirm konfiguriert haben (nur Screen 0oben). xcalibSchnittstelle direkt mit dem Xorg-Server, sodass keine weiteren Bildschirme angezeigt werden. Ich glaube, Sie müssen mehrere ScreenAbschnitte in Ihrem konfigurieren, /etc/X11/xorg.confdamit dies richtig funktioniert.
Rozcietrzewiacz
Wenn ich das mache, funktioniert Pivot auf beiden Bildschirmen leider nicht :(. Vielen Dank für den Hinweis, jetzt weiß ich, wo ich nach Verbesserungen suchen muss.
Grzegorz Wierzowiecki
Hast du es Option "Rotate"in deinem versucht xorg.conf? Oder müssen Sie die Bildschirme drehen, nachdem X gestartet wurde?
Rozcietrzewiacz
1
Ich suche auch nach einer Lösung, -s 1 funktioniert nicht, wenn Bildschirme mit --output VGA1 --auto dynamisch hinzugefügt werden.
lkraav
0

Ich habe diesen Rat gefunden:

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

Wenn Sie "Desktop-Effekte" verwenden (ich habe solche in KDE), gibt es einen, der das Invertieren der Farben aller Bildschirme oder nur selektiver Fenster ermöglicht.

Da auf meiner aktuellen Hardware Compiz oder ähnliches gut funktioniert, kann ich solche "Desktop-Effekte" nutzen. Ich frage mich jedoch, wie man solche auf anderen Fenstermanagern (wie Fluxbox) verwendet ... aber das ist das Thema für eine separate Frage :). (PS, nachdem Sie sich die Quellen dieses Effekts angesehen haben: kwin /.../ invert.cpp Es sieht so aus, als würden nur Hooks für die Verarbeitung von Fenstern hinzugefügt, die in separaten Puffern gerendert wurden, wenn dies in Compositing-Fenstermanagern erfolgt. Daher ist möglicherweise nur KWin erforderlich. mit der Fähigkeit, mit anderen Dingen als KDE zu laufen - experimentiert zu werden;))

Grzegorz Wierzowiecki
quelle