插件窝 干货文章 如何在Linux中安装和配置Compton

如何在Linux中安装和配置Compton

Compton 窗口 shadow opacity 215    来源:    2025-05-08

在Linux中安装和配置Compton

Compton是一个轻量级的X11合成窗口管理器,可以提供窗口透明、阴影、淡入淡出等视觉效果,同时也能减少屏幕撕裂问题。以下是安装和配置Compton的详细指南。

安装Compton

在基于Debian/Ubuntu的系统上

sudo apt update
sudo apt install compton

在基于Arch Linux的系统上

sudo pacman -S compton

在基于Fedora的系统上

sudo dnf install compton

在基于openSUSE的系统上

sudo zypper install compton

基本配置

Compton的配置文件通常位于~/.config/compton.conf~/.compton.conf。如果不存在,可以创建一个。

创建基本配置文件

nano ~/.config/compton.conf

添加以下基本配置:

# 启用阴影
shadow = true;
# 不显示阴影的窗口
no-dnd-shadow = true;
no-dock-shadow = true;
# 阴影的偏移量
shadow-offset-x = -15;
shadow-offset-y = -15;
# 阴影不透明度
shadow-opacity = 0.8;
# 阴影颜色
shadow-red = 0.0;
shadow-green = 0.0;
shadow-blue = 0.0;
# 排除阴影的窗口条件
shadow-exclude = [
    "name = 'Notification'",
    "class_g = 'Conky'",
    "class_g ?= 'Notify-osd'",
    "class_g = 'Cairo-clock'",
    "_GTK_FRAME_EXTENTS@:c"
];

# 淡入淡出效果
fading = true;
# 淡入淡出时间(毫秒)
fade-delta = 4;
# 淡入淡出窗口打开/关闭时间
fade-in-step = 0.03;
fade-out-step = 0.03;
# 排除淡入淡出的窗口
fade-exclude = [];

# 窗口透明度
inactive-opacity = 0.8;
active-opacity = 1.0;
frame-opacity = 0.7;
inactive-opacity-override = false;

# 不透明度规则
opacity-rule = [
    "90:class_g = 'Alacritty'",
    "85:class_g = 'Termite'"
];

# 后端选择(自动选择最佳后端)
backend = "glx";
# 修复屏幕撕裂
vsync = true;

# 其他性能选项
mark-wmwin-focused = true;
mark-ovredir-focused = true;
detect-rounded-corners = true;
detect-client-opacity = true;

启动Compton

手动启动

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

-b参数表示在后台运行。

自动启动

要将Compton添加到自动启动:

  1. 对于使用.xinitrc的用户: 在~/.xinitrc文件中,在窗口管理器启动命令之前添加:

    compton --config ~/.config/compton.conf -b &
    
  2. 对于使用桌面环境的用户: 将Compton添加到桌面环境的自动启动应用程序中。

高级配置选项

窗口规则

# 特定窗口的透明度规则
opacity-rule = [
    "100:class_g = 'Firefox'",
    "90:class_g = 'Alacritty' && focused",
    "80:class_g = 'Alacritty' && !focused"
];

性能优化

# 使用GLX后端(通常性能更好)
backend = "glx";
glx-no-stencil = true;
glx-no-rebind-pixmap = true;

# 减少重绘
paint-on-overlay = true;

窗口动画

# 窗口打开/关闭动画
wintypes:
{
    tooltip = { fade = true; shadow = false; opacity = 0.75; focus = true; };
    dock = { shadow = false; };
    dnd = { shadow = false; };
    popup_menu = { opacity = 0.8; };
    dropdown_menu = { opacity = 0.8; };
};

常见问题解决

  1. 屏幕撕裂问题

    vsync = true;
    backend = "glx";
    
  2. 性能问题

    • 尝试不同的后端:backend = "xrender";
    • 禁用阴影和淡入淡出效果
  3. 特定窗口不透明: 检查shadow-excludeopacity-rule部分,确保没有意外排除

  4. 与某些应用程序冲突: 尝试将这些应用程序添加到排除列表中

测试和调试

启动Compton时添加--log-level INFO--log-level DEBUG参数查看详细日志:

compton --config ~/.config/compton.conf --log-level DEBUG

通过调整这些配置选项,您可以根据自己的硬件和偏好优化Compton的性能和视觉效果。