KDE 终端模糊

Gnome 就不要想了,这辈子是不可能 Gnome 的(雾

之前一直没找到终端毛玻璃效果的实现,这次在 AOSC 群看到有人转发了一篇 Reddit 的帖子,于是顺藤摸瓜找到了实现方法。

Bash

添加下面这几行到~/.bashrc文件中

1
2
3
4
if [[ $(ps --no-header -p $PPID -o comm) =~ yakuake|konsole ]]; then 
for wid in $(xdotool search --pid $PPID); do
xprop -f _KDE_NET_WM_BLUR_BEHIND_REGION 32c -set _KDE_NET_WM_BLUR_BEHIND_REGION 0 -id $wid; done
fi

Zsh

添加在~/.zshrc文件中。

因为自己是用的 fish,所以没注意到之前greb的参数错误,现已修改,这里感谢五黄鼠 dalao 指正。

1
2
3
4
if [[ $(ps --no-header -p $PPID -o comm | grep -E '^(yakuake|konsole)$' ) ]]; then
for wid in $(xdotool search --pid $PPID); do
xprop -f _KDE_NET_WM_BLUR_BEHIND_REGION 32c -set _KDE_NET_WM_BLUR_BEHIND_REGION 0 -id $wid; done
fi

Fish

直接在终端复制粘贴下面几行,function save 即会创建一个相应的配置文件在.config/fish/functions这个目录。

1
2
3
4
5
6
7
8
9
10
function blurk
if test $DISPLAY
for ID in (qdbus | grep -E "konsole" | cut -f 2 -d\ )
xprop -f _KDE_NET_WM_BLUR_BEHIND_REGION 32c -set _KDE_NET_WM_BLUR_BEHIND_REGION 0 -id (qdbus $ID /konsole/MainWindow_1 winId)
end
for ID in (qdbus | grep org.kde.yakuake)
xprop -f _KDE_NET_WM_BLUR_BEHIND_REGION 32c -set _KDE_NET_WM_BLUR_BEHIND_REGION 0 -id (xwininfo -root -tree | grep Yakuake | cut -d " " -f6)
end
end
end

然后在~/.config/omf/init.fish最后添加上blurk,启动该功能,如果不存在该文件请自行创建。

在使用之前需要先安装wmctrl这个包。

或者使用

xdo id -n yakuake

也可以获得窗口 ID,替换到相应位置即可。

小结

预览如下:

系统设置>桌面行为>桌面特效>模糊可以调整终端模糊的效果强度,经个人测试性能上基本没有什么影响,因为我没有核显(贫穷的眼神 <_<),网上之前看到有人说 OpenGL3.0 不能使用,但因为到写文这个时间已经是OpenGL3.1了,运行无问题。其他主题配置可以看截图,基本都是在KDE Store找的。

最后补上一张桌面全图(其实只是其中一个屏幕,因为另外一个屏幕是空的,所以就不展示了)。