staging.inyokaproject.org

Die "modernen" Scrollbalken entfernen.

Status: Gelöst | Ubuntu-Version: Ubuntu 16.04 (Xenial Xerus)
Antworten |

Bleys

Avatar von Bleys

Anmeldungsdatum:
13. August 2006

Beiträge: 6053

Ubuntu kommt ja seit einigen Versionen mit Scrollbalken die immer wieder eine Höchstleistung im Mausschubsen erfordert, um da etwas beim ersten Versuch zu treffen. Leider kann man diese Karikatur eines Scrollbalken nicht einfach per Mausklick irgendwo abstellen.

Aktuell habe ich mal wieder eine Neuinstallation von Ubuntu 16.04 auf dem Tisch bei dem der Anwender gerne die guten alten Scrollbalken hätte.

Mit GTK_OVERLAY_SCROLLING=0 in /etc/environment läßt sich zumindest schon mal das Verschwinden abschalten. Der Balken selbst bleibt dabei eine Herausforderung für die Fähigkeiten der meist älteren Mitbürger für die ich Rechner aufsetze.

com.canonical.desktop.interface scrollbar-mode hat unter 16.04 keine Funktion mehr...

Unsettings oder das Unity-Tweak-Tool helfen auch nicht mehr.

Umfangreiche Änderungen in den GTK-3.0 CSS und ini Dateien ist die häufigste Lösung im Internet um die Scrollbalken wieder breiter zu machen.

Also alles äußerst unbefriedigend.

Jetzt zur eigentlichen Frage: Während ich nach einer Lösung für das Problem suche, fällt mir mein eigener Desktop (Ubuntu Unity 16.04) ins Auge. Da habe ich überall die guten alten Scrollbalken! Also einfach mal nachsehen was bei mir anders ist:

  • Die GTK CSS Dateien sind nicht verändert.

  • In ~/.config/gtk-3.0 gibt es keine eigenen Erzeugnisse, nur bookmarks

  • /etc/environment ist nicht geändert

  • overlay-scrollbar und overlay-scrollbar-gtk2 ist installiert

  • com.canonical.desktop.interface scrollbar mode steht auf overlay-auto

Jetzt habe ich das System so seit 14.04 und ich weiß wirklich nicht mehr wie ich das damals eingestellt habe o_O. Auf jeden Fall haben meine Anpassungen das Upgrade auf 16.04 überstanden.

Für Tipps wo ich noch nachsehen und mit dem neuen System vergleichen kann wäre ich überaus dankbar.

Bleys

(Themenstarter)
Avatar von Bleys

Anmeldungsdatum:
13. August 2006

Beiträge: 6053

Hier dann schon mal die GTK3 Lösung per CSS. Beantwortet noch nicht die Frage warum das in meinem System auch ohne diese Änderungen funktioniert.

Leere Datei erstellen: ~/.config/gtk-3.0/gtk.css

Inhalt:

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

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

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

.scrollbar.slider {
    background-color: alpha(@selected_bg_color, 0.6);
    border-radius: 5px;
}

.scrollbar.slider.hovering,
.scrollbar.slider.dragging {
    background-color: alpha(@selected_bg_color, 0.6);
    border-radius: 5px;
}

Diese Angaben überschreiben nur für den User des Home Verzeichnisses die Standard Einstellungen von /usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css

[Nachtrag 29.09.2017]

Manchmal sieht man den Wald vor lauter Bäumen nicht mehr.

In meinem Theme (Ambiance Dark blue) sind die Scrollbars so definiert:

/*************
 * scrollbar *
 *************/

.scrollbar,
.scrollbar.vertical {
    -GtkScrollbar-has-backward-stepper: 1;
    -GtkScrollbar-has-forward-stepper: 1;
    -GtkRange-slider-width: 14;

    border-radius: 4px;

    border-image: none;
}

.scrollbar.trough,
.scrollbar.trough.vertical {
    border-color: shade (@bg_color, 0.6);
}

.scrollbar.slider,
.scrollbar.button,
.scrollbar.slider.vertical,
.scrollbar.button.vertical {
    border-width: 1px;
    border-style: solid;
    border-color: shade (@bg_color, 0.6);
    background-image: linear-gradient(to right,
	                   	shade (@selected_bg_color, 1.25) ,
						shade (@selected_bg_color, 0.55) ,
	                    shade (@selected_bg_color, 0.45) );
}

.scrollbar.slider.horizontal,
.scrollbar.button.horizontal {
    background-image: linear-gradient(to bottom,
	                   	shade (@selected_bg_color, 1.25) ,
						shade (@selected_bg_color, 0.55) ,
	                    shade (@selected_bg_color, 0.45) );
}

.scrollbar.slider:hover{
    border-width: 1px;
    border-style: solid;
    border-color: shade (@bg_color, 0.6);
    background-image: linear-gradient(to right,
	                  	shade (@selected_bg_color, 1.25) ,
						shade (@selected_bg_color, 0.75) ,
	                    shade (@selected_bg_color, 0.65) );
}

.scrollbar.slider.horizontal:hover{
    border-width: 1px;
    border-style: solid;
    border-color: shade (@bg_color, 0.6);
    background-image: linear-gradient(to bottom,
	                   	shade (@selected_bg_color, 1.25) ,
						shade (@selected_bg_color, 0.75) ,
	                    shade (@selected_bg_color, 0.65) );
}

.scrollbar.slider:backdrop {
    background-image: none;
    background-color: shade (@bg_color, 0.6);
}

.scrollbar.slider.horizontal:backdrop {
    background-image: none;
    background-color: shade (@bg_color, 0.6);
}

/* overlay scrollbar */

OsThumb {
    color: shade (@fg_color, 1.6);
}

OsThumb:selected,
GtkScrollbar:selected {
    background-color: @selected_bg_color;
}

OsThumb:active,
GtkScrollbar:active {
    background-color: shade (@bg_color, 0.6);
}

OsThumb:insensitive,
GtkScrollbar:insensitive {
    background-color: shade (@bg_color, 0.85);
}

Es reicht also ein passendes Theme zu nutzen das die entsprechenden Anpassungen per Default mitbringt.

Antworten |