从 17.10 开始,以前版本中有效的解决方案不再起作用(例如 N0rberts 选项 2(“删除覆盖滚动条内容”)Gtk-Message:无法加载模块“overlay-scrollbar”Ubuntu 17.10。
答案1
在旧版本 Ubuntu 中有效的解决方案不再有效的原因是 GTK+ 用于样式和布局的 CSS 发生了变化。
将其放入您的 ~/.config/gtk-3.0/gtk.css(如果需要,请创建该文件):
/*************
* scrollbar *
*************/
.scrollbar,
scrollbar {
-GtkScrollbar-has-backward-stepper: 1;
-GtkScrollbar-has-forward-stepper: 1;
}
scrollbar slider {
background-color: @scrollbar_track_color;
}
.scrollbar.vertical slider,
scrollbar.vertical slider {
min-height: 15px;
min-width: 10px;
}
.scrollbar.horizontal.slider,
scrollbar.horizontal slider {
min-width: 15px;
min-height: 10px;
}
.scrollbar.vertical.slider:hover,
scrollbar.vertical:hover slider {
min-width: 10px;
}
.scrollbar.horizontal.slider:hover,
scrollbar.horizontal:hover slider {
min-height: 10px;
}
.scrollbar.contents,
scrollbar contents {
background-color: transparent;
background-image: none;
background-size: 0;
border: none;
border-radius: 0;
}
.scrollbar.trough,
scrollbar trough {
background-image: none;
border: none;
}
.scrollbar:hover:backdrop,
.scrollbar.dragging:backdrop,
scrollbar:hover:backdrop,
scrollbar.dragging:backdrop {
background-color: alpha(@backdrop_selected_bg_color, 0.5);
}
.scrollbar.vertical:hover:dir(ltr),
.scrollbar.vertical:active:dir(ltr),
scrollbar.vertical:hover:dir(ltr),
scrollbar.vertical:active:dir(ltr) {
margin-left: 0px;
}
.scrollbar.vertical:hover:dir(rtl),
.scrollbar.vertical:active:dir(rtl),
scrollbar.vertical:hover:dir(rtl),
scrollbar.vertical:active:dir(rtl) {
margin-right: 0px;
}
.scrollbar.horizontal:hover,
.scrollbar.horizontal:active,
scrollbar.horizontal:hover,
scrollbar.horizontal:active {
margin-top: 0px;
}
.scrollbar.slider,
scrollbar slider {
background-color: alpha(@backdrop_filling_bg, 0.75);
border-radius: 10px;
}
.scrollbar.slider:hover,
.scrollbar.slider:active,
scrollbar slider:hover,
scrollbar slider:active {
border-radius: 20px;
margin: 0;
}
.scrollbar.vertical:dir(ltr):not(:hover):not(.dragging),
scrollbar.vertical:dir(ltr):not(:hover):not(.dragging) {
margin-left: 0px;
}
.scrollbar.vertical:dir(rtl):not(:hover):not(.dragging),
scrollbar.vertical:dir(rtl):not(:hover):not(.dragging) {
margin-right: 0px;
}
.scrollbar.horizontal:not(:hover):not(.dragging),
scrollbar.horizontal:not(:hover):not(.dragging) {
margin-top: 0px;
}
.scrollbar.slider:hover,
scrollbar slider:hover {
background-color: alpha(@backdrop_filling_bg, 0.6);
}
.scrollbar.slider:active,
scrollbar slider:active {
background-color: @backdrop_filling_bg;
}
.scrollbar.slider:backdrop,
scrollbar slider:backdrop {
background-color: alpha(@backdrop_filling_bg, 0.75);
}
.scrollbar.slider:hover:backdrop,
scrollbar slider:hover:backdrop {
background-color: alpha(@backdrop_filling_bg, 0.6);
}
.scrollbar.slider:active:backdrop,
scrollbar slider:active:backdrop {
background-color: @backdrop_filling_bg;
}
将相同的内容放入 /root/.config/gtk-3.0/gtk.css 以获得与 Synaptic 等根应用程序相同的滚动条体验。
这可以防止滚动条在您不活动时消失:
echo "GTK_OVERLAY_SCROLLING=0" >> /etc/environment
为了使更改生效,您可能需要重新启动应用程序,然后注销并重新登录。
不过,我对这个解决方案并不完全满意,因为滚动条看起来并不像人们期望的那样“专业”,而且它们在不同的应用程序中看起来也不同。例如,步进器在 Firefox 中看起来还不错 - 上下箭头可见。在 Gnome Terminal 和 Nautilus 中,它们只是一些没有箭头的圆角矩形(以及在我正在开发的应用程序中)。
其他应用程序带有“自己的”滚动条 - 例如 Geany。它们完全不受这些设置的影响,并且仍然看起来像一个像样的滚动条。也许有人可以想出如何从 Geany“窃取”它们。 更新:在 18.04 中Geany 不再带有自己的滚动条,但 FBReader 和 Gimp 仍然带有。
但是,摆脱扭曲滑块仍然以老方法有效:
echo "gtk-primary-button-warps-slider = false" >> /etc/gtk-3.0/settings.ini
答案2
可能的解决方案是切换主题氛围或者辐射到阿德瓦伊塔和gnome-tweaks
:
- 安装
gnome-tweaks
sudo apt-get install gnome-tweaks
- 发射
gnome-tweaks
- 去外貌标签,在主题扩张应用并选择阿德瓦伊塔这里。
或者切换到Clearlooks 主题的 GTK3 端口(使用 安装sudo apt-get install clearlooks-phenix-theme
)。
我还没有找到 css 驱动的解决方案。
答案3
我从网上的各个网站(尤其是 Linux mint 论坛)收集了有关主题的滚动条。氛围在 Ubuntu 18.04 中。它没有覆盖。您必须最终将代码放入 ~/.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, #dba13f 0%, #7c4e00 100%);
}
scrollbar.horizontal slider,
scrollbar.horizontal .slider {
background-image: radial-gradient(ellipse at center, #dba13f 0%, #7c4e00 100%);