Como acionar um efeito de inversão de cores para uma janela?

18

Eu quero ter um efeito de cor inversa (claro a escuro) como 'negativo' no compiz, mas sem compiz, e apenas por uma janela (como o Super + N kbd>).

Existe uma maneira de obter um efeito semelhante (alternado por uma combinação de teclas, de preferência) sem compiz? Eu posso inverter cores para toda a área de trabalho com xcalib -I -a , mas não posso restringi-la a uma única janela.

    
por belacqua 10.05.2012 / 00:43

2 respostas

18

Até onde eu sei ... para conseguir isso, você precisará da ajuda de um Compositor de Janelas .
Você pode tentar instalar um compositor autônomo leve como Compton .

Compton

  

Compton é um compositor leve para o X, e um fork de   xcompmgr-dana.

De acordo com o Man Pages , o Compton tem a opção de inverter as cores uma janela.

por exemplo:

compton --invert-color-include <CONDITION>

A condição pode ser o WM_CLASS de uma janela, para encontrar o "WM_CLASS" em uma janela você pode executar o comando xprop

  • xprop | grep WM_CLASS

Em seguida, o cursor será um "Cross" e você poderá clicar na janela desejada para encontrar o WM_CLASS.

Agora você deve ter algo assim:

  

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

A segunda string deve ser WM_CLASS "Leafpad" .
Então, para inverter as cores do editor do Leafpad, você deve executar:

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

Em alguns casos, você pode querer inverter apenas algumas janelas de um programa (por exemplo, inverter a janela do editor, mas não a caixa de diálogo "salvar arquivo").
Para isso você pode usar o primeiro dos dois WM_CLASS strings (também chamados de "instance"):

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

Você não precisa executar o compton o tempo todo, você pode executá-lo quando precisar inverter as cores de uma janela.

NOTA: Neste exemplo estou executando o Lubuntu 13.04 com o openbox como gerenciador de janelas, mas sem o compositor por padrão.

Para instalar o Compton

Esse compositor possui o PPA

1) Para instalar o compton, abra um Terminal e digite:

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

Neste exemplo, criarei um script Bash básico (não sou especialista em scripts) para detectar a janela ativa e inverter suas cores.

2) Crie o script.

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

O conteúdo do script:

#! /bin/bash

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

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

Basicamente, o script verificará se o compton está em execução, se não   rodando o xdotool encontrará o id da janela da janela ativa, com o id xprop vai encontrar   o WM_CLASS, em seguida, com o WM_CLASS ele irá criar a condição e   finalmente será executado compton com a condição como argumento.

Torne o script executável.

  • chmod +x ~/Scripts/invert.sh

No meu caso, vou criar um link para o diretório / usr / bin / com o nome "invert-color"

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

3) crie um atalho de teclado por exemplo: Ctrl + Alt + U (No Lubuntu você deve editar o arquivo lubuntu-rc.xml)

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

Adicione as seguintes linhas:

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

Finalmente, você pode fazer logout e login para ver as alterações no atalho de teclado.

Minha intenção é quando eu preciso inverter as cores na janela ativa, eu posso fazê-lo com o atalho Ctrl + Alt + U Se eu quiser voltar às cores normais, pressionarei novamente o atalho e o script detectará que o compton está sendo executado, portanto, o comando pkill matará o compton do processo.
Então, dessa forma, só executarei o compositor quando precisar dele.

Aqui você tem algumas capturas de tela:

Espero que ajude.

    
por Roman Raguet 20.09.2013 / 00:15
0

Uma extensão de shell do Gnome "inverte a cor da janela" faz isso sem qualquer aborrecimento. Aqui está o link .

    
por LostPolarBear 11.05.2018 / 22:51

Tags