如何将 GNOME 终端颜色传输/应用到 KDE Konsole?

如何将 GNOME 终端颜色传输/应用到 KDE Konsole?

我需要在 KDE Konsole 中使用 GNOME 终端颜色。

我不确定从哪里可以得到 GNOME 终端最新的调色板,但我猜这可能会有用:https://gitlab.gnome.org/GNOME/gnome-terminal/-/blame/master/src/terminal-profile-editor.cc?ref_type=heads#L198

static const GdkRGBA terminal_palettes[TERMINAL_PALETTE_N_BUILTINS][PALETTE_SIZE] =
{
  /* Based on GNOME 3.32 palette: https://developer.gnome.org/hig/stable/icon-design.html.en#palette */
  {
    COLOR (0x1e, 0x1e, 0x1e),  /* Suggested background for contrast */
    COLOR (0xc0, 0x1c, 0x28),  /* Red 4 */
    COLOR (0x26, 0xa2, 0x69),  /* Green 5 */
    COLOR (0xa2, 0x73, 0x4c),  /* Blend of Brown 2 and Brown 3 */
    COLOR (0x12, 0x48, 0x8b),  /* Blend of Blue 5 and Dark 4 */
    COLOR (0xa3, 0x47, 0xba),  /* Purple 3 */
    COLOR (0x2a, 0xa1, 0xb3),  /* Linear addition Blue 5 + Green 5, darkened slightly */
    COLOR (0xff, 0xff, 0xff),  /* Light 1 */
    COLOR (0x5e, 0x5c, 0x64),  /* Dark 2 */
    COLOR (0xf6, 0x61, 0x51),  /* Red 1 */
    COLOR (0x33, 0xd1, 0x7a),  /* Green 3 */
    COLOR (0xe9, 0xad, 0x0c),  /* Blend of Yellow 4 and Yellow 5 */
    COLOR (0x2a, 0x7b, 0xde),  /* Blend of Blue 3 and Blue 4 */
    COLOR (0xc0, 0x61, 0xcb),  /* Purple 2 */
    COLOR (0x33, 0xc7, 0xde),  /* Linear addition Blue 4 + Green 4, darkened slightly */
    COLOR (0xd0, 0xcf, 0xcc)   /* Blend of Light 3 and Light 4 */
  },

— 总共 16 种颜色。

现在我需要将它们变成 KDE Konsole 调色板,但我不明白上面的颜色与 Konsole 配色方案编辑器中显示的颜色如何对应:

在此处输入图片描述

大家有什么想法吗?

答案1

与其研究 GNOME 终端的源代码,我更推荐直接打开它的“首选项”对话框,切换到“颜色”选项卡,然后单击颜色以获取其十六进制值(例如#ff0000)。你应该将这些值逐一复制到 Konsole 的颜色选择器中。

通过打开 GNOME 终端的图形首选项对话框,应该可以更清楚地知道哪种颜色对应于 Konsole 的哪种颜色,而不是研究其来源。

(您在其源代码中找到的是正确的,但您在那里看不到它们的实际颜色,您必须找到您想要使用的内置调色板,默认的前景+背景颜色在其他地方定义,您必须从该格式转换为标准格式。这就是为什么我不建议从这里开始。)

但映射并不完全是 1:1。

Konsole 的“强烈前景”可能与 GNOME 终端的“粗体颜色”相匹配,但我不太确定。我也不确定 Konsole 的“强烈背景”代表什么,这可能是 GNOME 终端所没有的。

Konsole 的“颜色 1”至“颜色 8”行中的“颜色”和“强烈颜色”列与 GNOME 终端的“调色板”相匹配,只是垂直排列而不是水平排列。

“微弱颜色”是一个很少使用的概念。Konsole 允许您配置它们中的每一个。GNOME 终端使用硬连线公式,我认为 R、G 和 B 十六进制值中的每一个都是同一行中正常颜色值的 2/3。如果您愿意,可以手动计算这些值。例如,红色通道中的#ff0000十六进制是ff十进制 255,它的 2/3 是十进制 170,aa十六进制。绿色和蓝色通道为 0,保持为 0。因此它变成#aa0000

还要注意,GNOME 终端有一个“用亮色显示粗体文本”复选框,在最近的版本中默认禁用,但我不确定 Konsole 是否支持其等效行为,我认为(虽然我可能错了)它总是像在 GNOME 终端中启用时一样表现。Konsole 有一个“用粗体字体绘制浓颜色”,但这是相反的,在我看来这是一个错误的概念。

因此,您将无法获得 100% 完全相同的行为,但这是您可以将颜色配置得尽可能接近的方法。

相关内容