GUI Emacs 显示色差的疑惑

发现一个细微的问题但是对强迫症非常不友好 :sweat_smile: 我的系统是macos,启动的是gui的Emacs。主题里面设置的颜色,显示出来似乎会有一点点轻微的色差。同样的主题颜色代码,我在alacritty终端里zsh下面或者neovim里面,用macos系统的拾色器取颜色和代码里设置的是吻合的。但是emacs取到的颜色和代码里设置的有一点点偏差。

虽然偏差的不多,但是每个颜色都差一点整体看起来就感觉不太一样。如果并排对比的话就特别明显了。

请问大家有没有也注意到过这个现象的 :joy: 这是emacs gui渲染本身的问题,还是我macos版本编译的问题?

设置 ns-use-srgb-colorspace

请问是要设成t么,我看了一下应该默认已经是t了。

顺便补充下,用的是emacs-head@29编译的29.0.6, 编译选项开了–with-dbus --with-mailutils --with-cocoa --with-no-frame-refocus --with-xwidgets --with-native-comp --with-native-full-aot --with-tree-sitter这些。

那就设成 nil

颜色会变化但是都不准,下面贴一个例子:

image

这个颜色代码是#b6a0ff

image

设置成t的时候,取到的是#AD96FF

image

设置成nil的时候,取到的是#BBAAFF

排版略乱,见谅。

取色计里用 sRGB 是准的。所以,你可以考虑下在 emacs GUI 里对主题顏色做下转換。

他们可能用的系统原生的 API 调的颜色。

至少 Emacs 在 24 以后明说了用的是 sRGB,而且测出来的 sRGB 的确是准的。

ns-use-srgb-colorspacenil 时用的是 "platform dependent method`,那为什么和 alacritty 设的频色不一样我就不知道了,可能原来的代码是乱写的也说不定。

你说的对,用sRGB是准的。试了一下实际上Emacs和其他软件比如浏览器的行为貌似是一致的,应该不是Emacs的问题。

确实是的,刚才还看到他们github上最近有个pr准备给也改成srgb。

哈哈,估计也是好多年前老版本emacs针对老版本macos的代码吧,现在emacs和系统版本都变了好多也不好调查是啥原因了 :rofl: