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