Compton 是一个轻量级的 X11 合成窗口管理器,主要用于提供窗口透明、阴影、淡入淡出等视觉效果。以下是我使用 Compton 的一些心得和经验分享。
在大多数 Linux 发行版中,可以通过包管理器安装 Compton:
# Debian/Ubuntu
sudo apt install compton
# Arch Linux
sudo pacman -S compton
# Fedora
sudo dnf install compton
Compton 的配置文件通常位于 ~/.config/compton.conf
。以下是一些常用配置选项:
# 启用 vsync 防止屏幕撕裂
vsync = true;
# 窗口阴影设置
shadow = true;
shadow-radius = 12;
shadow-offset-x = -15;
shadow-offset-y = -15;
shadow-opacity = 0.8;
shadow-exclude = [
"name = 'Notification'",
"class_g = 'Conky'",
"class_g ?= 'Notify-osd'",
"class_g = 'Cairo-clock'"
];
# 窗口淡入淡出效果
fading = true;
fade-delta = 5;
fade-in-step = 0.03;
fade-out-step = 0.03;
# 透明效果设置
inactive-opacity = 0.8;
active-opacity = 1.0;
frame-opacity = 0.7;
inactive-opacity-override = false;
# 排除某些窗口的透明效果
opacity-rule = [
"90:class_g = 'Terminal'",
"100:class_g = 'Firefox'",
"85:class_g = 'Thunar'"
];
# 窗口圆角设置 (需要编译时启用 experimental-backends)
corner-radius = 10;
rounded-corners-exclude = [
"window_type = 'dock'",
"window_type = 'desktop'"
];
compton --config ~/.config/compton.conf -b
可以将 Compton 添加到桌面环境的自动启动中:
exec --no-startup-id compton --config ~/.config/compton.conf -b
# 使用 glx 后端 (通常性能更好)
backend = "glx";
# 减少重绘区域
paint-on-overlay = true;
glx-no-stencil = true;
glx-no-rebind-pixmap = true;
# 指定在特定显示器上禁用合成
xinerama-shadow-crop = true;
# 排除全屏窗口的透明效果
focus-exclude = [
"class_g = 'Steam'",
"class_g = 'vlc'"
];
vsync = true;
backend = "glx";
glx-swap-method = "buffer-age"; # 或 "exchange"
尝试不同的后端:
# 尝试 xrender 后端
backend = "xrender";
# 或者尝试不同的 glx 选项
glx-no-stencil = true;
glx-no-rebind-pixmap = true;
排除特定应用程序:
shadow-exclude = [
"class_g = 'Dunst'",
"class_g = 'Polybar'"
];
如果 Compton 不能满足需求,可以考虑以下替代品:
Compton 是一个强大的工具,可以显著改善 Linux 桌面的视觉体验。通过合理的配置,可以在美观和性能之间取得平衡。建议从基本配置开始,逐步添加需要的特性,并注意监控系统资源使用情况。