Ubuntu + Eclipse 4.2 - Темная тема - Как затемнить фоновые изображения боковой панели?

Из-за того, что вы тратите 24/7 программирование перед экраном компьютера (работа, тезис), полезно просматривать темные цвета как можно больше.

Тема Ubuntu Ambiance может быть аккуратно улучшена с помощью Настройка Solancer, а Eclipse Juno выглядит в основном последовательной после применения тема Roger Dudler dark Juno.

Однако есть проблема с использованием темной темы Juno, такой как Dudler's. Цвет фона активных элементов в Package Explorer, Project Explorer и других представлениях Eclipse отображает белые/серые цвета, которые не только несовместимы, но и фактически скрывают важные компоненты дисплея, такие как стрелки расширения.

После долгих поисковых запросов кажется, что такие цвета наследуются от ОС и поэтому не могут быть изменены из Eclipse Preferences. Я надеялся, что темная тема GTK 3/Unity (Solancer Ambiance) обеспечит необходимые темные цвета, но это не так.

Я использовал sed для замены всех предопределенных цветов во всех файлах .css под /opt/eclipse/plugins/org.eclipse.platform_4.2.0.v*/css с помощью #FF0000, чтобы определить, влияют ли какие-либо цвета на цвет проблемы с белым/серым цветом; к сожалению, они этого не делают.

Увидев упоминание папки ~/.e4css в Интернете, которая может содержать переопределения определений CSS для таких свойств, я искал папку на своей локальной машине, только чтобы найти ее не существует.

Аналогичные вопросы для этого существуют в SO, но никто не указывает, как "исправить" эти цвета.

Мой вопрос прост: есть свойство (группа) GTK + 3.0 CSS, которое может быть определено для указания этих цветов для Eclipse 4.x и где оно должно быть настроено?

The light - it burns!

Ответ 1

Наконец, я нашел решение самостоятельно путем поиска файлов конфигурации GTK.

Оказывается, Eclipse использует GTK + 2.0.

Если вы устанавливаете пользовательскую тему GTK в Ubuntu (все они также совместимы с Unity), вы распакуете папку тем в ~/.themes.

GTK + 3.0 конфигурируется через css, например. ~/.themes/YourTheme/gtk-3.0/gtk.css

GTK + 2.0 настроен через файл rc, например. ~/.themes/YourTheme/gtk-2.0/gtkrc

Большинство тем GTK + 3.0 содержат обе эти папки конфигурации из-за того, что многие приложения имеют спецификацию GTK + 2.0.

Ведущая строка в файле GTK + 2.0 gtkrc содержит основные цвета переднего и заднего плана; это то, что нужно изменить.

Чтобы изменить выбранный цвет активного элемента bg в представлениях Eclipse, вы должны изменить цвет base_color. Чтобы изменить цвет невыбранного элемента bg, вы должны изменить selected_bg_color. Цвет шрифта изменяется с помощью эквивалентных свойств fg_color (в случае base_color это просто 'fg_color').

Помните, что это повлияет на все приложения GTK, поэтому вам может потребоваться настроить в соответствии с личным вкусом. Также обратите внимание, что вы должны перезагрузить активную тему GTK и перезапустить Eclipse, чтобы увидеть изменения в действии. Самый быстрый способ сделать это - sudo apt-get install myunity, запустить и оставить его открытым во время перезапуска Eclipse во время изменений цвета и выбрать другую тему, за которой следует желаемая тема, каждый раз, когда вы хотите загрузить изменения gtkrc.

Оригинальная ведущая строка gtkrc в моей активной теме GTK:

gtk-color-scheme = "base_color:#ffffff\nfg_color:#4c4c4c\ntooltip_fg_color:#ffffff\nselected_bg_color:#f07746\nselected_fg_color:#FFFFFF\ntext_color:#3C3C3C\nbg_color:#F2F1F0\ntooltip_bg_color:#000000\nlink_color:#DD4814"

После долгих экспериментов я решил эту конфигурацию замены:

gtk-color-scheme = "base_color:#555555\nfg_color:#000000\ntooltip_fg_color:#999999\nselected_bg_color:#666666\nselected_fg_color:#ffffff\ntext_color:#000000\nbg_color:#333333\ntooltip_bg_color:#000000\nlink_color:#DD4814"

Изменения во всей ОС очень приятны! Вот как выглядит Eclipse сейчас, не скрывая этого времени:

Sweet mother of darkness

Надеюсь, вам понравится новый вид:)

P.S. Как и следовало ожидать, процесс для Netbeans эквивалентен.

UPDATE

Это дополнительная информация, вышеупомянутый процесс по-прежнему правилен при использовании настраиваемой темы, такой как Dudler's.

После дальнейших экспериментов теперь ясно, почему редактирование /opt/eclipse/plugins/org.eclipse.platform_4.2.0.v*/css/*.css не имело никакого эффекта:

Скажем, вы редактируете e4_default_gtk.css в этом месте - эффекты измененных стилей в этом файле будут применяться только при выборе GTK в Window -> Preferences -> Appearance -> [Theme].

Вы можете связать темы, указанные в этом выпадающем меню, вместе с вашей операционной системой, с именами файлов .css в вышеупомянутой папке.

Ответ 2

Если вы не хотите менять внешний вид всего рабочего стола, вы можете запустить отдельную тему GTK + для Eclipse, установив флаг GTK2_RC_FILES в команду, чтобы запустить Eclipse.

Пример:

GTK2_RC_FILES=/path/to/gtk/theme/gtkrc /opt/eclipse/eclipse

Это означает, что вы можете создать копию своей темы GTK + и настроить ее для Eclipse без какой-либо другой части рабочего стола.

Ответ 3

Вам, наконец, не нужно менять тему GTK, чтобы иметь темные окна обозревателя пакетов или Project Explorer и т.д. Попробуйте опубликованное решение здесь, для меня это хорошо работает как на Ubuntu, так и на Windows без изменения системной темы.

Ответ 4

Даже в 2013 году некоторые элементы по-прежнему не могут быть "тематическими", и не только в Eclipse IDE. Только способ борьбы с цветными хардкодерами (люди, которые определяют цвет элемента через константу, а не через параметр темы) - это фильтр цветов Compiz. Я разрабатываю такой фильтр, который сохраняет цвета при инвертировании. Поэтому никаких проблем с программным обеспечением любого больше нет.

К сожалению, цветная фильтрация не будет работать на последнем Ubuntu, как я знаю.

Подробнее здесь http://ubuntuforums.org/showthread.php?t=1419702&page=3

!!ARBfp1.0
TEMP temp, neg, YPbPr;
TEX temp, fragment.texcoord[0], texture[0], RECT;
RCP neg.a, temp.a;
MAD temp.rgb, -neg.a, temp, 1.0;
MUL temp.rgb, temp.a, temp;
MUL temp, fragment.color, temp;
DP3 YPbPr.x, temp, {0.333, 0.333, 0.333, 1};
SUB YPbPr.y, YPbPr.x, temp.b;
SUB YPbPr.z, YPbPr.x, temp.r;
ADD temp.r, YPbPr.x, YPbPr.z; 
ADD temp.b, YPbPr.x, YPbPr.y;
SUB temp.g, YPbPr.x, YPbPr.z; 
SUB temp.g, temp.g, YPbPr.y;

MOV result.color, temp;
END

# DO NOT MOVE LINE #2 (TEMP...) below, i.e. do not insert comments before it!
# do not insert comments before 'END' token: SOMETIMES not work!

# replace file /usr/share/compiz/filters/negative with this file.

#  Color filter: negative, but preserve colours. Tested on Ubuntu LTS 10.04.

# compiled from [1], [2] by [email protected], www.bdyssh.ru
# [1] http://hronir.blogspot.com/2008/09/compiz-fusion-color-filter-for-hue.html
# [2] http://ubuntuforums.org/showthread.php?t=1419702

# add to line 15:  MUL temp.b, 0.5, temp.b;  - for warm/melatonine colors, or 
#  MUL temp.g, 0.5, temp.g;  - for cold colors.

Ответ 5

Для Eclipse 4.5: 1. Создайте файл, например, вставленный фрагмент 2. Сохраните его как "/usr/share/themes/..used theme../gtk-3.0/apps/eclipse.css" 3. Включите его "/usr/share/themes/..used theme../gtk-3.0/gtk-main.css"

@define-color ecl_scrollbutton_color #7C7C7C;
@define-color ecl_scrollbutton_color_hover #FB7A00;
 
.scrollbar,
.scrollbar.vertical {
    -GtkScrollbar-has-backward-stepper: 0;
    -GtkScrollbar-has-forward-stepper: 0;
    -GtkRange-slider-width: 14;

    border-radius: 20px;

    border-image: none;
}

/*.scrollbar.trough,
.scrollbar.trough.vertical {
}
*/
.scrollbar.slider,
.scrollbar.slider.horizontal,
.scrollbar.slider.vertical,
.scrollbar.button,
.scrollbar.button.horizontal,
.scrollbar.button.vertical {
    border-width: 0.5px;
    border-style: solid;
    border-color: shade (@ecl_scrollbutton_color, 0.66);
    background-image: -gtk-gradient (linear, left top, right top,
                                     from (shade (@ecl_scrollbutton_color, 1)),
                                     color-stop (0.5, @ecl_scrollbutton_color),
                                     to (shade (@ecl_scrollbutton_color, 1)));
    box-shadow: inset 1px 0 shade (@bg_color, 1.1),
                inset -1px 0 shade (@bg_color, 1.01),
                inset 0 1px shade (@bg_color, 1.1),
                inset 0 -1px shade (@bg_color, 1.1);
}

.scrollbar.slider:hover,
.scrollbar.slider.vertical:hover,
.scrollbar.slider.horizontal:hover {
    background-image: -gtk-gradient (linear, left top, left bottom,
                                     from (shade (@ecl_scrollbutton_color_hover, 1)),
                                     color-stop (0.5, @ecl_scrollbutton_color_hover),
                                     to (shade (@ecl_scrollbutton_color_hover, 1)));
    box-shadow: inset 1px 0 shade (@bg_color, 1.1),
                inset -1px 0 shade (@bg_color, 1.1),
                inset 0 1px shade (@bg_color, 1.1),
                inset 0 -1px shade (@bg_colo