Как изменить цвет фона всплывающей подсказки в Unity?

215

Во многих приложениях всплывающие подсказки просто уродливые (белый текст на черном фоне, слишком контрастный) или даже нечитаемые (черный или темно-синий текст (гиперссылки) на черном фоне). Я хочу изменить цвет фона всплывающих подсказок на какой-то средний серый или даже какой-нибудь желтый или что-то в этом роде, может быть, даже что-то полупрозрачное.

Вот скриншот Eclipse, который отображает некоторый исходный код в подсказке с черным текстом на черном фоне:

Затмение с неиспользуемой подсказкой

Помогает переключение на другую тему (что-то отличное от Ambiance или Radiance), но мне нравится Ambiance, и я хочу сохранить ее. Это просто проклятый цвет всплывающей подсказки, который абсолютно недопустим.

Я нашел несколько решений для более старых версий Ubuntu, но они больше не работают с Unity в Ubuntu 11.10, потому что я не могу найти какую-либо функцию для настройки темы Ambiance или Radiance. Так как мне это сделать в текущей версии Ubuntu?

kayahr
источник

Ответы:

148

Установите и откройте gnome-color-chooserУстановите gnome-color-chooser .

Перейдите к SpecificTooltipsи поместите черный передний план на бледно-желтый фон.

Ник Андрик
источник
3
перезапустить затмение , чтобы изменения вступили в силу
cmcginty
8
Нет необходимости перезагружать для меня.
Ubuntudroid
1
Это работает для 12.04 LTS с Eclipse 4.2 тоже!
Дэвид Эдвардс
2
К сожалению, это не сработало для меня (Ubuntu 12.04 64-bit и Eclipse Juno). Оба, принятый ответ и приведенный ниже от DJo, сработали для меня.
Луис
8
+1, но учтите, что это влияет на ВСЕ подсказки системы. Если вы хотите найти решение только для Eclipse, следуйте ответу @ bain.
ysap
135

Нашел это!

Мне пришлось редактировать эти файлы:

/usr/share/themes/Ambiance/gtk-3.0/settings.ini
/usr/share/themes/Ambiance/gtk-3.0/gtk.css
/usr/share/themes/Ambiance/gtk-2.0/gtkrc

(Дополнение: для Ubuntu 12.04 кажется, что вам просто нужно изменить файл: /usr/share/themes/Ambiance/gtk-2.0/gtkrc, заменив цвет фона всплывающей подсказки и переднего плана на # 000000 и цвет # f5f5b5 соответственно )

Вам требуются права суперпользователя для редактирования файлов. Используйте gksudo geditдля их редактирования.

Ищите tooltipв этих файлах, и вы найдете определения цвета для переднего плана и фона. Я использую в #000000качестве переднего плана и #f5f5b5фона, и теперь подсказки во всех приложениях снова читаются. После изменения значений цвета просто переключитесь на какую-то другую тему, а затем снова на Ambiance, и цвет всплывающей подсказки теперь исправлен.

Вот результат:

Затмение с индивидуальной темой

kayahr
источник
2
Любой способ сделать это через пользовательский интерфейс в Ubuntu 11?
Франк
1
Работал так же, как и ожидалось в Xubuntu 12.10.
Давидчесарино
1
Есть ли способ изменить это только для вашего пользователя (т. [gk]sudo
Е.
2
@MestreLion: пользовательские темы выбираются из ~/.themes/. Вам нужно будет скопировать в него папку Ambiance.
зажечь
1
Мне тоже пришлось редактировать gtk-3.0/gtk-main.css, но это сработало 14.04. Также работает при использовании темы "Radiance", просто нужно отредактировать те же файлы в Radianceпапке.
jmiserez
29

Если вы хотите изменить цвета всплывающей подсказки для всех приложений, установите и запустите gnome-color-chooser и перейдите на вкладку Конкретные> Подсказки. Установите флажки для переднего плана и фона и выберите цвета.

Как это работает (вы можете сделать это вручную):

gnome-color-chooser добавляет в ваш ~ / .gtkrc-2.0 следующее:

include ".gtkrc-2.0-gnome-color-chooser"

и ~ / .gtkrc-2.0-gnome-chooser:

style "gnome-color-chooser-tooltips"
{
  bg[NORMAL] = "#FFFFAF"
  fg[NORMAL] = "#000000"
}
widget "gtk-tooltip*" style "gnome-color-chooser-tooltips"

Если вы просто хотите изменить цвета всплывающей подсказки для одного приложения, такого как eclipse, поместите приведенный выше текст в пользовательский файл gtkrc (например, ~ / gtkrc-eclipse) и запустите eclipse с помощью GTK2_RC_FILES = ~ / gtkrc-eclipse eclipse

Bain
источник
1
Вот настройка для настройки цвета фона диалога автозаполнения в Eclipse: stackoverflow.com/a/8063723/356895 .
JJD
Знаете ли вы, как я могу включить переменную среды в меню приложений Ubuntu, чтобы Eclipse также загружал настройки, когда они не запускаются через оболочку?
JJD
3
Я составил статью, которая обобщает тему.
JJD
2
фантастический подход @bain !!! :) Не требует sudo, влияет только на вашего пользователя, и не нужно копировать всю тему в вашу ~. Приятно :)
МестреЛион
1
@JJD: я обычно против "спасибо" - только комментарии, но ваша статья потрясающая. Я заметил, что он использует тот же подход, что и этот ответ. Поскольку я уже использую собственный сценарий оболочки для запуска Eclipse из командной строки и из файла .desktop, добавить GTK2_RC_FILES = ... env очень просто. Спасибо :)
MestreLion
22

Я создал небольшой скрипт, который сделает это за вас

#/bin/sh
# Tooltip fix
# A script to fix themes files in Ubuntu 11.10
#  to have readable tooltips in applications such
#  as eclipse.
# The script edits the gtk.css, settings.ini and gtkrc files
# Author: Victor Pillac
# http://victorpillac.wordpress.com

if [[ $EUID -ne 0 ]]; then
  echo "This script must be run as root" 1>&2
  exit 1
fi  

path=/usr/share/themes
theme=Ambiance

if [ $# = 1 ]; then
  theme=$1
fi

echo "Fixing tooltips for theme $theme"
echo " (you can select a different theme by passing its name as argument)"
sed -i 's/tooltip_bg_color #000000/tooltip_bg_color #f5f5b5/g' $path/$theme/gtk-3.0/gtk.css
sed -i 's/tooltip_fg_color #ffffff/tooltip_fg_color #000000/g' $path/$theme/gtk-3.0/gtk.css
sed -i 's/tooltip_bg_color:#000000/tooltip_bg_color:#f5f5b5/g' $path/$theme/gtk-3.0/settings.ini
sed -i 's/tooltip_fg_color:#ffffff/tooltip_fg_color:#000000/g' $path/$theme/gtk-3.0/settings.ini
sed -i 's/tooltip_bg_color:#000000/tooltip_bg_color:#f5f5b5/g' $path/$theme/gtk-2.0/gtkrc
sed -i 's/tooltip_fg_color:#ffffff/tooltip_fg_color:#000000/g' $path/$theme/gtk-2.0/gtkrc
echo "Done"
Виктор П.
источник
8

Я принял немного другое решение;

Сначала создайте новый скрипт eclipse.sh, который запускает eclipse, мой выглядит так:

#!/bin/bash
GTK2_RC_FILES=/usr/share/eclipse/gtkrc-2.0-eclipse /usr/share/eclipse/eclipse

Затем создайте файл gtkrc (/usr/share/eclipse/gtkrc-2.0-eclipse), который выглядит следующим образом (он также имеет некоторые другие изменения, чтобы лучше использовать экран):

style "my-tooltips"
{
  bg[NORMAL] = "#FFFFAF"
  fg[NORMAL] = "#000000"
}
widget "gtk-tooltip*" style "my-tooltips"

style "gtkcompact" 
{
    font_name="Ubuntu Light 11"

    GtkButton::default_border={0,0,0,0}
    GtkButton::default_outside_border={0,0,0,0}
    GtkButtonBox::child_min_width=0
    GtkButtonBox::child_min_heigth=0
    GtkButtonBox::child_internal_pad_x=4
    GtkButtonBox::child_internal_pad_y=4
    GtkMenu::vertical-padding=1
    GtkMenuBar::internal_padding=0
    GtkMenuItem::horizontal_padding=4
    GtkToolbar::internal-padding=1
    GtkToolbar::space-size=1
    GtkOptionMenu::indicator_size=0
    GtkOptionMenu::indicator_spacing=0
    GtkPaned::handle_size=4
    GtkRange::trough_border=0
    GtkRange::stepper_spacing=0
    GtkScale::value_spacing=0
    GtkScrolledWindow::scrollbar_spacing=0
    GtkExpander::expander_size=10
    GtkExpander::expander_spacing=0
    GtkTreeView::vertical-separator=0
    GtkTreeView::horizontal-separator=0
    GtkTreeView::expander-size=10
    GtkTreeView::fixed-height-mode=TRUE
    GtkWidget::focus_padding=0
    GtkTreeView::vertical-separator = 0
}

class "GtkWidget" style "gtkcompact"

style "gtkcompactextra" 
{
    xthickness=0
    ythickness=0
}

class "GtkButton"   style "gtkcompactextra"
class "GtkToolbar"  style "gtkcompactextra"
class "GtkPaned"    style "gtkcompactextra"
class "GtkNotebook" style "gtkcompact"
Майк
источник
7

Для CDT сделайте следующее:

Окно> Настройки> C / C ++> Редактор: Параметры цвета внешнего вида> Фон при наведении курсора

Снимите флажок System Default и выберите цвет.

К сожалению, в Eclipse нет настроек, о которых я знаю. Довольно хромая. Вы не должны устанавливать такие вещи для каждой точки зрения.

DJO
источник
6

Я думаю, что это решено. Я получил, показывая подсказку с черными буквами на белом фоне. В моем случае кажется, что Eclipse использует настройки для подсказок из gtk-2.0/gtkrcфайла из директории темы.

Мои настройки: Ubuntu 12.04, Gnome (Not Unitiy), Eclipse Indigo (3.7), тема GrayDay для Gnome. Название темы и сама тема не импортируются.

Откройте терминал, перейдите в каталог тем (cd $ HOME / .themes) и перейдите в каталог своей темы. Если ваша директория .themes, если ее нет, не существует, значит, вы используете системную тему, которая находится в / usr / share / themes. Просто выясните название темы, которую вы используете (щелкните правой кнопкой мыши на bakcground, выберите «Изменить фон рабочего стола», имя темы должно быть в правом нижнем углу. Если оно ничего не говорит о названии темы, используйте gnome-tweak-tool, чтобы найти какую тему вы используете).

В каталоге темы выполните эту команду:

grep -r tooltip *

в нем должны быть перечислены все файлы и строки, в которых упоминается «всплывающая подсказка». Измените каждый фон (tooltip_bg_color) на #ffffff и каждый передний план на # 000000. Черные латтеры на белом переднем плане, это то, что мы хотим! Особенно, измените значения в gtk-2.0/gtkrcфайле.

Ошибка, которую я делал, это поиск цвета всплывающей подсказки в каталоге gtk-3.0, который не имел никакого эффекта.

Теперь перейдите в Eclipse, Window -> Preferences -> Java -> Editor и установите Source Hover Background в «System color» (отметьте справа). Перезапустите Затмение!

Это список grep -r tooltip *из моего каталога тем после внесения изменений:

gtk-2.0/gtkrc:gtk-color-scheme  = "tooltip_fg_color:#000000\ntooltip_bg_color:#ffffff\nlink_color:#0033ff"
gtk-2.0/gtkrc:style "tooltips" {
gtk-2.0/gtkrc:  bg[NORMAL]  = @tooltip_bg_color
gtk-2.0/gtkrc:  fg[NORMAL]  = @tooltip_fg_color
gtk-2.0/gtkrc:  GtkWidget::new-tooltip-style    = 0
gtk-2.0/gtkrc:# The window of the tooltip is called "gtk-tooltip"
gtk-2.0/gtkrc:widget "gtk-tooltip*"             style "tooltips"
gtk-3.0/gtk.css:/* @define-color tooltip_bg_color #343434; */
gtk-3.0/gtk.css:/* @define-color tooltip_fg_color #ffffff; */
gtk-3.0/gtk.css:@define-color tooltip_bg_color #ffffff;
gtk-3.0/gtk.css:@define-color tooltip_fg_color #343434;
gtk-3.0/gtk.css:@define-color theme_tooltip_bg_color @tooltip_bg_color;
gtk-3.0/gtk.css:@define-color theme_tooltip_fg_color @tooltip_fg_color;
gtk-3.0/gtk-widgets.css:.tooltip {
gtk-3.0/gtk-widgets.css:    background-color:   @theme_tooltip_bg_color;
gtk-3.0/gtk-widgets.css:    color:              shade(@theme_tooltip_fg_color, 0.90);
gtk-3.0/gtk-widgets.css:.tooltip * {
gtk-3.0/gtk-widgets.css:    background-color: @theme_tooltip_bg_color;
gtk-3.0/settings.ini:gtk-color-scheme   = "tooltip_fg_color:#343434\ntooltip_bg_color:#ffffff\nlink_color:#4a90d9"
gtk-3.0/settings-default.ini:gtk-color-scheme   = "tooltip_fg_color:#343434\ntooltip_bg_color:#ffffff\nlink_color:#4a90d9"
Майкл К
источник
На самом деле этого было достаточно, чтобы последовать ответу jgreen и изменить только одну строку в одном файле.
Теему Лейсти
3

Есть и другое решение: используйте dconf-editor, чтобы найти следующий ключ:

org->gnome->desktop->interference->gtk-color-scheme

чье описание говорит: \nотдельный список, name:colorкак определено gtk-color-schemeнастройкой.

Напишите схему в gedit в стиле, подобном следующему (этот пример мой), затем вставьте ее в редактор dconf (обратите внимание на '\ n' на каждом конце строки):

fg_color:#4c4c4c4c4c4c
bg_color:#f2f2f1f1f0f0
text_color:#3c3c3c3c3c3c
base_color:#ffffffffffff
selected_fg_color:#ffffffffffff
selected_bg_color:#f0f077774646
tooltip_fg_color:#ffffff5a0e74
tooltip_bg_color:#14a784edd8b6

и проблема будет решена немедленно.

Шон Чжао
источник
org-> gnome-> desktop-> interface-> gtk-color-схема
Алессандро Д'Инкал
Как и новая ссылка: GtkSettings: gtk-color-схема устарела с версии 3.8 и не должна использоваться во вновь создаваемом коде. Поддержка цветовой схемы была отброшена и больше не поддерживается. Вы все еще можете установить это свойство, но оно будет проигнорировано.
Алессандро Д'Илнкал
В Ubuntu 18.04 больше не действует. Я пытался изменить его с помощью dconf, но безрезультатно. В Ubuntu 18.04 вы должны изменить папку gtk-3.0 в .config, поместив файл gtk.css, чтобы эффект вступил в силу. Вы должны изменить даже файл seettings.ini в этой папке.
Алессандро Д'Инкаль
3

Мои подсказки черные на желтом. Смотрите скриншот ниже от Ubuntu 16.04 LTS с MATE DE:

Черно-желтая подсказка

Если вам нравится такая цветовая комбинация, используйте 3 файла gtkrc (2 для GTK3, 1 для GTK2):

  1. ~ / .Config / GTK-3.0 / gtk.css

    /* tooltips */
    @define-color tooltip_bg_color #ffffaf;
    @define-color tooltip_fg_color #000000;
    
  2. ~ / .Config / GTK-3.0 / settings.ini

    [Settings]
    gtk-color-scheme = "tooltip_bg_color:#ffffaf\ntooltip_fg_color:#000000"
    
  3. ~ / .Gtkrc-2,0

    style "gnome-color-chooser-tooltips"
    {
    bg[NORMAL] = "#FFFFAF"
    fg[NORMAL] = "#000000"
    }
    
    widget "gtk-tooltip*" style "gnome-color-chooser-tooltips"
    

3-й файл был создан gnome-color-chooser. Используйте его, только если у вас есть приложения на основе GTK2.

Вышеописанный метод был протестирован на Ubuntu 14.04 LTS (Unity и GNOME), Ubuntu 16.04 LTS (Unity, GNOME, MATE), Ubuntu 18.04 LTS (Unity, GNOME, MATE).

N0rbert
источник
В Ubuntu 18.04 третья и четвертая части бесполезны, потому что он использует Gtk-3.0. Первый и второй решают проблему.
Алессандро Д'Инкаль
2

У меня была такая же проблема (Xubuntu 12.04, тема Greybird, Eclipse Indigo), и ответ Михаэля К. мне помог. Единственный файл, который я изменил, был gtk-2.0 / gtkrc, и я изменил только одну строку. Третья строка после первоначальных комментариев. Изменены значения шестнадцатеричного цвета tooltip_bg_color: # 000000 на tooltip_bg_color: # ffffe1 и tooltip_fg_color: #ffffff на tooltip_fg_color: # 000000. Так что строка будет выглядеть так:

gtk_color_scheme        = "tooltip_bg_color:#ffffe1\ntooltip_fg_color:#000000" # Tooltips.

Перезапущенные elipse и всплывающие подсказки теперь являются желтоватым цветом, к которому я привык. Мне не нужно было делать дальнейшие настройки в Eclipse или других файлах.

jgreen
источник
0

Более удобный способ изменить фон - использовать пользовательский интерфейс. Открытая система, настройки, внешний вид. По умолчанию будет выбрана тема «Ambiance», но вы можете изменить ее для любой темы. Нажмите кнопку «Настроить» ниже и перейдите на вкладку «Цвета». Там вы можете изменить основной и фоновый цвета для всплывающих подсказок, нажав на соответствующие поля.

Сергей Белозоров
источник
2
11.10 это не работает. Я могу изменить тему в Внешний вид, но нет возможности настроить тему.
Даниэль Куллманн
У меня не установлено 11.10, но я нахожу странным, если бы они удалили способ настройки темы. Возможно, они переименовали кнопку и / или поместили ее в другое место / вкладку?
Сергей Белозоров
Сергей, многие из нас искали, но, похоже, его там нет. Мы надеемся, что он появится 12.04.
1
Ребята, вы действительно удивлены удаленными настройками в Gnome3 / Unity?
MestreLion
Больше нет ... после некоторого использования 12.04 наши администраторы рассматривают возможность перехода на Fedora или какой-либо другой RHEL-подобный дистрибутив. Ubuntu стала мультимедийной платформой, которая хорошо работает для домашних пользователей, но не для ИТ-специалистов.
Сергей Белозоров
0

В Ubuntu 12.10 (Quantal) вы можете использовать следующие две команды:

#foreground white => black
sudo sed -i s/tooltip_fg_color:#ffffff/tooltip_fg_color:#000000/g  /usr/share/themes/Ambiance/gtk-3.0/settings.ini /usr/share/themes/Ambiance/gtk-3.0/gtk.css /usr/share/themes/Ambiance/gtk-2.0/gtkrc
#background black => yellow
sudo sed -i s/tooltip_bg_color:#000000/tooltip_bg_color:#f5f5b5/g  /usr/share/themes/Ambiance/gtk-3.0/settings.ini /usr/share/themes/Ambiance/gtk-3.0/gtk.css /usr/share/themes/Ambiance/gtk-2.0/gtkrc

(Благодаря другим ответам, которые помогли мне понять это !!)

AmanicA
источник
0

Этот ответ указывает на редкий случай, когда очень похожая ошибка возникает, если вы установили xulrunner и настроили eclipse для его использования.

Я установил xulrunner, чтобы GPE Designer правильно отображал пользовательские интерфейсы GWT в режиме разработки, который работал очень хорошо, но я обнаружил, что он также нарушает подсказки. Ошибка на самом деле хуже, чем на скриншоте выше, она просто отображает пустую подсказку.

Чтобы это исправить, вам нужно только удалить параметр xulrunner из eclipse.ini:

-Dorg.eclipse.swt.browser.XULRunnerPath=/path/to/xulrunner/

У меня это работало с Ubuntu 12.04, Eclipse 4.2 / Juno и xulrunner 1.9.2

Carrizo
источник
0

Для элементарных пользователей:

Перейдите /usr/share/themes/elementary/gtk-3.0, отредактируйте файл gtk-widgets.cssс помощью sudo nano, введите, Ctrl + Wчтобы найти Tooltips, а затем при background-color: alpha(#color, #opacity)изменении цвета на что-то вроде #f5f5b5и установите непрозрачность 1.

Ник
источник
0

Чтобы открыть окно «Внешний вид» с помощью вкладки «Темы» непосредственно из root @ терминал записи (вы можете использовать эту команду также для скрипта):

sudo -u USER gnome-appearance-properties -p theme

где USERваш текущий пользователь на рабочем столе. Он откроет внешний вид правильно, но вам все равно нужно нажать на отображение тем в окне «Внешний вид», чтобы запустить свою тему.

Для теста с темой установки: Dust from root @ terminal, введите команду:

sudo -u USER gnome-appearance-properties -i /home/USER/Desktop/Dust-0.4.tar.gz

получает эту ошибку:

(gnome-creation-properties: 16161): Gtk-WARNING **: невозможно найти движок темы в module_path: "murrine"

но если тема: Dust устанавливается с помощью меню «Система» / «Настройки» / «Внешний вид» и устанавливается из окна «Внешний вид», установка темы: «Пыль правильная».

Нужна команда, отвечающая за выбор темы в окне Внешний вид, но я не могу ее найти.

кхмерский
источник
0

Я запускаю Kubuntu 16.04 с темой Breeze и Eclipse 4.6.1 с GTK3 по умолчанию теперь, когда они исправили проблему с заполнением кнопок.

Чтобы получить всплывающие подсказки со светло-серым фоном и черным передним планом, я внес несколько изменений в /usr/share/themes/Breeze-gtk/gtk-3.0/gtk.css; вот что я закончил с:

/************
 * Tooltips *
 ************/
.tooltip {
  color: #000000;
  padding: 4px;
  box-shadow: none;
}
.tooltip.background {
    background-color: #f5f5f5;
    background-clip: padding-box;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

И оригинал:

/************
 * Tooltips *
 ************/
.tooltip {
  color: white;
  padding: 4px;
  /* not working */
  border-radius: 5px;
  box-shadow: none;
  text-shadow: 0 1px black; }
  .tooltip.background {
    background-color: rgba(0, 0, 0, 0.8);
    background-clip: padding-box;
    border: 1px solid rgba(255, 255, 255, 0.1); }

Если ссылки не работают во всплывающих окнах Javadoc, это может помочь установить libwebkitgtkследующим образом:

sudo apt install libwebkitgtk-1.0-0
Майк Партридж
источник