调整 Compton 的自定义 Shader 来获得较为完善的毛玻璃特效 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
quadpixels
V2EX    Linux

调整 Compton 的自定义 Shader 来获得较为完善的毛玻璃特效

  •  
  •   quadpixels
    quadpixels 2015-05-12 15:11:39 +08:00 5138 次点击
    这是一个创建于 3856 天前的主题,其中的信息可能已经有所发展或是发生改变。
    图:
    ![Foo]()

    Compton是一个Compositor,Compositor的中文也许是叫“桌面混合器”吧。
    链接: https://github.com/chjj/compton
    它有一个很强力的功能是支持基于Shader的毛玻璃模糊效果,这样用着XFCE的窗口管理器时也能看到好看的毛玻璃效果了。(相比之下,貌似KDE的桌面混合器是默认支持这个效果的)
    但是有个问题:透明效果会同时作用于背景和文字上。也就是说如果你把背景的透明度设为50%,那文字也会变淡50%。(可见图1与图2都发生了这样的状况)。
    所以有一个简单的Hack的方法:在自定义Shader中把文字的颜色特别处理一下,将其设为不透明的。这样就能达成图3的样子。
    但是在图3中还有一个问题,就是图标还是透明的。所以可以再把Hack方法稍微改一下,只将背景颜色设为透明的,其它所有的颜色都设为不透明的。这样就能达成图4的样子了。
    在Windows 7里的毛玻璃特效可以调节颜色浓度,无论颜色浓度如何变浅,文字的颜色都不会随之变浅,在这里想达成的效果也是那样的。


    如果想达成图3的效果,就将compton-default-fshader-win.glsl的内容改为


    如果想达成图4的效果:


    改好后,用这个命令运行:
    /compton --glx-fshader-win "$(cat compton-default-fshader-win.glsl)" -b

    这只是一个比较好玩的尝试,还远远没达到完美的解决方案的程度。所以只能说“较为完善”。
    2 条回复    2015-05-12 18:46:49 +08:00
    quadpixels
        1
    quadpixels  
    OP
       2015-05-12 15:25:33 +08:00
    注意:
    其中的颜色值是截图量出来然后写到自定义Shader里的。
    所用的主题是Greybird,前景色是0x3C3C3C = (0.234, 0.234, 0.234);背景色有三种,0xF4F4F4,0xFCFCFC,0xCECECE,按同样的方法转换就可以了。
    jialiang2015
        2
    jialiang2015  
       2015-05-12 18:46:49 +08:00
    翻了翻,这似乎是development版本中新增的功能(我一直在用v0.1_beta2……- -)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     906 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 20:54 PVG 04:54 LAX 12:54 JFK 15:54
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86