插件窝 干货文章 Linux系统中Compton的最佳实践

Linux系统中Compton的最佳实践

Compton class config name 952    来源:    2025-05-05

Compton在Linux系统中的最佳实践

Compton是一个轻量级的X11合成窗口管理器,用于提供窗口透明、阴影、淡入淡出等视觉效果。以下是在Linux系统中使用Compton的最佳实践:

1. 安装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

2. 基本配置

创建或编辑~/.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;

3. 启动Compton

手动启动

compton --config ~/.config/compton.conf -b

自动启动

将以下内容添加到桌面环境的自动启动中(如~/.xinitrc~/.config/autostart/):

compton --config ~/.config/compton.conf -b

4. 高级配置选项

性能优化

# 使用更高效的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'"
];

5. 故障排除

常见问题解决

  1. 屏幕撕裂

    vsync = "opengl-swc";  # 或尝试 "opengl", "drm"
    
  2. 性能问题

    backend = "xrender";  # 如果glx有问题
    glx-no-stencil = true;
    glx-no-rebind-pixmap = true;
    
  3. 特定应用不显示

    # 在shadow-exclude或opacity-rule中添加排除规则
    

调试模式

compton --config ~/.config/compton.conf -b --log-level debug

6. 替代方案

如果Compton出现问题,可以考虑以下替代品: - picom: Compton的分支,持续维护 - xcompmgr: 更轻量但功能较少 - compiz: 功能丰富但较重

7. 与不同桌面环境的集成

i3wm

exec --no-startup-id compton --config ~/.config/compton.conf -b

GNOME

可能需要禁用GNOME自带的合成器

KDE

在系统设置中禁用KWin的合成效果,然后启动Compton

通过以上最佳实践,您可以在Linux系统中获得流畅且美观的窗口合成效果,同时保持系统性能。根据您的硬件和需求调整配置参数以获得最佳体验。