Как я могу сделать текст в 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, но это не имело никакого эффекта, и было воссоздано, когда я открыл комбинацию.

~/.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 (я не уверен, если это необходимо, или возможно), и файлы не были воссозданы, когда я снова попытался запустить соединение.)

Возможно соответствующие переменные среды

$ 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 , но не нашел решения.)

Sparhawk
источник
Ответ @tombart - самый актуальный, должен быть принят
Франческо
@Francesco Нет, вопрос касается регрессии, введенной три года назад. Ответ Томбарта описывает похожую, но отдельную проблему. Внимательно прочитайте вопрос и ответы для более подробной информации.
Sparhawk
хорошо это было полезно для меня, кстати :)
Франческо
Не стоит беспокоиться. Это частично, почему я не голосую, чтобы закрыть это (согласно этой мета ).
Sparhawk

Ответы:

16

По крайней мере, из Meld 3.16.4 поддерживаются разные цветовые схемы.

Смотрите Meld > Preferences:

смешанные предпочтения

(возможно, это изменение было введено в более ранних версиях)

Примечание :
также можно настроить конкретную тему для Meld с помощью CLI:GTK_THEME=Adwaita:dark meld

Tombart
источник
4

Похоже, это была регрессия, введенная в Meld 3.12.1. Я загрузил предыдущие версии с сайта meld .

Meld 3.12.0 работает отлично. 3.12.0

Meld 3.12.1 нет. введите описание изображения здесь

Я связался с разработчиками, и они сказали мне, что это действительно регрессия, введенная в порт gtk + 3. Они предложили попробовать только что выпущенный 3.12.3, который сейчас работает. (Однако, это все еще не полностью объясняет, почему слияние в новой учетной записи работало бы.)

Sparhawk
источник
Meld 3.12.1 остается прежним после запуска 3.12.0?
Грэм
@ Graeme Да, это так. Возможно, это не важно, но я запускал их прямо из несжатых файлов.
Sparhawk
Есть ли различия между Gnome между двумя версиями? Какой дистрибутив вы используете и как устанавливаете?
Грэм
@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не могут (хотя сравнение каталогов, так что не совсем замена). :)

Обновить

Чтобы попытаться отследить файл (ы), создающие проблемы, вы можете сравнить точечные файлы в новой учетной записи со старой. К сожалению, это может быть почти любой из файлов точек в новой учетной записи, поэтому важно не запускать какие-либо другие приложения (особенно веб-браузер), поскольку это создаст / изменит больше. Для сравнения файлов вы можете попробовать запустить что-то вроде этого в новой учетной записи:

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

Для тех, кто отличается, вы могли бы продолжить расследование с Мелд. Если это ничего не дает, вероятно, есть файл, который вы хотите удалить, который будет трудно найти. Вы можете попытаться вернуться straceи сравнить результаты двух учетных записей.

Graeme
источник
+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". Я не совсем уверен, какие файлы искать. Я искал файлы с именами gtkили meldпо их именам, но нашел только те, которые были выше, которые я уже проверял.
Sparhawk
@ Sparhawk, обновлено. Я сомневаюсь, что это будет иметь какое-то значение, но нет ничего плохого в том, чтобы делать unset GTK_IM_MODULEиз командной строки, а затем запускать meldиз той же оболочки.
Грэм
Я обновил свой ответ.
Sparhawk
3

только давай обновление ...

Версия 3.18 не будет отображать настройки для изменения вашей темы.

но с помощью dconf-editor вы можете получить доступ к конфигурации meld и установить style-chema в 'meld-dark' ... и быть счастливым!

почти так: https://linux.m2osw.com/no-meld-preferences-menu

введите описание изображения здесь

Тиаго Оливейра
источник
1

перезапишите meld.css с тем, что там, и вы сможете использовать Meld с темной темой https://wiki.gnome.org/Apps/Meld/DarkThemes

k_zoltan
источник
Я не хотел использовать темную тему. Этот вопрос был не об изменении темы в целом, а о конкретном элементе, то есть общих чертах. Согласно принятому ответу, это была регрессия, которая с тех пор была исправлена.
Sparhawk
Для чего это стоит ... Для моих целей это был идеальный ответ - переключение gtk на темную тему делает большую работу по превращению текста в слиянии нечитаемым
Дмитрий Д.Б.