如何改变滚动条的颜色?

如何改变滚动条的颜色?

Unity 中的滚动条对比度很低,我无法仅使用周边视觉看清滚动条的位置。我必须看着滚动条。

查看 Mac OS X 界面,注意蓝色的对比滚动条。您无需直接查看它即可知道您在页面中的位置。

我怎样才能改变它,以便它具有更多的对比度,并且让我每次都能看到自己在哪里?

答案1

有点晚了,但也许我已经找到了一个相当不错的、简单的 GUI 解决方案:

gnome-颜色选择器 安装 gnome-color-chooser

Gnome 颜色选择器中的滚动条设置

强调:

  • 完全 GUI 解决方案,无需手动摆弄~/.gtkrc
  • 仅更改您选中的设置。取消选中则恢复为默认设置。
  • 单击后更改将立即应用Apply。无需来回切换主题
  • 不需要 sudo(但更改仅针对您的用户)
  • 仅适用于“旧式”滚动条(需要修复的滚动条)。“覆盖式”滚动条不会被修改。

这些变化非常不引人注目:它编辑(或创建)~/.gtkrc以包含其自己的配置文件:

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

而且这个文件也很小:

style "gnome-color-chooser-scrollbar"
{
  bg[NORMAL] = "#ACACAC"
  bg[PRELIGHT] = "#808080"
  bg[ACTIVE] = "#ACACAC"
}
widget_class "*Scrollbar" style "gnome-color-chooser-scrollbar"

顺便说一句,上面的颜色是我试验后选出来的。它们与 Ambiance 的“单色”风格完美融合,比默认颜色稍暗(因此更显眼)。

直到 Firefox 获得覆盖滚动条之前,我对自定义颜色非常满意:)

答案2

我以 culebrón 的描述为基础,意外地创造了一些我认为非常棒的东西......

以root身份打开/usr/share/themes/Ambiance/gtk-2.0/gtkrc进行修改:

gksu gedit /usr/share/themes/Ambiance/gtk-2.0/gtkrc

然后将该文件中的匹配部分修改为以下内容(请记住备份默认设置,以防您不喜欢这些更改):

style "scrollbar" = "button" {
    xthickness = 2
    ythickness = 2

    bg[NORMAL] = shade (0.62, @bg_color)
    bg[PRELIGHT] = shade (0.66, @bg_color)

    bg[ACTIVE] = shade (0.64, @bg_color)

    engine "murrine"
    {
        border_shades = {0.95, 0.90}
        roundness = 3
        contrast = 1.0
        trough_shades = {0.92, 0.98}
        lightborder_shade = 1.3
        glowstyle = 5
        glow_shade = 1.02
        gradient_shades = {1.2, 1.0, 1.0, 0.86}
        trough_border_shades = {0.9, 0.98}
    }
}

保存,然后通过切换主题或注销来应用更改。

新的、出色的、可用的滚动条可能看起来像:

答案3

以上更改了使用 gtk2 主题文件的应用程序的滚动条。gnome-color-chooser 也是如此(至少是当前存储库中的那个)。对于 gtk3 应用程序,例如使用 gnome-fallback 的 13.04 中的 gnome-terminal 和 gedit,需要更改/usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css

去做这个

sudo gedit /usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css

并将该* scrollbar *部分替换为:

/*************
 * scrollbar *
 *************/
.scrollbar,
.scrollbar.vertical {
    -GtkScrollbar-has-backward-stepper: 0;
    -GtkScrollbar-has-forward-stepper: 0;
    -GtkRange-slider-width: 14;

    border-radius: 3px;

    border-image: none;
}

.scrollbar.trough,
.scrollbar.trough.vertical {
    border-color: shade (@bg_color, 0.64);
}

.scrollbar.trough.horizontal {
}

.scrollbar.slider,
.scrollbar.slider:hover,
.scrollbar.button,
.scrollbar.slider.vertical,
.scrollbar.slider.vertical:hover,
.scrollbar.button.vertical {
    border-width: 1px;
    border-style: solid;
    border-color: shade (@bg_color, 0.4);
    background-image: -gtk-gradient (linear, left top, right top,
                                     from (shade (@button_bg_color, 0.76)),
                                     to (shade (@button_bg_color, 0.62)));
    box-shadow: inset 1px 0 shade (@button_bg_color, 0.85),
                inset -1px 0 shade (@button_bg_color, 0.62),
                inset 0 1px shade (@button_bg_color, 0.9),
                inset 0 -1px shade (@button_bg_color, 0.62);
}

.scrollbar.slider.horizontal,
.scrollbar.slider.horizontal:hover,
.scrollbar.button.horizontal {
    background-image: -gtk-gradient (linear, left top, left bottom,
                                     from (shade (@button_bg_color, 0.76)),
                                     to (shade (@button_bg_color, 0.62)));
    box-shadow: inset 1px 0 shade (@button_bg_color, 0.85),
                inset -1px 0 shade (@button_bg_color, 0.62),
                inset 0 1px shade (@button_bg_color, 0.9),
                inset 0 -1px shade (@button_bg_color, 0.62);

}

.scrollbar.button,
.scrollbar.button:insensitive {
}

这会在 gtk3 中产生一个如下所示的滚动条:

https://i.stack.imgur.com/m385G.png

这与上面 gtk2 的有点相似。不过这里不包括小刻度和适当的步进器。

答案4

虽然这不是问题的直接答案,但是如果您不喜欢新的滚动条(我不会怪您,在我个人看来它们非常可怕),您可以通过运行以下命令恢复到标准滚动条:

sudo apt-get remove overlay-scrollbar liboverlay-scrollbar3-0.2-0 liboverlay-scrollbar-0.2-0

相关内容