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

kay*_*ahr 218 themes unity

在许多应用程序中,工具提示非常难看(黑色背景上的白色文本,对比度太大)甚至无法阅读(黑色背景上的黑色或深蓝色文本(超链接))。我想将工具提示的背景颜色更改为一些中灰色,甚至一些黄色或类似的颜色,甚至可能是半透明的颜色。

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

带有不可用工具提示的 Eclipse

切换到不同的主题(Ambiance 或 Radiance 以外的主题)会有所帮助,但我喜欢 Ambiance 并且我想保留它。只是这个该死的工具提示颜色是绝对不能接受的。

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

Nic*_*rik 149

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

SpecificTooltips并将黑色前景放在淡黄色背景上。

  • 无需为我重新启动。 (8认同)
  • +1,但请注意,这会影响所有系统工具提示。如果您只需要 Eclipse 的解决方案,请按照@bain 的回答进行操作。 (8认同)
  • 重新启动 eclipse 以使更改生效 (3认同)
  • 不幸的是,这对我不起作用(Ubuntu 12.04 64 位和 Eclipse Juno)。接受的答案和以下来自 DJo 的答案都对我有用。 (2认同)

kay*_*ahr 137

找到了!

我不得不编辑这些文件:

/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
Run Code Online (Sandbox Code Playgroud)

(补充:对于 Ubuntu 12.04,似乎你只需要修改文件: /usr/share/themes/Ambiance/gtk-2.0/gtkrc ,分别用 #000000 和 #f5f5b5 颜色替换工具提示的背景色和前景色)

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

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

结果如下:

带有自定义主题的 Eclipse

  • 有什么办法可以通过 ubuntu 11 中的 UI 做到这一点? (2认同)
  • @MestreLion:用户主题选自`~/.themes/`。您需要将 Ambiance 文件夹复制到该文件夹​​中。 (2认同)

bai*_*ain 30

如果要更改所有应用程序的工具提示颜色,请安装并运行gnome-color-chooser,然后转到特定选项卡 > 工具提示。选中前景和背景框并选择颜色。

它是如何工作的(您可以手动执行此操作):

gnome-color-chooser 将以下内容添加到您的 ~/.gtkrc-2.0:

include ".gtkrc-2.0-gnome-color-chooser"
Run Code Online (Sandbox Code Playgroud)

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

style "gnome-color-chooser-tooltips"
{
  bg[NORMAL] = "#FFFFAF"
  fg[NORMAL] = "#000000"
}
widget "gtk-tooltip*" style "gnome-color-chooser-tooltips"
Run Code Online (Sandbox Code Playgroud)

如果您只想更改单个应用程序的工具提示颜色,例如 eclipse,则将上述文本放入自定义 gtkrc 文件(例如 ~/gtkrc-eclipse)中并使用GTK2_RC_FILES=~/gtkrc-eclipse eclipse启动eclipse

  • 我编译了一篇[文章](http://weblog.avp-ptr.de/20120728/how-to-fix-eclipse-colors-for-autocompletion-and-tooltips/),其中总结了该主题。 (3认同)
  • 绝妙的方法@bain !!! :)不需要`sudo`,只影响你的用户,不需要把整个主题复制到你的`~`。好的 :) (2认同)

Vic*_* P. 23

我创建了一个小脚本来为你做这件事

#/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"
Run Code Online (Sandbox Code Playgroud)


小智 9

我采用了一个稍微不同的解决方案;

首先创建一个新脚本 eclipse.sh,它启动 eclipse,我的看起来像这样:

#!/bin/bash
GTK2_RC_FILES=/usr/share/eclipse/gtkrc-2.0-eclipse /usr/share/eclipse/eclipse
Run Code Online (Sandbox Code Playgroud)

然后创建 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"
Run Code Online (Sandbox Code Playgroud)


小智 8

对于 CDT,请执行以下操作:

窗口>首选项>C/C++>编辑器:外观颜色选项>源悬停背景

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

不幸的是,我不知道 Eclipse 范围内的设置。很蹩脚。你不应该为每个视角都设置这样的东西。


小智 7

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

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

打开终端,切换到主题目录(cd $HOME/.themes),然后转到主题目录。如果您的 .themes 目录不存在,那么您正在使用 /usr/share/themes 中的系统主题。搞清楚你用的主题名称(右键bakcground,选择更改桌面背景,主题名称应该在右下角。如果没有显示主题名称,则使用gnome-tweak-tool查找找出您正在使用的主题)。

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

grep -r tooltip *
Run Code Online (Sandbox Code Playgroud)

它应该列出所有提到关键工作“工具提示”的文件和行。将每个背景 (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"
Run Code Online (Sandbox Code Playgroud)