如何在Unity中更改工具提示背景颜色?


215

在许多应用程序中,工具提示仅是丑陋的(黑色背景上的白色文本,对比度太高),甚至不可读(黑色背景上的黑色或深蓝色文本(超链接))。我想将工具提示的背景色更改为中等灰色甚至黄色,或者甚至是半透明的。

这是Eclipse的屏幕截图,它在工具提示中用黑色背景上的黑色文本显示了一些源代码:

带有不可用工具提示的Eclipse

切换到其他主题(“氛围”或“发光”以外的其他内容)会有所帮助,但我喜欢“氛围”,并且希望保留该主题。只是这种令人毛骨悚然的工具提示颜色是绝对不能接受的。

我找到了一些适用于较早版本的Ubuntu的解决方案,但由于在找不到自定义Ambiance或Radiance主题的功能方面,它们在Ubuntu 11.10中不再与Unity一起使用。那么如何在当前的Ubuntu版本中做到这一点?

Answers:


148

安装并打开gnome-color-chooser安装gnome-color-chooser

转到SpecificTooltips并将黑色前景放在浅黄色背景上。


3
重新启动Eclipse以使更改生效
cmcginty,2012年

8
无需为我重新启动。
ubuntudroid

1
这也适用于带有Eclipse 4.2的12.04 LTS!
David Edwards

2
不幸的是,这对我不起作用(Ubuntu 12.04 64位和Eclipse Juno)。可接受的答案和DJo的以下答案都对我有用。
路易斯

8
+1,但请注意,这会影响所有系统工具提示。如果您只想为Eclipse解决方案,请遵循@bain的回答。
ysap 2012年

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颜色替换工具提示的背景颜色和前景色。 )

您需要root特权才能编辑文件。使用gksudo gedit它们进行编辑。

tooltip在这些文件中进行搜索,您将找到前景和背景的颜色定义。我#000000用作前景和#f5f5b5背景,现在所有应用程序中的工具提示都可以再次读取。更改颜色值后,只需切换到其他主题,然后再返回到氛围,工具提示的颜色现已固定。

结果如下:

带有定制主题的Eclipse


2
有什么办法可以通过ubuntu 11中的UI做到这一点?
弗兰克斯特2011年

1
在Xubuntu 12.10中也按预期工作。
davidcesarino 2012年

1
有没有办法只为您的用户更改此设置(即不要求[gk]sudo?),我敢肯定,作为大多数gnome设置,都有按用户配置的文件/目录
MestreLion 2013年

2
@MestreLion:从中挑选用户主题~/.themes/。您需要将Ambiance文件夹复制到其中。
点燃

1
我也必须进行编辑gtk-3.0/gtk-main.css,但这适用于14.04。在使用“辐射”主题时也可以使用,只需要编辑文件Radiance夹中的相同文件。
jmiserez 2016年

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)中,然后使用GTK2_RC_FILES =〜/ gtkrc-eclipse eclipse开始eclipse


1
这是自定义Eclipse中自动完成对话框背景颜色的设置:stackoverflow.com/a/8063723/356895
JJD 2012年

您是否知道如何在Ubuntu应用程序菜单中包含环境变量,以便Eclipse在不通过外壳启动时也可以加载设置?
JJD 2012年

3
我编写了一篇文章,总结了该主题。
JJD

2
神奇的方法@bain !!! :)不需要sudo,仅影响您的用户,并且不需要将整个主题复制到您的中~。尼斯:)
MestreLion 2013年

1
@JJD:我通常反对仅“谢谢”的评论,但是您的文章很棒。我注意到它使用与该答案相同的方法。由于我已经使用定制的外壳脚本从命令行和.desktop文件启动Eclipse,因此添加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 ++>编辑器:外观颜色选项>源悬停背景

取消选中“系统默认值”,然后选择一种颜色。

不幸的是,我不知道有没有Eclipse范围的设置。好la脚 您不必为每个角度都设置类似的内容。


6

我认为这个解决了。我得到它显示带有黑色字母的工具提示,在白色背景上。就我而言,似乎Eclipse使用gtk-2.0/gtkrc主题目录中文件的工具提示设置。

我的设置:Ubuntu 12.04,Gnome(不统一),Eclipse Indigo(3.7),Gnome的GrayDay主题。主题名称和主题本身并不重要。

打开终端,转到主题目录(cd $ HOME / .themes),然后转到主题目录。如果不存在空的.themes目录,那么您正在使用/ usr / share / themes中的系统主题。只需弄清楚您正在使用的主题的名称即可(右键单击bakcground,选择“更改桌面背景”,主题名称应位于右下角。如果主题名称未显示任何内容,请使用gnome-tweak-tool查找您正在使用哪个主题)。

在主题目录中,发出以下命令:

grep -r tooltip *

它应该列出提及“ tooltip”键的所有文件和行。将每个背景(tooltip_bg_color)更改为#ffffff,并将每个前景更改为#000000。黑色前景在白色前景上,这就是我们想要的!特别是,更改gtk-2.0/gtkrc文件中的值。

我正在做的错误是在gtk-3.0目录中链接了工具提示颜色,这没有任何效果。

现在,转到Eclipse,窗口->首选项-> Java->编辑器,并将“源悬停背景”设置为“系统颜色”(在右侧选中)。重新启动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"

实际上,只需遵循jgreen的回答,并在一个文件中仅更改一行即可。
Teemu Leisti

3

还有另一种解决方案:使用dconf-editor查找以下密钥:

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

其说明说:该设置所定义的的\n单独列表。name:colorgtk-color-scheme

用类似下面的样式在gedit中编写方案(此示例是我的示例),然后将其粘贴到dconf-editor中(请注意行的每一行的'\ 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->桌面->界面-> gtk-color-scheme
Alessandro D'lncal

像新的参考:GtkSettings:gtk-color-scheme自3.8版以来已被弃用,并且不应在新编写的代码中使用。配色方案支持已删除,不再受支持。您仍然可以设置此属性,但是它将被忽略。
亚历山德罗·丁卡尔

在Ubuntu 18.04中不再有效。我试图通过dconf更改它,但没有结果。在Ubuntu 18.04中,您必须更改.config中的gtk-3.0文件夹,以放置gtk.css文件才能生效。您甚至必须修改该文件夹中的seettings.ini。
亚历山德罗·丁卡尔

3

我的工具提示是黄色的。请参阅下面带有MATE DE的Ubuntu 16.04 LTS的屏幕截图:

黑色黄色工具提示

如果您喜欢这样的颜色组合,请使用以下3个gtkrc文件(对于GTK3为2,对于GTK2为1):

  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"
    

第三个文件是由gnome-color-chooser创建的。仅在具有基于GTK2的应用程序时才使用它。

以上方法已在Ubuntu 14.04 LTS(Unity和GNOME),Ubuntu 16.04 LTS(Unity,GNOME,MATE),Ubuntu 18.04 LTS(Unity,GNOME,MATE)上进行了测试。


在Ubuntu 18.04中,第三部分和第四部分没有用,因为它使用Gtk-3.0。第一个和第二个解决了这个问题。
亚历山德罗·丁卡尔

2

我遇到了同样的问题(Xubuntu 12.04,Greybird主题,Eclipse Indigo),Mihael K的答案对我有用。我更改的唯一文件是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.

重新启动的椭圆和工具提示现在是我习惯的淡黄色。我不需要在Eclipse或任何其他文件中做任何进一步的调整。


0

更改背景的一种更加用户友好的方法是使用UI。打开系统,首选项,外观。默认情况下,将选择“氛围”主题,但是您可以为任何主题更改它。单击下面的“自定义”按钮,然后切换到“颜色”选项卡。您可以在此处通过单击适当的框来更改工具提示的前景色和背景色。


2
在11.10上,这不起作用。我可以在外观中更改主题,但是无法自定义主题。
丹尼尔·库尔曼2011年

我没有安装11.10,但是如果他们删除了自定义主题的方法,我会觉得很奇怪。也许他们已将按钮重命名和/或将其放置在其他位置/标签中?
Sergiy Belozorov

谢尔盖(Sergiy),我们中的许多人都进行了搜索,但看起来似乎不存在。我们希望它会在12.04中重新出现。

1
你们真的对在Gnome3 / Unity中删除自定义选项感到惊讶吗?
MestreLion

不再使用...使用12.04一段时间后,我们的管理员正在考虑迁移到Fedora或其他类似RHEL的发行版。Ubuntu已成为一个多媒体平台,该平台非常适合家庭用户使用,但不适用于IT专业人员。
谢尔盖·别洛佐罗夫

0

在ubuntu 12.10(正式版)上,您可以使用以下两个命令:

#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

(感谢其他答案帮助我弄清楚了这一点!)


0

这个答案是指出一种罕见的情况,如果您已经安装了xulrunner并将其配置为使用eclipse,则会发生非常类似的错误。

我安装了xulrunner,以使GPE设计器可以在设计模式下正确呈现GWT UI,这很好用,但我发现它也打破了工具提示。该错误实际上比上面的屏幕截图还要糟糕,它只显示一个空白的工具提示。

要修复它,您只需从eclipse.ini以下位置删除xulrunner参数:

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

它适用于Ubuntu 12.04,Eclipse 4.2 / Juno和xulrunner 1.9.2。


0

对于基本用户:

/usr/share/themes/elementary/gtk-3.0,编辑文件gtk-widgets.csssudo nano,类型Ctrl + W查找Tooltips,然后在background-color: alpha(#color, #opacity)变化的颜色类似#f5f5b5,并设置不透明度为1。


0

要使用选项卡打开外观窗口:直接从root @终端写入主题(您也可以将此命令用于脚本):

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

USER您当前的桌面用户在哪里?它将正确打开Appearance,但是您仍然需要单击Appearance窗口中的主题显示以启动主题。

对于具有安装主题的测试:来自root @终端的灰尘,命令:

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

得到这个错误:

(gnome-appearance-properties:16161):Gtk-警告**:无法在module_path中找到主题引擎:“ murrine”

但是如果通过选择菜单:系统/首选项/外观安装主题:灰尘,并从外观窗口安装,则主题:灰尘的安装是正确的。

在“外观”窗口中有需要用于选择主题的命令,但是我找不到它。


0

现在,我已经运行了带有Breeze主题的Kubuntu 16.04,并使用了默认的GTK3运行Eclipse 4.6.1,因为它们已经解决了按钮填充问题。

为了获得具有浅灰色背景和黑色前景的悬停工具提示,我对进行了一些更改/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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.