Compton是一个轻量级的X11合成窗口管理器,用于提供窗口透明、阴影、淡入淡出等视觉效果。以下是在Linux系统中使用Compton的最佳实践:
# Debian/Ubuntu
sudo apt install compton
# Arch Linux
sudo pacman -S compton
# Fedora
sudo dnf install compton
# 从源码编译
git clone https://github.com/chjj/compton.git
cd compton
make
sudo make install
创建或编辑~/.config/compton.conf
配置文件:
# 基本设置
backend = "glx";
paint-on-overlay = true;
glx-no-stencil = true;
glx-no-rebind-pixmap = true;
# 透明效果
inactive-opacity = 0.9;
active-opacity = 1.0;
frame-opacity = 0.7;
inactive-opacity-override = false;
# 阴影
shadow = true;
shadow-radius = 12;
shadow-offset-x = -15;
shadow-offset-y = -15;
shadow-opacity = 0.3;
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;
compton --config ~/.config/compton.conf -b
将以下内容添加到桌面环境的自动启动中(如~/.xinitrc
或~/.config/autostart/
):
compton --config ~/.config/compton.conf -b
# 使用更高效的backend
backend = "glx";
# 减少重绘
vsync = "opengl-swc";
# 排除不需要特效的窗口
shadow-exclude = [
"! name~=''",
"name = 'Notification'",
"name = 'Plank'",
"name = 'Docky'",
"name = 'Kupfer'",
"name = 'xfce4-notifyd'",
"name *= 'VLC'",
"name *= 'compton'",
"name *= 'Chromium'",
"name *= 'Chrome'",
"class_g = 'Conky'",
"class_g = 'Firefox' && argb",
"class_g = 'Dmenu'",
"class_g = 'i3-frame'",
"class_g = 'i3bar'",
"class_g = 'i3lock'",
"class_g = 'i3status'",
"class_g = 'Kupfer'",
"class_g = 'Synapse'",
"class_g ?= 'Notify-osd'",
"class_g ?= 'Cairo-dock'",
"class_g ?= 'Xfce4-notifyd'",
"class_g ?= 'Xfce4-power-manager'"
];
# 特定窗口的透明设置
opacity-rule = [
"95:class_g = 'Alacritty'",
"85:class_g = 'Termite'",
"90:class_g = 'URxvt'",
"100:class_g = 'XTerm'"
];
屏幕撕裂
vsync = "opengl-swc"; # 或尝试 "opengl", "drm"
性能问题
backend = "xrender"; # 如果glx有问题
glx-no-stencil = true;
glx-no-rebind-pixmap = true;
特定应用不显示
# 在shadow-exclude或opacity-rule中添加排除规则
compton --config ~/.config/compton.conf -b --log-level debug
如果Compton出现问题,可以考虑以下替代品: - picom: Compton的分支,持续维护 - xcompmgr: 更轻量但功能较少 - compiz: 功能丰富但较重
exec --no-startup-id compton --config ~/.config/compton.conf -b
可能需要禁用GNOME自带的合成器
在系统设置中禁用KWin的合成效果,然后启动Compton
通过以上最佳实践,您可以在Linux系统中获得流畅且美观的窗口合成效果,同时保持系统性能。根据您的硬件和需求调整配置参数以获得最佳体验。