在 Debian 上使用 Compton 的完整指南
一 安装与准备
- 更新软件包索引并安装 Compton(以及可选的 x11-xserver-utils、wmctrl 工具):
- sudo apt update && sudo apt install compton x11-xserver-utils wmctrl -y
- 若系统已自带合成器(如某些桌面自带),建议先关闭以避免冲突,再启动 Compton。Compton 常与 i3、Openbox 等窗口管理器配合使用。
二 配置 Compton
- 配置文件路径:优先使用用户级配置 ~/.config/compton.conf;也可放在 /etc/xdg/compton.conf 作为全局配置。不存在时可新建:
- mkdir -p ~/.config && nano ~/.config/compton.conf
- 基础示例(可直接使用并按需微调):
- backend glx # 或 xrender,glx 在多数显卡上性能更佳
- vsync true # 垂直同步,减少撕裂
- shadow true # 窗口阴影
- shadow-radius 2 # 阴影圆角半径
- shadow-dx 2; shadow-dy 2 # 阴影偏移
- background “#000000” # 背景色
-
可选:背景模糊(性能开销较大)
-
blur-background true
-
blur-kern “3x3box”
- 常用高级规则(追加到配置文件末尾):
- 窗口透明度规则(示例:Firefox、终端更透明;Xephyr 不透明)
- opacity-rule = [ “90:name *? ‘Firefox’”, “90:name *? ‘Terminal’”, “100:class_g ‘Xephyr’” ]
- 阴影排除(示例:通知、菜单、隐藏/置顶窗口等不绘制阴影)
- shadow-exclude = [
“name ‘Notification’”,
“class_g ? ‘Dmenu’”,
“class_g ? ‘Dunst’”,
“_NET_WM_STATE@:32a * ‘_NET_WM_STATE_HIDDEN’”,
“_GTK_FRAME_EXTENTS@:c”,
“_NET_WM_STATE@:32a * ‘_NET_WM_STATE_STICKY’”,
“class_g ? ‘i3-frame’”
]
三 启动与自启动
- 手动启动与热重载:
- 查看是否已在运行:ps -e | grep compton
- 无则启动:compton --config ~/.config/compton.conf &
- 应用新配置:killall compton && compton --config ~/.config/compton.conf &
- 会话级自启动(推荐,适用于 i3/Openbox 等):
- 将启动命令加入会话的自动启动脚本(如 i3 的 ~/.config/i3/config:exec --no-startup-id compton --config ~/.config/compton.conf)
- 系统级自启动(可选,使用 systemd 用户服务):
- mkdir -p ~/.config/systemd/user
- 新建文件 ~/.config/systemd/user/compton.service:
- [Unit]
Description=Compton Compositor
After=graphical-session.target
- [Service]
ExecStart=/usr/bin/compton --config %h/.config/compton.conf
Restart=always
- [Install]
WantedBy=graphical-session.target
- 启用并启动:
- systemctl --user daemon-reload
- systemctl --user enable --now compton
- 不建议使用传统的 /etc/init.d/ 脚本方式(SysV),在较新的 Debian 上优先采用用户级 systemd 或会话自启动。
四 常见问题与优化
- 性能优化要点:
- 选择后端:优先 backend glx;若出现画面异常或驱动问题,再尝试 xrender。
- 降低开销:不需要时关闭 shadow、blur-background 或全局透明度。
- 启用 GPU 加速:使用 backend glx 可利用 OpenGL 提升合成性能。
- 资源限制(可选):
- 限制 CPU 占用(示例:将 Compton 限制为 50%):
- cpulimit -l 50 -p $(pgrep compton)
- 故障排查:
- 若启动失败或黑屏/撕裂,先回退到稳定配置(如关闭模糊、阴影),再逐项开启定位问题。