compton透明设置

compton是一个使你窗口透明化的工具,如果你当前使用的软件支持窗口透明的功能,那么compton可以帮你设置透明度,阴影效果,窗口切换效果等。对于我来说就用一个透明度设置的功能就可以了。

想要修改compton的效果只需要修改compton的配置文件就可以了,文件路径一般在~/.config/compton.conf,你也可以自己指定路径,运行compton时终端输入

compton --conf [your path]

简单说一下我的需求:

  • 当我打开多个窗口时,我希望我当前聚焦的窗口透明度低一些,其他窗口透明度高一些,这样更方便我知道我当前处于哪个窗口。
  • 某些特定软件我希望它不透明,比方说浏览器,设置透明我觉得会影响我阅读。

于是我可以这样设置

inactive-opacity = 0.5;
active-opacity = 0.8;

这样我聚焦的窗口透明度为0.8,其他窗口透明度为0.5。但是这样我的dmenu透明度也会变成0.5,我不希望它透明,所以再加上一句:

focus-exclude = "x = 0 && y = 0 && override_redirect = true";

这一句是根据dmenu的位置来写的,dmenu总是位于我屏幕的最上方,因此我可以从屏幕的左上角定位,将dmenu从非活动窗口中排除,并让其不透明。

除此以外,还可以设置compton的透明规则。这里我让wps,firefox,ibus输入法,vlc视频播放器不透明,typora和spyder的透明度进行了微调。

接下来在我的i3配置文件中写入

exec_always compton -b

这样每次打开i3wm都会后台运行compton。关闭compton可以输入pkill compton。

compton透明设置_第1张图片
compton透明设置_第2张图片


更新

上面的做法会有一些小bug。wps的菜单栏展开时会有透明,而且很难解决的样子。
所以需要我们改变一下思路:
默认设置所有窗口均不透明,然后在opacity-rule中设置透明的程序:

  • 聚焦终端透明度为0.9
  • 非聚焦终端透明度0.6
  • vim透明度和终端保持一致

下面是我的配置文件compton.conf

opacity-rule = [
"90:name  *?= 'vegeta' && focused",
"60:name  *?= 'vegeta' && !focused",
"90:name  *?= 'VIM' && focused",
"60:name  *?= 'VIM' && !focused",
"95:name *?= 'Typora'",
"95:name *?= 'Spyder'",
"95:class_g = 'alacritty' && !_NET_WM_STATE@:32a",
"0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
];

其中vegeta是我的用户名。

你可能感兴趣的:(配置)