Як викликати ефект інверсії кольорів для одного вікна?


21

Я хочу мати зворотний колірний ефект (від світлого до темного), як "негативний" у compiz, але без compiz, і лише для одного вікна (наприклад, compiz's Super+ N).

Чи є спосіб отримати подібний ефект (бажано, перемикаючи комбінацію клавіш) без компіляції? Я можу інвертувати кольори для всього робочого столу xcalib -I -a, але не можу обмежити його одним вікном.


Можливо, пов’язаний з цією публікацією: unix.stackexchange.com/questions/20565/…
Шельон

Я використовував негативний варіант вікна від менеджера вікон compiz, і він також дуже добре працює.
stats-hb

Відповіді:


21

Наскільки я знаю ... щоб досягти цього, вам знадобиться допомога композитора вікон .
Ви можете спробувати встановити легкий автономний композитор типу Compton .

Комптон

Комптон - це легкий композитор для X, а також виделка xcompmgr-dana.

На думку Man Pages, Комптон має можливість інвертувати кольори у вікно.

наприклад:

compton --invert-color-include <CONDITION>

Умовою може бути WM_CLASS вікна, щоб знайти "WM_CLASS" у вікні можна запустити команду xprop

  • xprop | grep WM_CLASS

Тоді курсор буде "хрестом", і ви можете натиснути на потрібне вікно, щоб знайти WM_CLASS.

Тепер у вас повинно бути щось подібне:

WM_CLASS (STRING) = "листівка", "листова"

введіть тут опис зображення

Другий рядок повинен бути WM_CLASS "Листопад" .
Отже, щоб інвертувати кольори редактора Leafpad, слід запустити:

  • compton --invert-color-include 'class_g="Leafpad"'

У деяких випадках ви можете інвертувати лише деякі вікна програми (наприклад, інвертувати вікно редактора, але не діалогове вікно "збереження файлу").
Для цього ви можете використовувати перший з двох WM_CLASSрядків (також званий "екземпляр"):

  • compton --invert-color-include '(class_g="Leafpad" && class_i="leafpad")'

Вам не потрібно весь час запускати compton, ви можете запускати його, коли потрібно перевернути кольори вікна.


ПРИМІТКА. У цьому прикладі я запускаю Lubuntu 13.04 з openbox як менеджер вікон, але без композитора за замовчуванням.


Щоб встановити Compton

У цього композитора є власний PPA

1) Щоб встановити комптон, відкрийте термінал і введіть:

  • sudo add-apt-repository ppa:richardgv/compton
  • sudo apt-get update && sudo apt-get install compton

У цьому прикладі я створять базовий сценарій Bash (я не знавець сценаріїв) для виявлення активного вікна та інвертування його кольорів.

2) Створіть сценарій.

  • sudo apt-get install xdotool
  • mkdir ~/Scripts
  • nano ~/Scripts/invert.sh

Зміст сценарію:

#! /bin/bash

if [ "$(pidof compton)" ];
    then
            pkill compton
    else

        ID=$(xdotool getactivewindow)
        CLASS=$(xprop -id "$ID"  | grep "WM_CLASS" | awk '{print $4}')
        COND="class_g=${CLASS}"
        compton --invert-color-include "$COND" &
fi
exit

В основному сценарій перевірить, чи працює комтон, якщо він не працює xdotool знайде ідентифікатор вікна активного вікна, при цьому id xprop знайде WM_CLASS, тоді з WM_CLASS він створить умову і, нарешті, запустить compton з умова як аргумент.

Зробіть сценарій виконуваним.

  • chmod +x ~/Scripts/invert.sh

У моєму випадку я створять м'яке посилання на каталог / usr / bin / з назвою "invert-color"

  • sudo ln -s ~/Scripts/invert.sh /usr/bin/invert-color

3) створити ярлик клавіатури,
наприклад: Ctrl+ Alt+ U (У Lubuntu слід редагувати файл lubuntu-rc.xml)

  • leafpad ~/.config/openbox/lubuntu-rc.xml

Додайте наступні рядки:

<!-- Launch invert-color activewindow on Ctrl + Alt + U-->
<keybind key="C-A-U">
  <action name="Execute">
    <command>invert-color</command>
  </action>
</keybind>

Нарешті, ви можете Вийти та Увійти, щоб побачити зміни в ярлику клавіатури.


Мій намір полягає в тому, коли мені потрібно інвертувати кольори в активному вікні, я можу це зробити за допомогою ярлика Ctrl+ Alt+. UЯкщо я хочу повернутися до звичайних кольорів, я ще раз натискаю на ярлик, і сценарій виявить, що compton працює, тому команда pkill знищить процесор.
Тож таким чином я запускатиму композитор лише тоді, коли мені це буде потрібно.

Тут у вас є кілька скріншотів:

введіть тут опис зображення

введіть тут опис зображення

введіть тут опис зображення

введіть тут опис зображення

Сподіваюся, це допомагає.


Будь-який спосіб зробити цю роботу, якщо вікно також є повноекранним? Це може бути бажаним при переключенні між різними робочими просторами.
Зубник

@Toothrot вже працює як рекламується в моїй системі (використовуючи i3wm і той самий той самий сценарій з відповіді)
sehe

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