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

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

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

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

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

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

16 ответов

Решение

Нашел это!

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

/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, и цвет всплывающей подсказки теперь исправлен.

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

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

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

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

Если вы хотите изменить цвета всплывающей подсказки для всех приложений, установите и запустите 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

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

#/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"

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

Сначала создайте новый скрипт 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"

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

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

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

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

Я думаю, что это решено. Я получил, показывая подсказку с черными буквами на белом фоне. В моем случае кажется, что 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" (отметьте справа). Перезапустите Eclipse!

Это список 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"

Есть и другое решение: используйте 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

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

Мои подсказки черные на желтом. Смотрите скриншот ниже от 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).

У меня была такая же проблема (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 или других файлах.

В 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

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

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

Я запускаю 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

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

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

Этот ответ указывает на редкий случай, когда очень похожая ошибка возникает, если вы установили 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

Чтобы открыть окно "Внешний вид" с помощью вкладки "Темы" непосредственно из 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 устанавливается с помощью меню "Система" / "Настройки" / "Внешний вид" и устанавливается из окна "Внешний вид", установка темы: "Пыль правильная".

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

Другие вопросы по тегам