Answers:
据我所知...要实现这一点,您将需要Window Compositor的帮助。
您可以尝试安装轻巧的独立合成器,例如Compton。
Compton是X的轻量级合成器,是xcompmgr-dana的分支。
根据手册页,康普顿可以选择反转窗口中的颜色。
例如:
compton --invert-color-include <CONDITION>
条件可能是窗口的WM_CLASS,要在窗口中找到“ WM_CLASS”,可以运行命令xprop
xprop | grep WM_CLASS
然后,光标将是“ Cross”(交叉),您可以在所需的窗口中单击以找到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
脚本的内容:
#! /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
基本上,脚本将检查compton是否正在运行,如果未运行,则xdotool将找到活动窗口的窗口ID,ID xprop将找到WM_CLASS,然后使用WM_CLASS将创建条件,最后将使用compton运行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命令将杀死进程compton。
因此,以这种方式,我只会在需要时运行合成器。
这里有一些截图:
希望能帮助到你。