Compton 是一个轻量级的 X11 合成管理器,常用于 Linux 系统中实现窗口透明、阴影和其他视觉效果。下面是如何配置 Compton 实现透明效果的方法。
首先确保已安装 Compton:
# Debian/Ubuntu
sudo apt install compton
# Arch Linux
sudo pacman -S compton
# Fedora
sudo dnf install compton
创建或编辑 Compton 的配置文件 ~/.config/compton.conf
:
# 启用 Compton
backend = "glx";
paint-on-overlay = true;
glx-no-stencil = true;
glx-no-rebind-pixmap = true;
# 基本透明设置
inactive-opacity = 0.8;
active-opacity = 1.0;
frame-opacity = 0.7;
inactive-opacity-override = false;
# 模糊效果 (可选)
blur-background = true;
blur-background-frame = true;
blur-background-fixed = true;
blur-kern = "3x3box";
可以为特定窗口设置不同的透明度:
# 设置特定窗口的透明度
opacity-rule = [
"90:class_g = 'Terminal'",
"80:class_g = 'Thunar'",
"70:class_g = 'Firefox' && !focused",
"100:class_g = 'Firefox' && focused"
];
可以手动启动 Compton 测试效果:
compton --config ~/.config/compton.conf -b
要使其在登录时自动启动,可以将上述命令添加到你的窗口管理器或桌面环境的自动启动脚本中。
# 淡入淡出效果
fading = true;
fade-delta = 5;
fade-in-step = 0.03;
fade-out-step = 0.03;
fade-exclude = [];
# 阴影设置
shadow = true;
shadow-radius = 12;
shadow-offset-x = -5;
shadow-offset-y = -5;
shadow-opacity = 0.5;
shadow-exclude = [
"name = 'Notification'",
"class_g = 'Conky'",
"class_g ?= 'Notify-osd'",
"class_g = 'Cairo-clock'"
];
透明效果不工作:
backend = "xrender";
性能问题:
vsync = "opengl-swc";
或 vsync = "opengl";
改善性能特定应用程序不透明:
opacity-rule
中添加特定规则Compton 可能与 GNOME 自带的合成管理器冲突,建议禁用 GNOME 的合成效果。
KDE 有自己的合成管理器,可以禁用 KWin 的合成效果或直接使用 KWin 的透明设置。
在窗口管理器配置文件中添加 Compton 的自动启动:
exec --no-startup-id compton --config ~/.config/compton.conf -b
通过以上配置,你应该可以在 Linux 系统中实现各种透明效果。根据你的硬件和需求调整参数以获得最佳效果。