Inverter cores na configuração de tela dupla / monitor duplo?

9

Para inverter as cores no monitor, chamo:

xcalib -invert -alter

O problema é que, na configuração do monitor duplo, ele inverte as cores apenas na primeira tela.

Não consigo usar os dispositivos Compitz para inversão de cores, pois minha configuração é

  • Dois monitores girados (pivô)

A tela dupla quando ambos são Piovot não está funcionando com a composição no meu cartão.

Xorg parece apenas solução.

O xcalib é ótimo, pois eu posso mudar dependendo do aplicativo imediatamente.

Cany sugestões, soluções como inverter cores em ambas as telas com xcalib?

PS

-screen parâmetro não 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

Aqui está a minha xrandrconfiguração de tela:

~$ 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 você pode ver, eles são rotacionados - 1200x1920configure em uma tela virtual com maximum 3840 x 3840. Eu acho que é por isso que é como "uma" tela 2400x1920dividida em ambas (portanto, o xcalib se aplica apenas à tela principal). Mas, é apenas minha hipótese, talvez a razão seja diferente.

Grzegorz Wierzowiecki
fonte

Respostas:

5

Aqui está um pequeno programa utilitário que faz o que você deseja:

https://github.com/zoltanp/xrandr-invert-colors
Campbell
fonte
11
Por favor, não basta postar um link (e texto de preenchimento inútil); inclua alguns detalhes relevantes para que haja um contexto suficiente em torno da resposta.
precisa saber é o seguinte
Enquanto @jasonwryan está certo sobre a qualidade da resposta, posso confirmar que funciona xrandr-invert-colors. É hora de jogar o xcalib não mantido pela janela e anunciar o novo campeão.
21415 Lukav,
11
@jasonwryan "detalhe relevante": funciona. :) Este utilitário faz exatamente o que o OP estava pedindo.
21815 VasikNovikov
Na minha opinião, batidas curtas e doces desnecessariamente prolongadas todos os dias da semana.
Sam Watkins
4

Pode-se tentar mexer com valores gama negativos e valores de brilho <1 para gerar uma gama gama negativa em uma saída específica.

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

isso é suficiente para mim e funciona imediatamente, mas não leva em conta nenhuma curva gama existente para uma saída. pode valer uma chance. Saudações Konrad

Konrad
fonte
3

Tentar xcalib -d :0 -invert -alter

A opção -d refere-se ao dispositivo e funcionou para mim quando -s não

Lucian
fonte
No meu caso, não ajuda ... -d :1-> Can't open display :1etc.
Grzegorz Wierzowiecki
11
-drefere-se à tela, não ao dispositivo. BTW, encontrei o mesmo problema e gostaria de saber a solução.
Cyker
2

Eu estava enfrentando o mesmo problema que o OP. Eu fiz um

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

Em seguida, instalei a única dependência observada no README, construí e instalei, e funciona muito bem. Problema resolvido.

Dei uma olhada no código fonte. A maior parte do trabalho é feita com uma chamada para a biblioteca xcb para definir a rampa gama. O código basicamente percorre o número de telas anexadas, cria uma rampa gama, inverte-a e define-a nessa tela. Muito simples, e não há outro programa X que faça isso, que eu saiba.

Paul Martz
fonte
1

A página de manual indica que existe um parâmetro -screen(curto -s). Isso deve resolver! Basta usar dois xcalibcomandos com -sparâmetros diferentes .

rozcietrzewiacz
fonte
2
Eu sei isso. Não funciona. Que bom que você mencionou, esqueci. Vou atualizar minha declaração de problema.
Grzegorz Wierzowiecki
2
Sua xrandrsaída diz que você tem o Xorg configurado como uma tela (apenas Screen 0na parte superior). xcalibinterage diretamente com o servidor Xorg, para que ele não possa ver mais telas. Eu acredito que você precisa configurar várias Screenseções no seu /etc/X11/xorg.confpara que isso funcione corretamente.
rozcietrzewiacz 13/09/11
Infelizmente, quando faço isso, o giro nas duas telas não funciona :(. Obrigado pela dica, agora eu sei onde procurar por melhorias.
Grzegorz Wierzowiecki
Você tentou Option "Rotate"no seu xorg.conf? Ou você precisa girar as telas depois que o X é iniciado?
rozcietrzewiacz 16/09
11
Também estou procurando uma solução, -s 1 não funciona ao adicionar telas dinamicamente com --output VGA1 --auto.
lkraav
0

Eu encontrei esse conselho:

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

de usar os "Efeitos da área de trabalho" (eu os tenho no KDE), existe um que permite inverter cores de todas as telas ou apenas de janelas seletivas.

Como no meu hardware atual, o Compiz ou algo semelhante funciona bem, posso tirar proveito desses "Efeitos da área de trabalho". No entanto, gostaria de saber como usá-lo em outros gerenciadores de janelas (como o fluxbox) ... mas esse é um tópico para uma pergunta separada :). (PS depois de examinar algumas fontes desse efeito: kwin /.../ invert.cpp , parece que ele está apenas adicionando ganchos para o processamento de janelas renderizadas em buffers separados, como é feito nos gerenciadores de janelas de composição , portanto, talvez apenas o KWin seja necessário, com capacidade de rodar com outras coisas além do KDE - para ser experimentado;))

Grzegorz Wierzowiecki
fonte