如何在 Ubuntu 17.10 和 18.04 中删除覆盖滚动条?

wdp*_*wdp 10 gnome gtk overlay-scrollbars 17.10 18.04

由于在以前版本中工作的 17.10 解决方案不再起作用(例如Gtk-Message 中的N0rberts 选项 2(“删除覆盖滚动条内容”):无法加载模块“覆盖滚动条”Ubuntu 17.10 .)。

wdp*_*wdp 5

在较旧的 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;
}
Run Code Online (Sandbox Code Playgroud)

将相同的内容放入 /root/.config/gtk-3.0/gtk.css 以获得与 Synaptic 等根应用程序相同的滚动条体验。

这可以防止滚动条在您处于非活动状态时消失:

echo "GTK_OVERLAY_SCROLLING=0" >> /etc/environment
Run Code Online (Sandbox Code Playgroud)

要使更改生效,您可能需要重新启动应用程序。注销并重新登录。

我对这个解决方案并不完全满意,因为滚动条看起来不像人们想象的那样“专业”,而且因为它们在不同的应用程序中看起来不同。例如,步进器在 Firefox 中看起来不错 - 向上和向下箭头是可见的。在 Gnome Terminal 和 Nautilus 中,它们只是一些没有箭头的圆角矩形(以及我正在开发的应用程序)。

其他应用程序带有它们“自己的”滚动条——例如 Geany。它们完全不受这些设置的影响,并且看起来仍然像人们对像样的滚动条所期望的那样。也许有人可以弄清楚如何从 Geany 那里“窃取”它们。 更新:在 18.04 Geany 不再带有它自己的滚动条,但例如 FBReader 和 Gimp 仍然有。

但是,摆脱翘曲滑块仍然以旧方式工作:

echo "gtk-primary-button-warps-slider = false" >> /etc/gtk-3.0/settings.ini
Run Code Online (Sandbox Code Playgroud)