Wie kann ich einen Farbumkehrungseffekt für ein Fenster auslösen?

21

Ich möchte einen inversen Farbeffekt (hell bis dunkel) wie "negativ" in compiz haben, aber ohne compiz und nur für ein Fenster (wie compizs Super+ N).

Gibt es eine Möglichkeit, einen ähnlichen Effekt (vorzugsweise durch eine Tastenkombination umgeschaltet) ohne Kompiz zu erzielen? Ich kann Farben für den gesamten Desktop mit invertieren xcalib -I -a, aber ich kann es nicht auf ein einzelnes Fenster beschränken.

belacqua
quelle
Vielleicht im Zusammenhang mit diesem Beitrag: unix.stackexchange.com/questions/20565/…
Sheljohn
Ich habe die negative Fenster-Option von Compiz Window Manager verwendet und es funktioniert auch sehr gut.
Statistiken-hb

Antworten:

21

Soweit ich weiß ... benötigen Sie dazu einen Window Compositor .
Sie können versuchen, einen leichten Standalone-Compositor wie Compton zu installieren .

Compton

Compton ist ein leichter Compositor für X und eine Gabel aus xcompmgr-dana.

Laut Man Pages hat Compton die Möglichkeit, Farben in einem Fenster umzukehren.

z.B:

compton --invert-color-include <CONDITION>

Die Bedingung könnte die WM_CLASS eines Fensters sein. Um die "WM_CLASS" in einem Fenster zu finden, können Sie den Befehl xprop ausführen

  • xprop | grep WM_CLASS

Dann ist der Cursor ein "Kreuz" und Sie können in das gewünschte Fenster klicken, um die WM_CLASS zu finden.

Jetzt solltest du so etwas haben:

WM_CLASS (STRING) = "leafpad", "Leafpad"

Bildbeschreibung hier eingeben

Der zweite String sollte das WM_CLASS "Leafpad" sein .
Um die Farben des Leafpad-Editors zu invertieren, sollten Sie Folgendes ausführen:

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

In einigen Fällen möchten Sie möglicherweise nur einige Fenster eines Programms invertieren (z. B. das Editorfenster, aber nicht den Dialog "Datei speichern").
Dazu können Sie die erste der beiden WM_CLASSZeichenfolgen (auch "Instanz" genannt) verwenden:

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

Sie müssen compton nicht immer ausführen, sondern können es ausführen, wenn Sie die Farben eines Fensters invertieren müssen.


HINWEIS: In diesem Beispiel starte ich Lubuntu 13.04 mit openbox als Fenstermanager, aber standardmäßig ohne Compositor.


Compton installieren

Dieser Compositor hat eine eigene PPA

1) Um compton zu installieren, öffnen Sie ein Terminal und geben Sie Folgendes ein:

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

In diesem Beispiel erstelle ich ein einfaches Bash-Skript (ich bin kein Experte für Skripte) , um das aktive Fenster zu erkennen und seine Farben umzukehren.

2) Erstellen Sie das Skript.

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

Der Inhalt des Skripts:

#! /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

Grundsätzlich prüft das Skript, ob compton läuft, wenn es nicht läuft, findet xdotool die Fenster-ID des aktiven Fensters, mit der ID xprop die WM_CLASS, mit der WM_CLASS erstellt es die Bedingung und führt schließlich compton mit der aus Bedingung als Argument.

Machen Sie das Skript ausführbar.

  • chmod +x ~/Scripts/invert.sh

In meinem Fall erstelle ich einen Softlink zum Verzeichnis / usr / bin / mit dem Namen "invert-color".

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

3) Erstellen Sie eine Tastenkombination,
zB: Ctrl+ Alt+ U (In Lubuntu sollten Sie die Datei lubuntu-rc.xml bearbeiten.)

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

Fügen Sie die folgenden Zeilen hinzu:

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

Schließlich können Sie sich abmelden und anmelden, um die Änderungen in der Tastenkombination zu sehen.


Meine Absicht ist es, wenn ich die Farben im aktiven Fenster umkehren muss ich es mit dem Shortcut tun können Ctrl+ Alt+ U.Wenn Ich möchte zu den normalen Farben zurück gehen ich wieder drücken , wird die Verknüpfung und das Skript wird die compton erkennen läuft daher Der Befehl pkill bricht den Prozesscomputer ab.
Auf diese Weise starte ich den Compositor nur dann, wenn ich ihn brauche.

Hier haben Sie ein paar Screenshots:

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Ich hoffe es hilft.

Roman Raguet
quelle
Gibt es eine Möglichkeit, dies zum Laufen zu bringen, wenn ein Fenster auch als Vollbild angezeigt wird? Dies kann wünschenswert sein, wenn Sie zwischen verschiedenen Arbeitsbereichen wechseln.
Toothrot
@Toothrot funktioniert bereits wie auf meinem System angekündigt (mit i3wm und genau dem gleichen Skript aus der Antwort)
siehe
2

Eine Gnome-Shell-Erweiterung "Fensterfarbe umkehren" erledigt dies problemlos. Hier ist der Link .

LostPolarBear
quelle