Інвертувати кольори під час налаштування подвійного екрана / подвійного монітора?


9

Для інвертування кольорів на моніторі я запускаю:

xcalib -invert -alter

Проблема полягає в тому, що при налаштуванні Dual-Monitor він перетворює кольори лише на першому екрані.

Я не можу використовувати гаджети Compitz для інвертування кольорів, оскільки налаштування є

  • Два обертових (стрижневих) монітора

Подвійний екран, коли Piovot обидва не працює з композицією на моїй картці.

Xorg здається єдиним рішенням.

xcalib - це велика причина, що я можу переключитися залежно від програми негайно.

Cany пропозиції та рішення, як перетворити кольори на обох екранах за допомогою xcalib?

PS

-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 стосується лише первинного). Але, це лише моя гіпотеза, можливо, причина інша.

Відповіді:


5

Ось невеличка утиліта, яка робить те, що ви хочете:

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

1
Будь ласка, не публікуйте посилання (і марний текст заповнення); включіть деякі відповідні деталі, щоб навколо відповіді був достатній контекст.
jasonwryan

Хоча @jasonwryan має рацію щодо якості відповідей, я можу підтвердити, що xrandr-invert-color працює. Настав час викинути невідомий xcalib з вікна та оголосити нового чемпіона.
lkraav

1
@jasonwryan "відповідна деталь": вона працює. :) Ця утиліта робить саме те, про що просила ОП.
ВасяНовіков

На мою думку, короткі та солодкі удари надмірно довгопровідні кожен день тижня.
Сем Уоткінс

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

1
-dвідноситься до дисплея, а не до пристрою. До речі, я зіткнувся з тією ж проблемою і хотів би дізнатися рішення.
Cyker

2

У мене виникло те саме питання, що і в ОП. Я зробив а

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

Тоді я встановив одну залежність, зазначену в README, побудував та встановив її, і вона чудово працює. Проблема вирішена.

Я поглянув на вихідний код. Основна частина роботи виконується з викликом у бібліотеку xcb для встановлення гамма-рампи. Код, по суті, перетворюється на кількість доданих екранів, створює гамма-рампу, інвертує її та встановлює на цьому екрані. Дуже просто, і немає іншої програми X, яка б це зробила, наскільки мені відомо.


1

Сторінка вказує на наявність -screen(короткого -s) параметра. Це має робити! Просто використовуйте дві xcalibкоманди з різними -sпараметрами.


2
Я знаю, що це. Це не працює. Добре, що ви про це згадали, я забув. Я оновлю свою заяву про проблему.
Grzegorz Wierzowiecki

2
У вашому xrandrвисновку написано, що Xorg налаштовано як один екран (лише Screen 0вгорі). xcalibвзаємодіє безпосередньо з сервером Xorg, тому він не може бачити більше екранів. Я вважаю, що вам потрібно налаштувати кілька Screenрозділів у своєму, /etc/X11/xorg.confщоб це працювало належним чином.
rozcietrzewiacz

На жаль, коли я це роблю, поворот на обох екранах не працює :(. Дякую за підказку, тепер я знаю, де шукати вдосконалення.
Grzegorz Wierzowiecki

Ви спробували Option "Rotate"у своєму xorg.conf? Або вам потрібно обертати екрани після запуску X?
rozcietrzewiacz

1
Я також шукаю рішення, -s 1 не працює, коли динамічно додається екрани з --output VGA1 --auto.
lkraav

0

Я знайшов таку пораду:

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

використання "Ефекти робочого столу" (у мене є такий у KDE), є такий, який дозволяє інвертувати кольори всіх екранів або просто вибіркові вікна.

Оскільки в моєму поточному апаратному Compiz чи подібних матеріалах працює чудово, я можу скористатися такими "Ефектами робочого столу". Однак мені цікаво, як використовувати таке для інших менеджерів вікон (наприклад, fluxbox) ... але це тема для окремого питання :). (PS після ознайомлення з джерелами цього ефекту: kwin /.../ invert.cpp, схоже, це просто додавання гачків для обробки вікон, виведених в окремі буфери, коли це робиться при складанні менеджерів вікон , тому, можливо , потрібен лише KWin , зі здатністю працювати з іншими речами, ніж KDE - експериментувати;))

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.