Ubuntu 18.04忽略了我的gtk.css文件。

在Ubuntu 16.04中,我创建了一个文件~/.config/gtk-3.0/gtk.css来替换细长的滚动条(在Firefox和Emacs上都是如此),当你悬停时变宽,改为始终保持宽度,并将滚动条的颜色更改为庄重的灰色,并在顶部和底部添加按钮以进行单步操作。
.scrollbar {
  -GtkScrollbar-has-backward-stepper: true;
  -GtkScrollbar-has-forward-stepper: true;
  -GtkRange-slider-width: 16;
  -GtkRange-stepper-size: 16;

  background-color: LightGray;
}

/*
.scrollbar.slider {
    background-color: DarkGray;
    border-radius: 1px;
}
*/


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

这个文件似乎对Ubuntu 18.04没有任何影响。我非常想要消除只在鼠标悬停时变宽的细滚动条,并将颜色从默认的橙色改为漂亮的灰色。有人可以告诉我如何在Ubuntu 18.04中做到这一点吗?
3个回答

我自己回答我的问题,因为没有人提出任何建议,但经过长时间的实验,我找到了一个基本可行的方法。我在~/.config/gtk-3.0/settings.ini中有以下内容。
[Settings]
gtk-application-prefer-dark-theme=0
gtk-primary-button-warps-slider = false

在~/.config/gtk-3.0/gtk.css中添加以下内容。
scrollbar slider {
    /* Size of the slider */
    min-width: 18px;
    min-height: 18px;
    border-radius: 15px;

    /* Padding around the slider */
    border: 1px solid #606307;
}

scrollbar trough {
    background-color: shade(@theme_bg_color, 0.5);
}

scrollbar button,
scrollbar button.vertical,
scrollbar button.horizontal,
scrollbar .button,
scrollbar .button.vertical,
scrollbar .button.horizontal {
    color: shade(@theme_bg_color, 0.10);
    background-color: shade(@theme_bg_color, 0.6);
}

scrollbar.vertical slider,
scrollbar.vertical .slider {
    background-image: radial-gradient(ellipse at center, DarkGray 0%, LightGrey 100%);
}

scrollbar.horizontal slider,
scrollbar.horizontal .slider {
    background-image: radial-gradient(ellipse at center, DarkGray 0%, LightGray 100%);
}

这样在Firefox和Emacs中给我一个宽大的滚动条,带有浅灰色的滑块和深灰色的背景。我希望知道为什么这样能起作用,但是我没有找到任何解释各种命令的文档。唯一奇怪的是,在Emacs中,滚动条在鼠标第一次经过时是细的,之后变宽并保持宽度。此外,在Emacs中,滚动条有时看起来像是一个较窄的部分覆盖在一个较宽的部分上,虽然还能使用,但非常奇怪。


对不起,我没有更好的答案,但就值得一提,我一直在试图为此建立一个参考框架,迄今为止却失败了:

我的目标只是为XUbuntu 16.04下的面板应用程序设置工作空间插件(wnck-pager?)的背景颜色。根据在其他地方找到的另一个答案提示,我从头开始创建了gtk.css文件(一开始没有这个文件),如下:

~/.config/gtk-3.0 cat gtk.css

wnck-pager { background-color: #0F0000; } wnck-pager:selected { background-color: #00000F; } wnck-pager:hover { background-color: #000FA0; }

这使得我可以看到自己在哪个工作区,因为默认的背景颜色太相似,很难注意到。然而,在尝试将此修复方法导出到相邻的Xubu 16.04系统时,我发现了一个更复杂的gtk.css文件,其中包含一些看起来可能相关的参考资料。然而,我还没有找到相关的文档。我认为这可能是一个叫做“mono”的项目的一部分......但你知道,这就是一个经典的死胡同情况,我只是想找到一种方法来设置面板应用程序下的工作区“悬停”和“选中”的背景颜色。
底线是:在第二个系统(那个有更大的gtk.css文件的系统)上,我将该文件放在一边,并安装了上面列出的那个,只是为了看看 a)是否有任何损坏,和 b)是否能够改变面板上工作区选中的背景颜色。明显没有任何损坏(通过删除更复杂的gtk.css文件)。然而,我放在同样位置的非常简单的gtk.css文件在第二个Xubuntu 16.04工作站上不起作用。两个系统使用相同的gtk.css文件,都是16.04 Xubuntu,一个有效,一个无效。
不确定我还能投入多少时间解决这个问题,但无论我获得多少额外的结果,我都会在这里发布。
给版主的注意事项:我知道这并不是回答问题,但我想分享一下我的研究成果。(感谢StackExchange,一个非常出色、宝贵的资源。)

为什么不问一个新问题:“如何在XUbuntu 16.04中为面板的工作区插件设置背景颜色?”然后你可以在那里发布你的答案(以及进一步的更新)。 - DK Bose
好的...有人知道哪个程序或过程解决了影响给定面板的多个输入吗?换句话说,如果两个不同的进程都有一个配置文件,要求它们对桌面窗口上的“选择矩形”事件做出响应,那么最后处理哪个?(举个例子:如果你选择了一个包含'@define-color selected_bg_color #ffffff'的gtk-main.css文件的主题'Ambiance',而你的~/.config/gtk-3.0/gtk.css文件包含:wnck-pager:selected { background-color: #ff0000 }'...这个问题如何解决? - Tb Thomas
@TbThomas 这是一个很好的候选人,可以提出一个新的AskUbuntu问题。 - tom_mai78101

Firefox滚动条的外观可以通过在Firefox配置文件夹中创建一个新的gtk.css文件来进行更改。对于我来说,这个文件位于~snap/firefox/323/.config/gtk-3.0,但如果你没有使用snap版本,它可能位于不同的位置。
gtk.css文件应包含以下代码,以允许您调整垂直和水平滑块的外观:
scrollbar.vertical slider {
/* Slider dimensions */

min-width: 12px;
min-height: 70px;

/* Curvature top and bottom of the slider */

border-radius: 12px;

/* Padding around the slider */

border: 4px solid transparent;

/* Colour of the slider */

background-color: #666699;

}

滚动条水平滑块 {
/* Slider dimensions */

min-width: 70px;    
min-height: 12px;

/* Curvature top and bottom of the slider */

border-radius: 12px;

/* Padding around the slider */

border: 4px solid transparent;

/* Colour of the slider */

background-color: #666699;

}

只需随意尝试数值,直到找到你喜欢的颜色。有很多在线的颜色查找工具可以为给定的颜色提供十六进制数值。