如何触发一个窗口的颜色反转效果?

bel*_*qua 24 xorg compiz

我想在 compiz 中具有反色效果(从浅到深),例如 compiz 中的“negative”,但没有 compiz,并且仅适用于一个窗口(例如 compiz 的Super+ N)。

有没有办法在没有 compiz 的情况下获得类似的效果(最好由按键组合切换)?我可以使用 反转整个桌面的颜色xcalib -I -a,但我不能将其限制为单个窗口。

Rom*_*uet 26

据我所知......要实现这一点,您将需要Window Compositor 的帮助。
您可以尝试安装像Compton这样的轻量级独立合成器。

康普顿

Compton 是 X 的轻量级合成器,也是 xcompmgr-dana 的一个分支。

根据手册康普顿有一个选项来反转窗口中的颜色。

例如:

compton --invert-color-include <CONDITION>
Run Code Online (Sandbox Code Playgroud)

条件可能是窗口的WM_CLASS,要在窗口中找到“WM_CLASS”,您可以运行命令xprop

  • xprop | grep WM_CLASS

然后光标将是一个“十字”,您可以在您想要的窗口中单击,以找到 WM_CLASS。

现在你应该有这样的东西:

WM_CLASS(STRING) = "叶子板", "叶子板"

在此处输入图片说明

第二个字符串应该是 WM_CLASS "Leafpad"
因此,要反转 Leafpad 编辑器的颜色,您应该运行:

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

在某些情况下,您可能只想反转程序的某些窗口(例如反转编辑器窗口,而不是“保存文件”对话框)。
为此,您可以使用两个字符串中的第一个WM_CLASS(也称为“实例”):

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

您不需要一直运行 compton,您可以在需要反转窗口颜色时运行它。


注意: 在这个例子中,我使用 openbox 作为窗口管理器运行 Lubuntu 13.04,但默认情况下没有合成器。


安装康普顿

这个合成器有它自己的PPA

1)要安装 compton,请打开终端并键入:

  • 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

脚本内容:

compton --invert-color-include <CONDITION>
Run Code Online (Sandbox Code Playgroud)

基本上脚本将检查 compton 是否正在运行,如果它没有运行 xdotool 将找到活动窗口的窗口 ID,使用 id xprop 将找到 WM_CLASS,然后使用 WM_CLASS 创建条件,最后将使用条件作为参数。

使脚本可执行。

  • chmod +x ~/Scripts/invert.sh

在我的例子中,我将创建一个名为“invert-color”的软链接到 /usr/bin/ 目录

  • 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>
Run Code Online (Sandbox Code Playgroud)

最后,您可以注销和登录以查看键盘快捷键的更改。


我的本意是,当我需要反色的活动窗口,我可以用快捷键做 Ctrl+ Alt+ U。如果我要回到正常的颜色,我会再次按下快捷键和脚本将检测康普顿因此运行pkill 命令将终止进程 compton。
所以这样我只会在需要的时候运行合成器。

这里有一些截图:

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

希望能帮助到你。