Compton是Linux下一个轻量级的X11合成窗口管理器,主要用于提供窗口透明、阴影、淡入淡出等视觉效果。以下是一些高级使用技巧和配置建议:
# Debian/Ubuntu
sudo apt install compton
# Arch Linux
sudo pacman -S compton
# Fedora
sudo dnf install compton
创建或编辑 ~/.config/compton.conf
:
# 启用阴影
shadow = true;
# 阴影排除列表(不显示阴影的窗口)
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;
# 使用GLX后端(通常性能更好)
backend = "glx";
# 启用vsync避免屏幕撕裂
vsync = true;
# 降低刷新率以节省资源
refresh-rate = 0;
# 不绘制不需要的窗口
paint-on-overlay = true;
# 窗口不活动时的透明度
inactive-opacity = 0.8;
# 窗口活动时的透明度
active-opacity = 1.0;
# 菜单透明度
menu-opacity = 0.9;
# 排除透明效果的窗口
opacity-rule = [
"95:class_g = 'Alacritty'",
"100:class_g = 'Firefox'"
];
# 启用窗口动画
animations = true;
animation-for-open-window = "zoom";
animation-for-transient-window = "slide-down";
# 动画参数
animation-stiffness = 300.0;
animation-window-mass = 1.0;
animation-dampening = 35.0;
# 为不同显示器设置不同参数
shadow-offset-x = -15;
shadow-offset-y = -15;
shadow-radius = 12;
# 主显示器
shadow-red = 0.0;
shadow-green = 0.0;
shadow-blue = 0.0;
# 副显示器(如果有)
shadow-exclude-monitor = 1;
# 排除列表
no-fading-openclose = false;
no-fading-destroyed-argb = true;
# 排除特定窗口类型
shadow-ignore-shaped = false;
shadow-exclude = [
"! name~=''",
"name = 'Notification'",
"name = 'Plank'",
"name = 'Docky'",
"name = 'Kupfer'",
"name = 'xfce4-notifyd'",
"name *= 'VLC'",
"name *= 'compton'",
"name *= 'Chromium'",
"name *= 'Chrome'",
"class_g = 'Firefox' && argb",
"class_g = 'Conky'",
"class_g = 'Kupfer'",
"class_g = 'Synapse'",
"class_g ?= 'Notify-osd'",
"class_g ?= 'Cairo-dock'",
"class_g ?= 'Xfce4-notifyd'",
"class_g ?= 'Xfce4-power-manager'"
];
# 为i3wm优化
mark-wmwin-focused = true;
mark-ovredir-focused = true;
use-ewmh-active-win = true;
detect-rounded-corners = true;
detect-client-opacity = true;
compton --config ~/.config/compton.conf -b
compton --daemon --config ~/.config/compton.conf
对于i3wm,在配置文件中添加:
exec --no-startup-id compton --config ~/.config/compton.conf -b
对于GNOME/KDE等,在"自动启动应用程序"中添加compton。
屏幕撕裂问题:
backend = "glx";
vsync = "opengl-swc";
性能问题:
glx-no-stencil = true;
glx-no-rebind-pixmap = true;
xrender-sync-fence = true;
特定应用程序显示问题: 尝试将该应用程序添加到排除列表中。
检查日志:
compton --diagnostics
通过合理配置Compton,可以显著提升Linux桌面的视觉体验,同时保持系统性能。建议根据具体硬件和需求调整参数。