必须通过 colord 将 ICC 文件绑定到具体显示器输出端口(如 HDMI-1)才能生效;仅复制文件到目录不会自动启用,且 GIMP 需重启才识别新配置。

怎么把 ICC 文件设成 Ubuntu 默认显示器配置
系统级色彩校准生效的前提,是把正确的 .icc 文件绑定到具体显示器设备上。不是放进某个目录就自动生效,必须通过系统色彩服务(colord)注册并关联到物理输出端口(如 HDMI-1 或 eDP-1)。
操作分三步:
- 确认显示器名称:运行
xrandr --current | grep connected,记下外接显示器的输出名(比如HDMI-1) - 把 ICC 文件复制到用户色彩目录:
mkdir -p ~/.local/share/color/icc && cp your-profile.icc ~/.local/share/color/icc/ - 用
colormgr命令绑定:colormgr device-add-output "HDMI-1" ~/.local/share/color/icc/your-profile.icc
留意:colormgr不会给出成功提示,但执行后能立刻检查:colormgr device-get-profiles "HDMI-1"应当列出你刚添加的文件。要是报错 “No such device”,意味着输出名不匹配或者colord未运行(用systemctl --user status colord查看状态)。
为什么 GIMP 里看不到系统设置的显示器 ICC
GIMP 默认读取系统配置,但只在启动时加载一次。如果你在 GIMP 运行中更新了系统显示器 ICC,它不会自动刷新——必须重启 GIMP 才能识别新配置。
更隐蔽的问题是路径权限和格式:
.icc文件必须有读权限(chmod 644 your-profile.icc)- 不能是
.icm或带 BOM 的 UTF-8 编码;用file your-profile.icc检查是否显示 “ICC profile data” - 如果 GIMP 首选项 → 色彩管理 → 显示设备 下拉列表为空,说明
colord没把 ICC 注册为“可用显示器配置”,而不是 GIMP 故障
验证方式:打开系统设置 → 显示 → 颜色管理,选中对应显示器,看右侧是否显示已应用的配置文件名。没显示就回上一步排查 colormgr 绑定。
用 xrandr --gamma 临时调色 vs. 用 ICC 正式校准
xrandr --output HDMI-1 --gamma 1.0:0.85:0.7 这类命令只是粗略缩放 RGB 通道亮度,本质是线性增益调整,不涉及色域映射、白点校正或色调响应曲线(TRC),属于“调色”而非“校准”。
它适合快速缓解偏红/偏黄,但有明显缺陷:
- 无法修复色域偏差(比如显示器天生缺青,gamma 调再狠也补不回来)
- 不同亮度层级的色彩失真程度不一致(暗部和亮部偏移比例相同,违背人眼视觉特性)
- 重启、休眠、切换显示器后失效,且与 GIMP/Compton 等依赖 ICC 的工具完全不兼容
真正稳定的方案,仍是用 DisplayCAL 生成 ICC + colormgr 绑定。xrandr gamma 只应作为临时应急手段,别把它当长期解决方案。
Compton 和 GIMP 共用同一 ICC 文件时要注意什么
Compton 的 color-profile 参数和 GIMP 的“显示设备”配置,理论上可以指向同一个 .icc 文件,但实际使用中容易出错:
- Compton 要求路径绝对且可读(
~不展开,必须写成/home/username/.local/share/color/icc/your.icc) - GIMP 在首选项里选 ICC 时,内部会走
colordAPI 查询已注册设备配置,不直接读文件路径——所以即使 Compton 加载了 ICC,GIMP 仍可能显示为空,除非该 ICC 已通过colormgr device-add-output关联到显示器 - 若同时启用 Compton 的
color-management=true和 GIMP 的软打样,两者都依赖同一套系统色彩服务,此时colord必须正常运行,否则任一环节都会降级为无管理模式
最稳妥的做法:先确保 colord 已注册并激活显示器 ICC,再让 Compton 和 GIMP 都依赖系统服务,而不是各自硬编码路径。否则调试时你会反复怀疑是软件 bug,其实是色彩服务链断了一环。