如何获得更大的静态滚动条(又称普通滚动条)?


40

我很高兴外面的叠加滚动条终于消失了。

但是,滚动条仍然是剃须刀细线,当鼠标悬停时,它变得不那么剃须刀细线滚动条,但仍然是细线滚动条。

如何获得普通的滚动条?即,就像在其他操作系统中一样,例如在Firefox中,滚动条不会随鼠标指向的位置而改变,并且宽度很好。

我已经试过了

gsettings set com.canonical.desktop.interface scrollbar-mode normal

但没有运气。


2
这仍然是一个悬而未决的问题,而不是标准系统设置的修复/一部分?老天爷四年前,我很愤怒了Ubuntu的像这样的东西,去mintier牧场...笑
neuronet

@neuronet阿门,兄弟
史蒂夫·科恩

Answers:


22

编辑此文件/usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css

寻找这条线(1200行左右):- GtkRange-slider-width:10;

然后将10更改为更大的数字,例如20或30,然后完成:)

我也认为它们太小了...

看到这张图片:

在此处输入图片说明

如果将滚动条的大小更改为16,并且希望它们保持这种状态,并且在没有鼠标的情况下不要缩小,请在上图中进行更改。

如果您使用的尺寸不是16,请尝试使用边距尺寸以使其正确。


1
我将其设置为16,并注释了所有悬停/拖动内容,现在滚动条是旧的静态静态条...几秒钟后它们仍然消失。有没有我没看过的动画功能?
西蒙

好的,在您进行第一次更改的位置下面,您将看到以下内容:margin-left: 2px;以及margin-rightmargin-top。将所有这三个值从2px更改为7px,滚动条将保持较宽。
多里安

我在回答中添加了一张图片,以使您清楚需要进行哪些更改才能使滚动条保持较大。
多里安

6
非常感谢!我的祖父确实非常努力地使用很小的滚动条,但我将其更改为25px,现在他像专业人士一样滚动!
Erty Seidohl '16

1
请注意,我将我的尺寸更改为24,并且7px仍是用于边距的正确大小,以确保其在悬停时保持正确。另请注意,请确保重新启动程序(例如Firefox),以确保您的更改生效。好东西
Neuronet

26

我认为您应该在那里保持谨慎。我们中的许多人不建议您编辑主题的系统范围默认值,除非您确实确实打算干扰系统中所有用户帐户的活动。如果您在执行此操作时碰巧出错,那么它将影响所有用户帐户。另一点警告是,更新软件包时,您的更改将被删除。

此策略的另一个缺点是,它仅更改了一个GTK主题的行为,但是您可能希望更改ALL GTK-3.0主题中的滚动条大小。

而是在用户帐户中编辑配置文件。诀窍是找出到期望端点的最短距离是哪一个。您编辑的GTK文件是CSS(级联样式表)设置的一部分,因此您在帐户中进行的自定义将修改设置。

在您的用户帐户中,在文件夹〜/ .config / gtk-3.0 / gtk.css中,我目前在名为“ gtk.css”的文件中拥有此文件

.scrollbar {
  -GtkScrollbar-has-backward-stepper: true;
  -GtkScrollbar-has-forward-stepper: true;
  -GtkRange-slider-width: 20;
  -GtkRange-stepper-size: 20;
}

如果您对此进行一些尝试,您会发现可以整合您在上面编辑的主题文件中的许多特定更改。一次我非常努力地摆弄许多设置,但是现在我处于“保持简单”模式。

如果您确实想编辑很多设置,则正确的做法是复制整个gtk-widgets.css文件并将其放在〜/ .config / gtk-3.0文件夹中。然后去摆弄设定的小镇。

在同一文件夹中,我有一个名为“ settings.ini”的文件。

[Settings]
gtk-primary-button-warps-slider = false

这样可以防止滚动条中的单击移动到文件中的某个点,而是仅前进一个屏幕。我喜欢那个!

另一件值得了解的事情是,更改主题文件(如我之前建议的@Dorian所建议的那样,或者针对我所建议的所有基于GTK-3.0的主题的用户帐户更改)仅更改基于GTK-3.0工具包的程序。它不会更改所有应用程序的滚动条。仅适用于读取该gtk-3.0配置文件的用户。由于您正在编辑gtk-3.0主题,因此使用QT或gtk-2.0编写的应用程序不会更改。因此,更改所有程序的滚动条大小比您预期的要困难/乏味。

我也更改了gtk-2.0中的滚动条宽度。这是在单独的文件夹〜/ .config / gtk-2.0中完成的。要创建的文件名为gtkrc

style "scroll"
{
 GtkScrollbar::slider-width = 20
}

请注意,gtk-2.0是设计不同的设置,因此语法也不同,您不能仅将gtk-3.0 css复制到gtk-2.0文件夹中。

我注意到,当您使滚动条与众不同时,某些应用程序的行为会变差,因为滑块槽内“抓取器”的大小未正确调整大小。我怀疑@Dorian文件中拖动滚动条的更改将对此有所帮助。我可能会回来尝试。我会告诉你。

简介:关键的“旧的Linux系统管理员建议是”不要在系统范围内编辑配置文件。您正在使系统面临风险,所做的更改不会在各个修订版中持续存在,并且需要root用户访问权限,这对于像这样的修饰性东西永远不会有好处。寻找一种方法来更改您的用户帐户。

PS。如果您确实想弄乱系统文件(有时我确实要坚持让所有用户拥有我最喜欢的足球队颜色作为墙纸和配色方案,那么我可以这样做:)),您应该做的第一件事是复制原始文件,并将其命名为“ gtk-widgets.css.orig”。然后,当您编辑文件时,将您的编辑副本另存为“ gtk-widgets.css.20160919”,该文件的末尾有YYYYMMDD日期。这样,当更新deb软件包时,您将拥有已编辑文件的副本。软件包安装将删除您编辑的名为gtk-widgets.css的文件。


“您在上面编辑的主题文件”指的是什么?“上方”在这里并不意味着任何东西。
Endlith的

9

这是恢复滚动条的步骤,这些滚动条不会消失并且具有永久宽度,即“经典”宽度。在Ubuntu 16.04中的GNOME闪回会话中测试(也可在Unity中使用)。

步骤1.备份/etc/environment。运行sudo nano /etc/environment并在其中添加下一行:

GTK_OVERLAY_SCROLLING=0

这将防止滚动条的自动隐藏行为。

步骤2.为了避免篡改主主题文件,/usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css我们将从那里借用一些代码,对其进行更改并将其放入用户配置文件文件夹中。创建~/.config/gtk-3.0/gtk.css并在其中放入下一行:

/* Adding the buttons on the edges (if you don't need them, skip the next 4 lines)
 */

.scrollbar {
  -GtkScrollbar-has-backward-stepper: 1;
  -GtkScrollbar-has-forward-stepper: 1;
}

/* Scrollbar trough squeezes when cursor hovers over it. Disabling that
 */

.scrollbar.vertical:hover:dir(ltr),
.scrollbar.vertical.dragging:dir(ltr) {
    margin-left: 0px;
}

.scrollbar.vertical:hover:dir(rtl),
.scrollbar.vertical.dragging:dir(rtl) {
    margin-right: 0px;
}

.scrollbar.horizontal:hover,
.scrollbar.horizontal.dragging,
.scrollbar.horizontal.slider:hover,
.scrollbar.horizontal.slider.dragging {
    margin-top: 0px;
}

/* Slider widens to fill the scrollbar when cursor hovers over it. Making it permanent
 */

.scrollbar.slider.vertical:dir(ltr):not(:hover):not(.dragging) {
    margin-left: 0px;
}

.scrollbar.slider.vertical:dir(rtl):not(:hover):not(.dragging) {
    margin-right: 0px;
}

.scrollbar.slider.horizontal:not(:hover):not(.dragging) {
    margin-top: 0px;
}

步骤3.创建~/.config/gtk-3.0/settings.ini并在其中添加下一行:

[Settings]
gtk-primary-button-warps-slider = false

当您单击滑块两侧的滚动条时,这将恢复逐页滚动行为。如果该文件已经存在,只需在文件的[Settings]部分添加最后一行。

第4步。卸载overlay-scrollbaroverlay-scrollbar-gtk2打包-您将不再需要它们。

PS如果您使用某些需要超级用户权限的应用程序(例如Synaptic,Gedit等),则还应该将这些文件gtk.csssettings.ini文件放入根目录的配置文件文件夹中:

sudo cp ~/.config/gtk-3.0/gtk.css /root/.config/gtk-3.0/
sudo cp ~/.config/gtk-3.0/settings.ini /root/.config/gtk-3.0/

PPS如果发现这些滚动条对您来说太窄,请使其更宽。只需将下一行添加到您的~/.config/gtk-3.0/gtk.css

.scrollbar {
  -GtkRange-slider-width: 15;
}

根据需要增加宽度(默认值为10)。/root/.config/gtk-3.0/gtk.css如果需要,也进行更新。


我能够使用唯一的项目增加宽度:.scrollbar {-GtkRange-slider-width: 15; …,而没有您提到的所有其他选项。但这仅在虚拟机上。当我尝试在台式机上执行相同操作时,尽管我尝试了所有步骤,但没有任何效果。我想这是Firefox 52中的一个错误,因为在答案有帮助的虚拟机上,滚动条对悬停事件做出了正确的反应,并自动变大了。在桌面上,它无法处理悬停(这实际上是原因,为什么我需要加宽滚动条),并且gtk.css也将被忽略
user907860

1
@ user907860相反,上面提到的所有步骤都旨在完全忽略悬停事件。需要它们制作静态的,永久的滚动条,而该滚动条不会改变其宽度,就像统一时期以前一样。
Whtyger

是的,你是对的。我的意思是只增加宽度,而无需触摸悬停功能
user907860

顺便说一句,您不知道为什么在台式机的Firefox 52中却不能在虚拟机上的Firefox 52中起作用吗?askubuntu.com/questions/892097/…–
user907860

1
这应该是公认的答案。dconf和主题的混乱给了非常奇怪的结果-没有覆盖,但也不正常。这个答案给出了普通的滚动条。它必须在GTK级别上完成。注意:Ubunutu即将移至Qt。
Dominic Cerisano

8

更改-GtkRange-slider-width不会影响默认的GTK + 3主题。相反,您可以这样做:

scrollbar slider {
    /* Size of the slider */
    min-width: 20px;
    min-height: 20px;
    border-radius: 22px;

    /* Padding around the slider */
    border: 5px solid transparent;
}

(将以上内容放在中~/.config/gtk-3.0/gtk.css。)


1
我应该在哪里添加它?
肯恩

@kenn~/.config/gtk-3.0/gtk.css
弗拉基米尔·潘捷列夫

1
在Ubuntu 18.04上像超级按钮一样工作。谢谢!
史蒂夫·科恩

9个月后:在Ubuntu 18.04下,它的工作原理确实很吸引人-只是它使GNUCash应用程序混乱了。请参阅lists.gnucash.org/pipermail/gnucash-user/2019-February/…。进行这些更改会破坏GNUCash中的滚动条功能,但不会破坏其他应用程序。叹。
史蒂夫·科恩

1
@SteveCohen,我看了gnucash链接。您写了“〜/ .config / gtk-3.0.gtk.css”,但是应该是~/.config/gtk-3.0/gtk.css。另外,gnucash似乎是gtk2应用程序,而不是gtk 3应用程序。
莫妮卡

4

我正在使用Ubuntu 18.04,这是唯一更改了所有内容的滚动条的解决方案,从Firefox到LibreOffice到gnome-terminal。上面的解决方案对一个或两个应用程序都适用,但对所有应用程序都不能。

注意:这确实为您提供了非常大的滚动条,非常适合大型显示器,因为您可以在不希望每次都抓住屏幕的情况下从屏幕的角处看到它们,而又可以从屏幕的一角看到它们。如果您想要较小的像素,请将所有70像素更改为较小的数字(例如20像素或30像素),然后进行相应调整。

将以下文本放入~/.config/gtk-3.0/gtk.css


.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: 150px;
    min-width: 70px;
}

.scrollbar.horizontal.slider,
scrollbar.horizontal slider {
min-width: 40px;
min-height: 10px;
}

.scrollbar.vertical.slider:hover,
scrollbar.vertical:hover slider {
min-width: 70px;
}

.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;
}

scrollbar {
    min-width: 70px;
    min-height: 70px;
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.