在双屏/双显示器设置上反转颜色?


9

为了在监视器上反转颜色,我调用:

xcalib -invert -alter

问题是,在双显示器设置中,它仅在第一个屏幕上反转颜色。

我无法使用Compitz小工具进行颜色反转,因为我的设置是

  • 两个旋转(枢轴)监视器

两者均为Piovot的双屏显示器无法在我的卡上进行排版。

Xorg似乎只是解决方案。

xcalib非常重要,因为我可以立即根据应用程序进行切换。

Cany建议,解决方案如何使用xcalib反转两个屏幕上的颜色?

聚苯乙烯

-screen 参数不起作用:

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

这是我的xrandr屏幕配置:

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

如您所见,它们通过旋转1200x1920设置在一个虚拟屏幕上maximum 3840 x 3840。我认为,这就是为什么它像的“一个”屏幕一样2400x1920,在两个屏幕上均分开的原因(因此,xcalib仅适用于主要屏幕)。但是,这只是我的假设,也许原因有所不同。

Answers:


5

这是一个小型的实用程序,可以满足您的需求:

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

1
请不要仅仅发布链接(和无用的填充文字);包括一些相关的细节,以使答案周围有足够的上下文。
jasonwryan

虽然@jasonwryan的回答质量是正确的,但我可以确认xrandr-invert-colors可以工作。现在是时候将不需要维护的xcalib扔到窗外,预示着新冠军了。
lkraav 2015年

1
@jasonwryan“相关细节”:有效。:)此实用程序完全符合OP的要求。
VasyaNovikov

在我看来,一周中的每一天,短暂而甜蜜的节奏都是不必要的。
山姆·沃特金斯2015年

4

可以尝试摆正负伽玛值和亮度值<1,以在特定输出上生成负伽玛斜坡。

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

这至少对我来说足够了,并且可以直接使用,但是不考虑任何现有的伽马曲线作为输出。可能值得一试。问候康拉德


3

尝试 xcalib -d :0 -invert -alter

-d选项指向该设备,当-s不存在时,它对我有用


就我而言,这无济于事...- -d :1> Can't open display :1
Grzegorz Wierzowiecki 2012年

1
-d指的是显示器,而不是设备。顺便说一句,我遇到了同样的问题,想知道解决方法。
Cyker

2

我遇到了与OP相同的问题。我做了一个

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

然后,我安装了自述文件中提到的一个依赖项,并进行了构建和安装,效果很好。问题解决了。

我看了一下源代码。大部分工作是通过调用xcb库来设置伽玛斜率来完成的。该代码本质上循环遍历附加屏幕的数量,创建一个伽玛斜率,对其进行反转,然后在该屏幕上进行设置。很简单,据我所知,没有其他X程序可以做到这一点。


1

联机帮助页指示有一个-screen(简短的-s)参数。那应该做!只需使用两个xcalib带有不同-s参数的命令。


2
我知道这个。这没用。好的,您已经提到了,我已经忘记了。我将更新我的问题陈述。
Grzegorz Wierzowiecki 2011年

2
您的xrandr输出显示您已将Xorg配置为一个屏幕(仅Screen 0在顶部)。xcalib直接与Xorg服务器交互,因此看不到更多屏幕。我相信您需要在其中配置多个Screen部分/etc/X11/xorg.conf才能正常工作。
rozcietrzewiacz 2011年

不幸的是,我这样做,当转动两个屏幕上不工作:(谢谢你的提示,现在我知道到哪里寻找改进。
格热戈日Wierzowiecki

您尝试Option "Rotate"xorg.conf吗?还是在X启动后需要旋转屏幕?
rozcietrzewiacz 2011年

1
我也在寻找解决方案,当使用--output VGA1 --auto动态添加屏幕时,-s 1不起作用。
lkraav 2012年

0

我发现了这个建议:

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

使用“桌面效果”(我在KDE中有这种效果)的一种方法,可以反转所有屏幕或仅选择窗口的颜色。

由于在我当前的硬件上,Compiz或类似的东西可以正常工作,因此我可以利用这种“桌面效果”。但是我不知道如何在其他窗口管理器(例如fluxbox)上使用这样的代码……但这是另一个问题的主题:)。(PS在仔细研究了这种效果的来源之后:kwin /.../ invert.cpp看起来它只是在处理合成的窗口管理器中添加了用于处理在单独缓冲区中渲染的窗口的钩子,所以也许只需要KWin,具有与KDE以外的其他东西一起运行的能力-进行实验;))

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.