我是毛玻璃的忠实粉丝,非常喜欢windows和mac os的毛玻璃效果,但平时用的比较多的是deepin(一个国内公司开发的Linux发型版)所以一直在寻找有没有办法让deepin也用上这种毛玻璃效果。现在,我找到了,来看看效果叭!
![](https://img.haomeiwen.com/i10305138/6c4aef68cb08d865.jpeg)
![](https://img.haomeiwen.com/i10305138/36e0c986a55dd4f7.jpeg)
![](https://img.haomeiwen.com/i10305138/ed6ae9ddee5aa021.jpeg)
想要实现这个效果,需要安装devilspie,这是一个不提供GUI的小工具,这个工具可以在窗口创建时检测并匹配出符合规则的窗口,并执行针对该窗口的一系列动作。(具体请看官方文档)
这里我使用apt来安装它
sudo apt install devilspie
mkdir -p ~/.devilspie
nano ~/.devilspie/transparent.ds
然后在终端中运行
xprop | grep 'CLASS'
用鼠标点选需要应用毛玻璃效果的窗口,取得窗口的CLASS值,然后修改刚刚创建的配置文件(这里我使用nano)
nano ~/.devilspie/transparent.ds
在配置文件中填入配置代码
( if
( contains ( window_class ) "Code" )
( begin
( spawn_async (str "xprop -id " (window_xid) " -f _NET_WM_WINDOW_OPACITY 32c -set _NET_WM_WINDOW_OPACITY 0xdfffffff") )
)
)
将代码第二行的Code改成你的窗口CLASS值,代码中的0xdfffffff是透明度。如果你不想使用16进制数字,你可以在你的脚本中使用百分比,像这样:
( if
( contains ( window_class ) "Code" )
( begin
( spawn_async (str "xprop -id " (window_xid) " -f _NET_WM_WINDOW_OPACITY 32c -set _NET_WM_WINDOW_OPACITY $(printf 0x%x $((0xffffffff * 87 / 100)))") )
)
)
如果你使用KDE桌面或者deepin的dde-kwin窗口管理器,你可以启用KDE提供的更高级的毛玻璃透明效果:
(if (contains (window_class) "Code")
(begin
(spawn_async (str "xprop -id " (window_xid) " -f _KDE_NET_WM_BLUR_BEHIND_REGION 32c -set _KDE_NET_WM_BLUR_BEHIND_REGION 0 "))
(spawn_async (str "xprop -id " (window_xid) " -f _NET_WM_WINDOW_OPACITY 32c -set _NET_WM_WINDOW_OPACITY 0xdfffffff"))
)
)
如果你有两个及以上的窗口需要启用毛玻璃效果,你可这么写:
(
if (contains (window_class) "Code")
(begin
(spawn_async (str "xprop -id " (window_xid) " -f _KDE_NET_WM_BLUR_BEHIND_REGION 32c -set _KDE_NET_WM_BLUR_BEHIND_REGION 0 "))
(spawn_async (str "xprop -id " (window_xid) " -f _NET_WM_WINDOW_OPACITY 32c -set _NET_WM_WINDOW_OPACITY 0xdfffffff"))
)
if (contains (window_class) "netease-cloud-music")
(begin
(spawn_async (str "xprop -id " (window_xid) " -f _KDE_NET_WM_BLUR_BEHIND_REGION 32c -set _KDE_NET_WM_BLUR_BEHIND_REGION 0 "))
(spawn_async (str "xprop -id " (window_xid) " -f _NET_WM_WINDOW_OPACITY 32c -set _NET_WM_WINDOW_OPACITY 0xdfffffff"))
)
)
本文代码参考:
https://dev.to/emmanuelnk/how-to-be-cool-and-make-vscode-transparent-56ib
https://wiki.gnome.org/action/show/Projects/DevilsPie?action=show&redirect=DevilsPie
网友评论