如何使Meld中的文本可读?


16

几个月前,meld开始表现异常。常见的行几乎不可读,并在黑色背景上显示为深灰色文本。

融合失败

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

根融合工程

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

我在用着:

  • Arch 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主题。此更改反映在融合中,但是我选择的三个选项均未更改文本。(可用选项为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

有趣的是,中没有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"

(公开:我以前曾在KDE论坛上问过这个问题,但没有找到解决方案。)


@tombart答案是最新的,应该是接受一个
弗朗西斯

@Francesco不,这个问题与三年前引入的回归有关。Tombart的答案描述了一个类似但独立的问题。仔细阅读问题和答案以获取更多详细信息。
Sparhawk

好的,顺便说一句对我来说是有用的:)
Francesco

别担心。这就是为什么我不投票决定关闭它的原因(按照此meta)。
Sparhawk

Answers:


16

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

Meld > Preferences

融合偏好

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

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


4

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

融合3.12.0可以正常工作。 3.12.0

熔融3.12.1不。 在此处输入图片说明

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


运行3.12.0之后,Meld 3.12.1是否仍然相同?
Graeme

@Graeme是的,是的。可能并不重要,但是我直接从未压缩的文件中运行它们。
Sparhawk

两个版本之间是否存在不同的Gnome依赖关系?您正在使用哪个发行版以及如何安装?
Graeme 2014年

@Graeme我正在使用Arch,从官方仓库中安装。这两个版本的所有依赖项都相同。
Sparhawk

1
@Graeme我已经更新了答案。
Sparhawk

3

如果我这样做了locate -b meld | grep home,我会得到三个你没有提到的目录;

~/.gconf/apps/meld
~/.gconf/apps/gnome-settings/meld
~/.local/share/meld

其中一个~/.local/share似乎只是本地比较的历史记录,但是其他两个目录中都有xml文件。我会尝试删除那些。

如果这不起作用,您可以确切地看到meld读取的文件,例如:

strace -e trace=file meld |& grep home

观察输出结果将有望产生其他一些调查结果。

失败的是,我尝试创建另一个用户帐户,然后登录并在那里运行meld(但无其他操作)。如果显示确定,则可以在此处查看点文件/环境变量并将它们与您自己的帐户进行比较。请注意,您应该通过X登录,而不仅仅是使用su或登录,sudo以便您的桌面环境有机会创建默认的点文件-这很可能就是为什么在以root用户身份运行时看起来纯净的原因。

如果这些都不起作用,您总是可以放弃并改用Diffuse。我本人尚未对其进行适当的测试,但是它做了一些meld无法完成的事情(虽然没有目录比较,所以不能完全替代)。:)

更新资料

要尝试查找有问题的文件,您可以将新帐户中的点文件与旧帐户中的点文件进行比较。不幸的是,这可能是新帐户中几乎所有的点文件,这就是为什么不要运行任何其他应用程序(尤其是Web浏览器)很重要的原因,因为这将创建/更改更多内容。要比较文件,您可以尝试在新帐户中运行以下内容:

find . -type f -exec cmp {} /home/your_account/{} \;

对于其他不同的地方,您可以使用Meld进一步调查。如果这没有任何效果,则可能是您要删除的文件很难找到。您可以尝试返回strace并比较两个帐户的输出。


+1为详细策略。我还没有开始工作,但是到目前为止是结果。删除建议的两个目录,然后重新启动融合不起作用。strace揭示了以下人选:~/.config/gtk-3.0/settings.ini~/.config/oxygen-gtk~/.kde4/share/config/kdeglobals/home/lee/.kde4/share/config/oxygenrc。已经尝试过第一个,但是依次删除其余的行不通。接下来,我将尝试创建一个新帐户。
Sparhawk

我创建了一个新帐户,是的,那里的文字看起来不错。根据问题,我查看了环境变量(带有export | grep -i gtk),但是唯一的区别是原始的无效帐户中存在以下内容:declare -x GTK_IM_MODULE="xim"。我不太确定要搜索什么文件。我搜索名称中带有gtkmeld名称的文件,但仅找到上面已经测试过的文件。
Sparhawk

@Sparhawk,更新。我怀疑这会有什么区别,但是unset GTK_IM_MODULE从命令行执行然后meld从同一shell 运行没有什么害处。
Graeme 2014年

我已经更新了答案。
Sparhawk 2014年


1

用那里的那个覆盖meld.css,您将可以使用深色主题的Meld https://wiki.gnome.org/Apps/Meld/DarkThemes


我不想使用深色主题。这个问题不是关于整体更改主题,而是关于特定元素,即公共线条。根据公认的答案,此后已修复回归。
Sparhawk

为了它的价值...就我的目的而言,这是一个完美的答案-将gtk切换为黑暗主题确实使融合文本难以阅读
Dmitri DB
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.