如何使 meld 中的文本可读?

Spa*_*awk 18 kde configuration gtk gtk3

几个月前,meld开始表现得很奇怪。常见的行几乎无法阅读,并显示为黑色背景上的深灰色文本。

融合失败

奇怪的是,以 root 身份运行它很好(使用kdesudo meld),尽管主题不那么漂亮。

根融合作品

如何为 meld 指定文本的颜色选项?

我正在使用:

  • 拱形Linux
  • KDE 4.14.3(也见于 4.14.2)
  • 融合 3.12.2(也见于 3.12.1)
  • gtk3 3.14.6(也见于 3.14.5)

故障排除

KDE系统设置

meld使用 GTK3,所以我摆弄系统设置 > 通用外观和行为 > 应用程序外观 > GTK > 选择一个 GTK3 主题。这种变化反映在 meld 中,但我选择的三个选项都没有改变文本。(可用的选项是 Default、Emacs 和oxygen-gtk;后者在上面的屏幕截图中使用。)

手动修改配置文件

我查找~gtk以他们的名字命名的文件。

~/.gtkrc-2.0
~/.gtkrc-2.0-kde4
~/.config/gtk-2.0
~/.config/gtk-3.0
~/.kde4/share/config/gtkrc
~/.kde4/share/config/gtkrc-2.0
Run Code Online (Sandbox Code Playgroud)

有趣的是gtk,它的名字中没有任何东西/root。因此,我尝试删除一些~文件,看看是否可以为我的用户获得相同的效果。我认为所有gtkrc-2.0文件都与融合无关。

首先,我删除了~/.config/gtk-3.0,但这没有效果,并在我打开 meld 时重新创建。

唯一的其他选项似乎是~/.kde4/share/config/gtkrc,因此删除了它并开始融合,这不受影响。但是,该文件并未重新创建,并且它包含一些可能相关的行(例如text[ACTIVE] = { 1.000, 1.000, 1.000 })。我不确定(丢失的)文件是否已加载。我试过了kbuildsycoca4 ; kquitapp plasma-desktop ; sleep 2 ; kstart plasma-desktop,但这没有效果。我需要手动重新加载 gtkrc 吗?为什么这个文件不受系统设置的影响/重写?

(另外,FWIW,我删除了~/.gtkrc-2.0-kde4,它实际上是到 的符号链接~/.gtkrc-2.0,我也删除了目标本身,但这没有帮助。同样,我没有重新加载 gtk(我不确定这是否有必要,或者可能),并且当我再次尝试运行 meld 时没有重新创建文件。)

可能相关的环境变量

$ export | grep -i gtk
declare -x GTK2_RC_FILES="/etc/gtk-2.0/gtkrc:/home/sparhawk/.gtkrc-2.0:/home/sparhawk/.kde4/share/config/gtkrc-2.0"
declare -x GTK_IM_MODULE="xim"
declare -x GTK_MODULES="canberra-gtk-module"
declare -x GTK_RC_FILES="/etc/gtk/gtkrc:/home/sparhawk/.gtkrc:/home/sparhawk/.kde4/share/config/gtkrc"
Run Code Online (Sandbox Code Playgroud)

(披露:我之前在KDE 论坛上问过这个问题,但没有找到解决方案。)

Tom*_*art 21

至少从 Meld 3.16.4 开始支持不同的配色方案。

Meld > Preferences

融合偏好

(可能此更改是在早期版本中引入的)

注意
也可以通过 CLI 为 Meld 强制特定主题:GTK_THEME=Adwaita:dark meld


Tia*_*ira 5

只让更新...

3.18 版本不会显示更改主题的首选项。

但是通过 dconf-editor,您可以访问 meld 配置并将 style-chema 设置为 'meld-dark' ...并且很高兴!

几乎就像这样: https: //linux.m2osw.com/no-meld-preferences-menu

在此输入图像描述


Spa*_*awk 4

看起来这是 Meld 3.12.1 中引入的回归。我从 meld网站下载了以前的版本。

Meld 3.12.0 工作正常。 3.12.0

Meld 3.12.1 没有。 在此输入图像描述

我联系了开发人员,他们告诉我这确实是 gtk+ 3 端口中引入的回归。他们建议尝试刚刚发布的 3.12.3,现在可以使用了。(但是,它仍然没有完全解释为什么合并到新帐户会起作用。)