Inverser les couleurs sur la configuration double écran / double moniteur?

9

Afin d'inverser les couleurs sur le moniteur, j'invoque:

xcalib -invert -alter

Le problème est que, lors de la configuration à double moniteur, il inverse les couleurs uniquement sur le premier écran.

Je ne peux pas utiliser les gadgets Compitz pour inverser la couleur, car ma configuration est

  • Deux moniteurs pivotés (pivot)

Double écran lorsque les deux sont Piovot ne fonctionne pas avec la composition sur ma carte.

Xorg semble la seule solution.

xcalib est génial car je peux changer en fonction de l'application, immédiatement.

Cany suggestions, solutions comment inverser les couleurs sur les deux écrans avec xcalib?

PS

-screen le paramètre ne fonctionne pas:

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

Voici ma xrandrconfiguration d'écran:

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

Comme vous pouvez le voir, ils sont tournés - 1200x1920configuration sur un écran virtuel avec maximum 3840 x 3840. Je pense que c'est la raison pour laquelle c'est comme "un" écran avec 2400x1920, divisé sur les deux (donc, xcalib ne s'applique qu'au premier). Mais, ce n'est que mon hypothèse, peut-être que la raison est différente.

Grzegorz Wierzowiecki
la source

Réponses:

5

Voici un petit programme utilitaire qui fait ce que vous voulez:

https://github.com/zoltanp/xrandr-invert-colors
Campbell
la source
1
Veuillez ne pas simplement publier un lien (et un texte de remplissage inutile); inclure des détails pertinents afin qu'il y ait suffisamment de contexte autour de la réponse.
jasonwryan
Bien que @jasonwryan ait raison sur la qualité de la réponse, je peux confirmer que xrandr-invert-colours fonctionne. Il est temps de jeter le xcalib non entretenu par la fenêtre et d'annoncer le nouveau champion.
lkraav
1
@jasonwryan "détail pertinent": cela fonctionne. :) Cet utilitaire fait exactement ce que OP demandait.
VasyaNovikov
À mon avis, des beats courts et sucrés inutilement longs tous les jours de la semaine.
Sam Watkins
4

On pourrait essayer de jouer avec des valeurs gamma négatives et des valeurs de luminosité <1 pour générer une rampe gamma négative sur une sortie spécifique.

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

cela me suffit au moins et fonctionne hors de la boîte, mais ne prend pas en compte les courbes gamma existantes pour une sortie. pourrait valoir la peine. Salutations konrad

Konrad
la source
3

Essayer xcalib -d :0 -invert -alter

L'option -d fait référence à l'appareil, et cela a fonctionné pour moi quand -s n'a pas

Lucian
la source
Dans mon cas, cela n'aide pas ... -d :1-> Can't open display :1etc.
Grzegorz Wierzowiecki
1
-dfait référence à l'écran, pas à l'appareil. BTW, j'ai rencontré le même problème et j'aimerais connaître la solution.
Cyker
2

Je rencontrais le même problème que l'OP. j'ai fait un

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

Ensuite, j'ai installé la seule dépendance notée dans le README, je l'ai construite et installée, et cela fonctionne très bien. Problème résolu.

J'ai jeté un œil au code source. La majeure partie du travail est effectuée avec un appel dans la bibliothèque xcb pour définir la rampe gamma. Le code boucle essentiellement sur le nombre d'écrans connectés, crée une rampe gamma, l'inverse et la définit sur cet écran. Très simple, et il n'y a aucun autre programme X qui fait cela, à ma connaissance.

Paul Martz
la source
1

La page de manuel indique qu'il existe un paramètre -screen(court -s). Ça devrait le faire! Utilisez simplement deux xcalibcommandes avec des -sparamètres différents .

rozcietrzewiacz
la source
2
Je sais ça. Ça ne marche pas. Bon, vous en avez parlé, j'ai oublié. Je mettrai à jour ma déclaration de problème.
Grzegorz Wierzowiecki
2
Votre xrandrsortie indique que le Xorg est configuré comme un seul écran (uniquement Screen 0en haut). xcalibs'interface directement avec le serveur Xorg, il ne peut donc pas voir plus d'écrans. Je crois que vous devez configurer plusieurs Screensections dans votre /etc/X11/xorg.confpour que cela fonctionne correctement.
rozcietrzewiacz
Malheureusement, lorsque je fais cela, le pivot sur les deux écrans ne fonctionne pas :(. Merci pour un indice, maintenant je sais où chercher des améliorations.
Grzegorz Wierzowiecki
Avez-vous essayé Option "Rotate"dans votre xorg.conf? Ou avez-vous besoin de faire pivoter les écrans après le démarrage de X?
rozcietrzewiacz
1
Je recherche également une solution, -s 1 ne fonctionne pas lors de l'ajout dynamique d'écrans avec --output VGA1 --auto.
lkraav
0

J'ai trouvé ce conseil:

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

d'utiliser des "effets de bureau" (j'en ai dans KDE), il y en a un qui permet d'inverser les couleurs de tous les écrans ou simplement des fenêtres sélectives.

Étant donné que sur mon matériel actuel, Compiz ou des choses similaires fonctionnent correctement, je peux profiter de ces "effets de bureau". Cependant, je me demande comment l'utiliser sur d'autres gestionnaires de fenêtres (comme fluxbox) ... mais c'est le sujet d'une question distincte :). (PS après avoir jeté un coup d'œil aux sources de cet effet: kwin /.../ invert.cpp on dirait qu'il ne fait qu'ajouter des crochets pour le traitement des fenêtres rendues dans des tampons séparés et c'est fait dans les gestionnaires de fenêtres de composition , donc peut-être que KWin est requis, avec la capacité de fonctionner avec autre chose que KDE - à expérimenter;))

Grzegorz Wierzowiecki
la source