Ubuntu 下用 Compton 提升色彩表现的可行方案
一 原理与前提
- Compton 是 X11 的合成器,主要职责是窗口合成、阴影、淡入淡出与 vsync 等,不负责 ICC 色彩管理。要真正提升“色彩准确性”,应依靠系统的 colord 色彩管理服务加载显示器的 ICC 配置文件;Compton 只需避免破坏色彩处理链路(如不随意做颜色转换或启用会引入色偏的着色器)。在 Wayland 会话下,应使用该会话自带的合成与色彩管理机制,Compton 不适用。
二 标准配置步骤
- 安装与启用色彩管理服务
- 安装工具(可选,便于校准与管理):sudo apt install colord xcalib arandr
- 启动并启用用户级服务:systemctl --user start colord;systemctl --user enable colord
- 准备并加载 ICC 配置
- 使用校色仪或软件(如 DisplayCAL)生成你的显示器 ICC 文件,保存到如:~/.colorprofile/monitor.icc
- 应用 ICC(二选一或都做,按你的会话与驱动生效情况选择)
- 命令行:xcalib -clear;xcalib -load ~/.colorprofile/monitor.icc
- 图形界面:在 arandr 中为每个输出加载对应 ICC(若界面提供色彩管理选项)
- 配置 Compton 避免干扰色彩
- 创建或编辑:~/.config/compton.conf
- 建议基础配置(核心是选对后端、关闭会改动像素的着色器、避免不必要的颜色转换):
- backend = “glx”
- vsync = “true”
- shadow = false # 阴影与模糊会做额外采样,易引入轻微色偏,追求色彩时可先关闭
- fading = false
- glx-no-stencil = true
- glx-use-dri3 = true
-
关键:不使用任何自定义着色器(着色器可能改变像素值)
-
如你确实需要模糊,可仅对特定窗口启用,且避免对全屏/视频层使用
- 应用与验证
- 重启会话或重载 Compton:pkill compton;compton --config ~/.config/compton.conf &
- 验证要点:
- 用系统“设置 → 颜色”或 colord 工具查看当前输出是否加载了正确的 ICC
- 观察同一图片在关闭/开启 Compton 时是否有明显色偏(应基本一致)
- 播放视频与查看照片时,色彩应稳定、不过度饱和或偏色
三 配置文件示例与说明
# ~/.config/compton.conf
backend = "glx"
vsync = "true"
# 为色彩准确性,先关闭会改动像素的特效
shadow = false
fading = false
blur-background = false
blur-kern = "3x3box"
# OpenGL 相关:使用 DRI3、关闭不必要的特性
glx-no-stencil = true
glx-use-dri3 = true
glx-copy-from-front = false
# 不使用自定义着色器(避免色偏风险)
# shader-file = "/path/to/your.frag"
# 可选:仅对特定应用做轻微透明,避免全屏/视频层
opacity-rule = [
"90:class_g 'Firefox'",
"90:class_g 'Terminal'"
]
- 说明
- 选择 glx 后端并开启 DRI3 通常能获得更稳定的 GPU 加速路径。
- 关闭 shadow/blur/fade 可减少不必要的采样与混合,降低色偏概率。
- 不使用任何 shader-file;若需要模糊,请谨慎、局部使用,并优先在应用/桌面环境层实现。
四 常见问题与排查
- 已加载 ICC 但屏幕仍“发艳/偏色”
- 检查是否使用了会改色的特效(阴影、模糊、自定义着色器);先全部关闭验证,再逐项恢复。
- 确认 ICC 是为该显示器、该刷新率/色域生成;必要时重新校色并替换 ICC。
- 某些桌面环境/驱动组合会在合成器之外做颜色转换,优先使用系统“设置 → 颜色”选择“使用默认配置”或指定你的 ICC。
- 使用 Wayland 会话
- Compton 仅适用于 X11;Wayland 请使用其原生合成器与色彩管理流程(GNOME/KDE 等均有相应设置)。
- 重启后设置丢失
- 将 Compton 启动加入会话自启(如桌面环境的“启动应用程序”),或使用系统服务管理(如用户级 systemd 单元)确保持久化。