插件窝 干货文章 Linux中Compton如何实现透明效果

Linux中Compton如何实现透明效果

Compton 效果 透明 合成 173    来源:    2025-05-09

Compton 在 Linux 中实现透明效果

Compton 是一个轻量级的 X11 合成管理器,常用于 Linux 系统中实现窗口透明、阴影和其他视觉效果。下面是如何配置 Compton 实现透明效果的方法。

安装 Compton

首先确保已安装 Compton:

# Debian/Ubuntu
sudo apt install compton

# Arch Linux
sudo pacman -S compton

# Fedora
sudo dnf install compton

基本透明效果配置

创建或编辑 Compton 的配置文件 ~/.config/compton.conf

# 启用 Compton
backend = "glx";
paint-on-overlay = true;
glx-no-stencil = true;
glx-no-rebind-pixmap = true;

# 基本透明设置
inactive-opacity = 0.8;
active-opacity = 1.0;
frame-opacity = 0.7;
inactive-opacity-override = false;

# 模糊效果 (可选)
blur-background = true;
blur-background-frame = true;
blur-background-fixed = true;
blur-kern = "3x3box";

特定窗口透明设置

可以为特定窗口设置不同的透明度:

# 设置特定窗口的透明度
opacity-rule = [
    "90:class_g = 'Terminal'",
    "80:class_g = 'Thunar'",
    "70:class_g = 'Firefox' && !focused",
    "100:class_g = 'Firefox' && focused"
];

启动 Compton

可以手动启动 Compton 测试效果:

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

要使其在登录时自动启动,可以将上述命令添加到你的窗口管理器或桌面环境的自动启动脚本中。

高级配置选项

淡入淡出效果

# 淡入淡出效果
fading = true;
fade-delta = 5;
fade-in-step = 0.03;
fade-out-step = 0.03;
fade-exclude = [];

阴影效果

# 阴影设置
shadow = true;
shadow-radius = 12;
shadow-offset-x = -5;
shadow-offset-y = -5;
shadow-opacity = 0.5;
shadow-exclude = [
    "name = 'Notification'",
    "class_g = 'Conky'",
    "class_g ?= 'Notify-osd'",
    "class_g = 'Cairo-clock'"
];

常见问题解决

  1. 透明效果不工作

    • 确保你的窗口管理器支持合成
    • 尝试不同的后端:backend = "xrender";
  2. 性能问题

    • 尝试禁用一些效果
    • 使用 vsync = "opengl-swc";vsync = "opengl"; 改善性能
  3. 特定应用程序不透明

    • 检查应用程序是否使用了自己的合成设置
    • opacity-rule 中添加特定规则

不同桌面环境的整合

GNOME

Compton 可能与 GNOME 自带的合成管理器冲突,建议禁用 GNOME 的合成效果。

KDE

KDE 有自己的合成管理器,可以禁用 KWin 的合成效果或直接使用 KWin 的透明设置。

i3/sway

在窗口管理器配置文件中添加 Compton 的自动启动:

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

通过以上配置,你应该可以在 Linux 系统中实现各种透明效果。根据你的硬件和需求调整参数以获得最佳效果。