更新到 16.10 后,所有应用程序中的滚动条大小都增加了。我真的习惯了 2px 滚动条的想法。有没有办法可以减少新滚动条的宽度?
答案1
@WinEunuuchs2Unix
OP 没有询问 Amiance,OP 在 16.10 请求帮助。你甚至没有问正在考虑哪个桌面或主题。
鼓励用户编辑 /usr/share/themes 中的文件是一个非常糟糕的主意。首先,当软件包升级时,他们的更改将会丢失。其次,一个用户(以 root 身份)所做的更改可能会对其他用户造成危害。第三,通过编辑 ~/.config/gtk-3.0 中的文件也可以获得相同的更改。
我认为这个答案更好。GTK-3.20 主题的格式已更改。许多主题没有用户可编辑的文件。此外,CSS 样式也已更改。
gtk-3.20 提供的主题有
Adwaita
HighContrast
Raleigh
win32
如何自定义这些内容大部分都是未知领域,但我取得了一些成功。这些主题提供的 gtk.css 文件不可编辑,或者没有用处。但是,您可以检索 gtk-3.20 源代码,在 Adwaita 主题中,有一个名为 gtk-contained.css 的文件。它显示了当前使用的 CSS 语法。
将您想要的尽可能多的语法复制到名为 ~/.config/gtk-3.0/gtk.css 的文件中。如果您在其中编辑设置,那么使用基于 gtk-3.20 的主题的程序将注意到这些变化。
坏消息是,由于较新的 GTK-3.20 中 CSS 样式的变化,我们过去在 Gnome 16.04 中所做的配置更改不再有效。
但我已经验证过,通过调整这里的设置,然后重新启动 Firefox,我可以改变滚动条的颜色、添加步进箭头等等。我在调整滚动条宽度方面运气不佳,这是覆盖滚动条的残留挫败感。
但是,只要您看到语法差异,您就会明白为什么现在摆弄主题与当时不同。
scrollbar {
background-color: #c3c4c4;
transition: 300ms cubic-bezier(0.25, 0.46, 0.45, 0.94); }
* {
-GtkScrollbar-has-backward-stepper: true;
-GtkScrollbar-has-forward-stepper: true; }
scrollbar.top {
border-bottom: 1px solid #9d9d99; }
scrollbar.bottom {
border-top: 1px solid #9d9d99; }
scrollbar.left {
border-right: 1px solid #9d9d99; }
scrollbar.right {
border-left: 1px solid #9d9d99; }
scrollbar:backdrop {
background-color: #e1e1df;
border-color: #a5a5a1;
transition: 200ms ease-out; }
scrollbar slider {
min-width: 30px;
min-height: 30px;
margin: -1px;
border: 4px solid transparent;
border-radius: 8px;
background-clip: padding-box;
background-color: #787c7d; }
scrollbar slider:hover {
background-color: #535859; }
scrollbar slider:hover:active {
background-color: #2a76c6; }
scrollbar slider:backdrop {
background-color: #c3c4c4; }
scrollbar slider:disabled {
background-color: transparent; }
scrollbar.fine-tune slider {
min-width: 4px;
min-height: 4px; }
scrollbar.fine-tune.horizontal slider {
border-width: 5px 4px; }
scrollbar.fine-tune.vertical slider {
border-width: 4px 5px; }
scrollbar.overlay-indicator:not(.dragging):not(.hovering) {
border-color: transparent;
opacity: 0.4;
background-color: transparent; }
scrollbar.overlay-indicator:not(.dragging):not(.hovering) slider {
margin: 0;
min-width: 3px;
min-height: 3px;
background-color: #2e3436;
border: 1px solid white; }
scrollbar.overlay-indicator:not(.dragging):not(.hovering) button {
min-width: 5px;
min-height: 5px;
background-color: #2e3436;
background-clip: padding-box;
border-radius: 100%;
border: 1px solid white;
-gtk-icon-source: none; }
scrollbar.overlay-indicator:not(.dragging):not(.hovering).horizontal slider {
margin: 0 2px;
min-width: 40px; }
scrollbar.overlay-indicator:not(.dragging):not(.hovering).horizontal button {
margin: 1px 2px;
min-width: 5px; }
scrollbar.overlay-indicator:not(.dragging):not(.hovering).vertical slider {
margin: 2px 0;
min-height: 40px; }
scrollbar.overlay-indicator:not(.dragging):not(.hovering).vertical button {
margin: 2px 1px;
min-height: 5px; }
scrollbar.overlay-indicator.dragging, scrollbar.overlay-indicator.hovering {
opacity: 0.8; }
scrollbar.horizontal slider {
min-width: 40px; }
scrollbar.vertical slider {
min-height: 40px; }
scrollbar button {
padding: 0;
min-width: 42px;
min-height: 12px;
border-style: none;
border-radius: 0;
transition-property: min-height, min-width, color;
border-color: transparent;
background-color: transparent;
background-image: none;
box-shadow: inset 0 1px rgba(255, 255, 255, 0);
text-shadow: none;
-gtk-icon-shadow: none;
color: #787c7d; }
scrollbar button:hover {
border-color: transparent;
background-color: transparent;
background-image: none;
box-shadow: inset 0 1px rgba(255, 255, 255, 0);
text-shadow: none;
-gtk-icon-shadow: none;
color: #535859; }
scrollbar button:active, scrollbar button:checked {
border-color: transparent;
background-color: transparent;
background-image: none;
box-shadow: inset 0 1px rgba(255, 255, 255, 0);
text-shadow: none;
-gtk-icon-shadow: none;
color: #2a76c6; }
scrollbar button:disabled {
border-color: transparent;
background-color: transparent;
background-image: none;
box-shadow: inset 0 1px rgba(255, 255, 255, 0);
text-shadow: none;
-gtk-icon-shadow: none;
color: rgba(120, 124, 125, 0.2); }
scrollbar button:backdrop {
border-color: transparent;
background-color: transparent;
background-image: none;
box-shadow: inset 0 1px rgba(255, 255, 255, 0);
text-shadow: none;
-gtk-icon-shadow: none;
color: #c3c4c4; }
scrollbar button:backdrop:disabled {
border-color: transparent;
background-color: transparent;
background-image: none;
box-shadow: inset 0 1px rgba(255, 255, 255, 0);
text-shadow: none;
-gtk-icon-shadow: none;
color: rgba(195, 196, 196, 0.2); }
scrollbar.vertical button.down {
-gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); }
scrollbar.vertical button.up {
-gtk-icon-source: -gtk-icontheme("pan-up-symbolic"); }
scrollbar.horizontal button.down {
-gtk-icon-source: -gtk-icontheme("pan-right-symbolic"); }
scrollbar.horizontal button.up {
-gtk-icon-source: -gtk-icontheme("pan-left-symbolic"); }
在我的 Ubuntu 16.10 中,我没有 Ambiance 主题可供比较,我没有运行 Unity。我会获取其源代码的副本并查看。
啊,如果用户确实想按照您描述的那样编辑 Ambiance gtk-widgets.css,那么格式与您描述的不同。请注意文件 /usr/share/themes/Ambiance/gtk-3.20/gtk-widgets.css 中的语法差异
/*************
* scrollbar *
*************/
.scrollbar,
scrollbar {
-GtkScrollbar-has-backward-stepper: 0;
-GtkScrollbar-has-forward-stepper: 0;
}
scrollbar slider {
background-color: @scrollbar_track_color;
}
.scrollbar.vertical slider,
scrollbar.vertical slider {
min-height: 15px;
min-width: 5px;
}
.scrollbar.horizontal.slider,
scrollbar.horizontal slider {
min-width: 15px;
min-height: 5px;
}
.scrollbar.vertical.slider:hover,
scrollbar.vertical:hover slider {
min-width: 10px;
}
注意样式的差异,新的样式首先有一个“。”声明,然后是实例名称。
新的 Ambiance 包也确实有使用旧样式的 gtk-3.0/gtk-widgets.css。它看起来像您提到的那个。因为版本 3.20 实际上更像版本 4.00,所以您可以看到为什么有 2 个单独的样式文件夹。
我认为棘手的想法是某些应用程序是否能够区分这两件事。