在 Ubuntu 中设置 Compton 的完整步骤
一 安装与准备
- 更新软件源并安装 Compton:
- sudo apt update
- sudo apt install compton
- 确认安装成功并查看进程:
- 注意:Compton 是 X11 合成器,不能在 Wayland 会话中工作;如使用 Wayland,请改用 Mutter/GNOME Shell 的合成器或其他 Wayland 兼容方案。
二 创建配置文件
- 生成默认配置(便于按需修改):
- compton --config ~/.config/compton.conf.example --dump-config > ~/.config/compton.conf
- 或手动创建并编辑:
- mkdir -p ~/.config
- nano ~/.config/compton.conf
- 建议至少设置以下关键项(示例值可按需调整):
- backend = “glx”(或 “xrender”,取决于显卡与驱动)
- vsync = true(减少撕裂;若出现卡顿可尝试 false)
- shadow = true
- fade = true
- 可选:opacity 规则用于特定窗口透明(示例见下文)。
三 启动与开机自启
- 手动前台启动(便于观察输出与排错):
- 手动重启/停止:
- killall compton && compton -b
- 开机自启的常见方式:
- 使用会话自启动:将 compton -b 加入桌面会话的自动启动(如 Openbox 的 autostart、i3 的 config、或“启动应用程序”)。
- 使用 systemd 用户服务(推荐,适用于大多数会话):
-
创建服务文件:nano ~/.config/systemd/user/compton.service
-
写入以下内容(注意将配置文件路径替换为你实际使用的路径):
[Unit]
Description=Compton Compositor
After=graphical-session.target
[Service]
ExecStart=/usr/bin/compton --config %h/.config/compton.conf
Restart=on-failure
Environment=DISPLAY=:0
[Install]
WantedBy=graphical-session.target
-
启用并启动:
systemctl --user daemon-reload
systemctl --user enable --now compton.service
- 若使用登录管理器(如 LightDM/GDM),也可在显示管理器层面启用用户会话的 systemd 服务(需确保会话支持)。。
四 常用配置示例与参数说明
- 示例配置 ~/.config/compton.conf(精简可用):
backend = “glx”
vsync = true
shadow = true
fade = true
shadow-radius = 12
shadow-offset-x = 1
shadow-offset-y = 1
shadow-opacity = 0.25
shadow-exclude = [
“name = ‘Notification’”,
“class_g = ‘Conky’”,
“class_g = ‘Polybar’”,
“_GTK_FRAME_EXTENTS@:c”
]
opacity-rule = [
“90:class_g = ‘URxvt’”,
“0.85:class_g = ‘Firefox’”
]
- 关键参数说明:
- backend:渲染后端,常见为 glx(通常性能更好)或 xrender(兼容性更好)。
- vsync:垂直同步,开启可减少撕裂,个别驱动/应用下可能引入卡顿。
- shadow / shadow-exclude:窗口阴影与排除列表(可用正则/条件匹配窗口类、标题等)。
- fade:窗口切换的淡入淡出动画。
- opacity-rule:按窗口类/标题设置透明度(0.0–1.0)。
- 模糊相关(可选):如 blur-method、blur-size、blur-deviation,用于背景模糊等效果(性能开销更高)。
五 调试与常见问题
- 查看日志定位问题:
- compton --log-file=/tmp/compton.log
- 或在 systemd 服务中增加日志:ExecStart=/usr/bin/compton --config %h/.config/compton.conf --log-file=/tmp/compton.log
- 常见症状与处理:
- 屏幕撕裂:将 vsync 设为 true;若仍撕裂,尝试切换 backend(glx/xrender)或关闭某些特效。
- 卡顿/高占用:减少阴影、模糊、淡入淡出;将 backend 调整为更适合你显卡的选项。
- 某些应用/面板无阴影或异常透明:在 shadow-exclude 增加对应规则(如 Conky、Polybar、通知等)。
- 会话类型不匹配:确认在 Xorg 会话中运行;Wayland 下 Compton 不会生效。
- 修改配置后生效方式:killall compton && compton -b,或 systemctl --user restart compton.service。