Wie bekomme ich eine größere statische Bildlaufleiste (auch bekannt als normale Bildlaufleiste)?

40

Ich bin froh, dass die Bildlaufleisten für die Außenüberlagerung endlich verschwunden sind.

Aber die Bildlaufleiste ist immer noch eine hauchdünne Linie, die zu einer weniger hauchdünnen Bildlaufleiste wird, aber immer noch eine dünne Bildlaufleiste, wenn die Maus schwebt.

Wie kann ich eine normale Bildlaufleiste bekommen? Dh, wie in anderen Betriebssystemen, wie in Firefox, eine Bildlaufleiste, die sich nicht ändert, je nachdem, auf was die Maus zeigt, und eine schöne Breite hat.

Ich habe es schon versucht

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

aber kein glück.

Simon
quelle
2
wie ist das noch ein doofes problem und nicht fix / teil der standard systemeinstellungen? lordy vor vier jahren habe ich mich ubuntu über solche sachen geärgert und bin auf mintere weiden gegangen ... lol
neuronet 12.11.17
@neuronet Amen, Bruder
Steve Cohen

Antworten:

22

Bearbeiten Sie diese Datei /usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css

Suchen Sie nach dieser Zeile (um die Zeile 1200): -GtkRange-slider-width: 10;

Und ändern Sie 10 zu einer größeren Zahl wie 20 oder 30 und fertig :)

Ich finde sie auch zu klein ...

Siehe dieses Bild:

Bildbeschreibung hier eingeben

Wenn Sie die Größe der Bildlaufleiste auf 16 ändern und möchten, dass sie so bleiben und nicht verkleinert werden, wenn Sie nicht mit der Maus darauf sind, nehmen Sie die Änderungen in der obigen Abbildung vor.

Wenn Sie eine andere Größe als 16 verwenden, experimentieren Sie einfach mit den Randgrößen, um es richtig zu machen.

Dorian
quelle
1
Ich habe es auf 16 gesetzt und all das Hover / Drag-Zeug kommentiert und jetzt sind die Bildlaufleisten gute alte statische ... Sie verschwinden jedoch immer noch nach ein paar Sekunden. Gibt es eine Animationsfunktion, die ich nicht gesehen habe?
Simon
Ok, genau dort, wo du die erste Änderung vorgenommen hast, siehst du diese: margin-left: 2px;sowie margin-rightund margin-top. Ändern Sie alle drei von 2px auf 7px und Ihre Bildlaufleisten bleiben breit.
Dorian
Ich habe meiner Antwort ein Bild hinzugefügt, um zu verdeutlichen, was Sie ändern müssen, damit die Bildlaufleisten groß bleiben.
Dorian
6
Ich danke dir sehr! Mein Großvater hatte wirklich Probleme mit den sehr kleinen Bildlaufleisten, aber ich habe sie auf 25px geändert und jetzt scrollt er wie ein Profi!
Erty Seidohl
1
Beachten Sie, dass ich meine auf 24 geändert habe und 7px immer noch die richtige Größe für die Ränder hatte, um sicherzustellen, dass sie beim Schweben korrekt blieben. Beachten Sie auch, dass Sie Ihr Programm (z. B. Firefox) neu starten müssen, damit Ihre Änderungen wirksam werden. Tolle Sache.
Neuronet
26

Ich denke, Sie sollten dort vorsichtig sein. Viele von uns empfehlen, die systemweiten Standardeinstellungen für ein Thema NICHT zu bearbeiten, es sei denn, Sie beabsichtigen wirklich, die Aktivität aller Benutzerkonten im System zu beeinträchtigen. Wenn Sie dabei einen Fehler machen, wirkt sich dies auf alle Benutzerkonten aus. Ein weiterer Punkt der Vorsicht ist, dass Ihre Änderungen beim Aktualisieren von Paketen gelöscht werden.

Ein weiteres Manko dieser Strategie besteht darin, dass nur das Verhalten eines GTK-Themas geändert wird. Möglicherweise möchten Sie jedoch die Bildlaufleistengröße in ALLEN GTK-3.0-Themes ändern.

Bearbeiten Sie stattdessen Konfigurationsdateien in einem Benutzerkonto. Der Trick besteht darin, herauszufinden, welcher die kürzeste Entfernung zum gewünschten Endpunkt ist. Die von Ihnen bearbeitete GTK-Datei ist Teil eines CSS-Setups (Cascading Style Sheets). Durch die in Ihrem Konto vorgenommene Anpassung werden die Einstellungen geändert.

In Ihrem Benutzerkonto im Ordner ~ / .config / gtk-3.0 / gtk.css habe ich dies derzeit in einer Datei namens "gtk.css"

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

Wenn Sie ein wenig damit herumspielen, werden Sie feststellen, dass es möglich ist, viele spezifische Änderungen aus der oben bearbeiteten Designdatei zu integrieren. Früher habe ich mich sehr bemüht, viele Einstellungen zu ändern, aber jetzt bin ich im Modus "Einfach halten".

Wenn Sie wirklich viele Einstellungen bearbeiten möchten, müssen Sie die gesamte Datei gtk-widgets.css KOPIEREN und in Ihrem Ordner ~ / .config / gtk-3.0 ablegen. Dann gehst du in die Stadt und spielst mit den Einstellungen.

Im selben Ordner habe ich eine Datei namens "settings.ini"

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

Auf diese Weise wird verhindert, dass ein Klick in der Bildlaufleiste zu einem bestimmten Punkt in der Datei verschoben wird. Stattdessen wird nur ein Bildschirm weitergeschaltet. Ich bevorzuge das!

Die andere Sache, die es zu wissen gilt, ist, dass das Ändern dieser Themendatei (entweder wie zuvor von @Dorian empfohlen oder durch eine Änderung des Benutzerkontos für alle GTK-3.0-basierten Themen, wie ich vorschlage) nur Programme ändert, die auf dem GTK-3.0-Toolkit basieren. Die Bildlaufleiste wird nicht für alle Anwendungen geändert. Es ist nur für diejenigen, die diese gtk-3.0 Konfigurationsdatei lesen. Da Sie ein GTK-3.0-Thema bearbeiten, werden Apps, die mit QT oder GTK-2.0 geschrieben wurden, nicht geändert. Daher ist das Ändern der Bildlaufleistengröße für alle Programme schwieriger / langwieriger als erwartet.

Ich habe auch die Breite der Bildlaufleiste in GTK-2.0 geändert. Dies geschieht in einem separaten Ordner ~ / .config / gtk-2.0. Die zu erstellende Datei heißt gtkrc

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

Beachten Sie, dass gtk-2.0 ein anders gestaltetes Setup ist, sodass die Syntax anders ist. Sie können das gtk-3.0-CSS nicht einfach in den gtk-2.0-Ordner kopieren.

Ich habe festgestellt, dass sich einige Anwendungen schlecht verhalten, wenn Sie die Bildlaufleiste anders einstellen, da die Größe des "Grabbers" im Schiebereglertrog nicht korrekt angepasst wird. Ich vermute, dass das Ziehen der Bildlaufleiste in @ Dorians Datei dabei helfen würde. Ich kann zurückkommen und das versuchen. Ich lasse es dich wissen.

Zusammenfassung: Der Schlüssel zum "alten Linux-Systemadministrator-Rat" lautet: Bearbeiten Sie Konfigurationsdateien NICHT systemweit. Sie setzen Ihr System einem Risiko aus, Ihre Änderungen werden nicht über Revisionen hinweg wirksam und es ist ein Root-Zugriff erforderlich, der für solche kosmetischen Dinge niemals geeignet ist. Finden Sie eine Möglichkeit, Änderungen in Ihrem Benutzerkonto vorzunehmen.

PS. Wenn Sie wirklich mit Systemdateien experimentieren möchten (manchmal, wenn ich wirklich darauf bestehen möchte, dass alle Benutzer die Farben meiner Lieblingsfußballmannschaft als Hintergrundbild und Farbschema haben :)), sollten Sie zuerst eine Kopie davon erstellen die ursprüngliche Datei und benennen Sie die ursprüngliche "gtk-widgets.css.orig". Wenn Sie dann Ihre Datei bearbeiten, speichern Sie eine Kopie Ihrer Bearbeitung unter dem Namen "gtk-widgets.css.20160919". Am Ende steht das Datum JJJJMMTT. Auf diese Weise erhalten Sie beim Aktualisieren des Deb-Pakets eine Kopie Ihrer bearbeiteten Datei. Die Datei mit dem Namen gtk-widgets.css, die Sie bearbeiten, wird durch die Paketinstallation gelöscht.

pauljohn32
quelle
Worauf bezieht sich "Themendatei, die Sie oben bearbeitet haben"? "oben" bedeutet hier nichts.
Endolith
9

Hier sind die Schritte zum Wiederherstellen der Bildlaufleisten, die nicht verschwinden und eine permanente Breite haben, dh "klassische". Getestet in der GNOME Flashback-Sitzung in Ubuntu 16.04 (funktioniert auch in Unity).

Schritt 1. Erstellen Sie eine Sicherungskopie von /etc/environment. Führen sudo nano /etc/environmentSie die folgende Zeile aus und fügen Sie sie hinzu:

GTK_OVERLAY_SCROLLING=0

Dies verhindert das automatische Ausblenden der Bildlaufleiste.

Schritt 2. Um Manipulationen an der Hauptthemadatei zu vermeiden, /usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.cssleihen wir Code von dort aus, ändern ihn und speichern ihn im Benutzerprofilordner. Erstellen ~/.config/gtk-3.0/gtk.cssund fügen Sie die nächsten Zeilen ein:

/* 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;
}

Schritt 3. Erstellen ~/.config/gtk-3.0/settings.iniund fügen Sie die nächsten Zeilen hinzu:

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

Dadurch wird das Bildlaufverhalten Seite für Seite wiederhergestellt, wenn Sie auf die Bildlaufleiste auf beiden Seiten des Schiebereglers klicken. Wenn diese Datei bereits vorhanden ist, fügen Sie einfach die letzte Zeile im [Settings]Abschnitt hinzu.

Schritt 4. Deinstallieren overlay-scrollbarund overlay-scrollbar-gtk2Pakete - Sie brauchen sie nicht mehr.

PS Wenn Sie einige Anwendungen verwenden, für die Superuser-Rechte erforderlich sind (z. B. Synaptic, Gedit usw.), sollten Sie diese gtk.cssund settings.iniDateien auch im Profilordner des Stammverzeichnisses ablegen:

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 Wenn Sie feststellen, dass diese Bildlaufleisten zu schmal für Sie sind, erweitern Sie sie. Fügen Sie einfach die nächste Zeile hinzu ~/.config/gtk-3.0/gtk.css:

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

Erhöhen Sie die Breite nach Belieben (die Standardeinstellung ist 10). Aktualisieren Sie /root/.config/gtk-3.0/gtk.cssauch, wenn nötig.

whtyger
quelle
Ich konnte die Breite mit dem einzigen Element erhöhen: .scrollbar {-GtkRange-slider-width: 15; …ohne alle anderen Optionen, die Sie erwähnt haben. Dies war jedoch nur auf einer virtuellen Maschine möglich. Als ich versuchte, dasselbe auf einem Desktop zu tun, funktionierte nichts, obwohl ich alle Schritte ausprobiert hatte. Es gibt vermutlich einen Fehler in Firefox 52, da auf der virtuellen Maschine, auf der die Antwort geholfen hat, die Bildlaufleiste korrekt auf das Schwebeflugereignis reagiert und sich automatisch erweitert hat. Auf dem Desktop werden Schwebeflüge nicht verarbeitet (was eigentlich der Grund ist, warum ich die Bildlaufleiste erweitern muss), und die Datei gtk.css wird ebenfalls ignoriert
user907860 11.03.17
1
@ user907860 Im Gegenteil, alle oben genannten Schritte sollen das Hover-Ereignis vollständig ignorieren . Sie werden benötigt, um statische, permanente Bildlaufleisten zu erstellen, deren Breite sich nicht ändert, wie es in der Ära vor der Einheit der Fall war.
13.
Ja du hast Recht. Ich meinte nur die Breite zu erhöhen, ohne die Hover-Funktionalität zu berühren
user907860
Übrigens, haben Sie keine Ahnung, warum dies in Firefox 52 auf einem Desktop nicht funktioniert, während es auf einer virtuellen Maschine funktioniert? askubuntu.com/questions/892097/…
user907860
1
Dies sollte die akzeptierte Antwort sein. Das Spielen mit dconf und Themen ergab sehr seltsame Ergebnisse - kein Overlay, aber auch nicht normal. Diese Antwort enthält normale Bildlaufleisten. Dies muss auf GTK-Ebene erfolgen. Hinweis: Ubunutu wechselt bald zu Qt.
Dominic Cerisano
8

Das Ändern -GtkRange-slider-widthhat keine Auswirkungen auf das Standard-GTK + 3-Thema. Stattdessen können Sie dies tun:

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

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

(Legen Sie die oben in ~/.config/gtk-3.0/gtk.css.)

Vladimir Panteleev
quelle
1
wo soll ich es hinzufügen
kenn
@kenn~/.config/gtk-3.0/gtk.css
Vladimir Panteleev
1
Funktioniert wie ein Zauber auf Ubuntu 18.04. Vielen Dank!
Steve Cohen
9 Monate später: Dies funktioniert wie ein Zauber unter Ubuntu 18.04 - mit der Ausnahme, dass es die GNUCash-Anwendung zum Teufel macht. Siehe lists.gnucash.org/pipermail/gnucash-user/2019-February/… . Wenn Sie diese Änderungen vornehmen, wird die Bildlaufleistenfunktionalität in GNUCash zerstört, jedoch nicht in anderen Apps. Seufzer.
Steve Cohen
1
@SteveCohen, ich habe mir den Gnucash-Link angesehen. Sie haben "~ / .config / gtk-3.0.gtk.css" geschrieben, aber es sollte so sein ~/.config/gtk-3.0/gtk.css. Auch gnucash erscheint eine zu gtk2 Anwendung, kein gtk 3 Anwendung.
Gerechtigkeit für Monica
4

Ich benutze Ubuntu 18.04 und dies war die einzige Lösung, die die Bildlaufleiste für ALLES änderte, von Firefox über LibreOffice zu Gnome-Terminal. Die obigen Lösungen haben für ein oder zwei Anwendungen gut funktioniert, aber nicht für alles.

Hinweis: Auf diese Weise erhalten Sie WIRKLICH große Bildlaufleisten, die sich für große Monitore eignen, da Sie sie aus dem Augenwinkel sehen können, ohne jedes Mal, wenn Sie eine auswählen, ganz zur Seite des Bildschirms zu schauen. Wenn Sie kleinere möchten, ändern Sie alle 70px auf eine kleinere Zahl wie 20px oder 30px und passen Sie sie entsprechend an.

Fügen Sie den folgenden Text ein ~/.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;
}
s. wolfe
quelle