Come posso ottenere una barra di scorrimento statica più grande (aka barra di scorrimento normale)?


41

Sono contento che le barre di scorrimento della sovrapposizione esterna siano finalmente scomparse.

Ma la barra di scorrimento è ancora una linea sottile come un rasoio che diventa una barra di scorrimento meno sottile, ma ancora una barra di scorrimento sottile, quando il mouse è sospeso.

Come posso ottenere una normale barra di scorrimento? Cioè, come in altri sistemi operativi, come in Firefox, una barra di scorrimento che non cambia a seconda di ciò che punta il mouse e con una buona larghezza.

Ci ho già provato

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

ma senza fortuna.


2
come è ancora un problema di pericolo e non correggere / parte delle impostazioni di sistema standard? Lord, quattro anni fa, ho fatto arrabbiare abbastanza Ubuntu per cose come questa e sono andato a pascoli più piccoli ... lol
neuronet,

@neuronet Amen, fratello
Steve Cohen,

Risposte:


22

Modifica questo file /usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css

Cerca questa riga (attorno alla riga 1200): -GtkRange-slider-width: 10;

E cambia 10 in un numero più grande come 20 o 30 e fatto :)

Penso anche che siano troppo piccoli ...

Vedi questa immagine:

inserisci qui la descrizione dell'immagine

Se si modifica la dimensione della barra di scorrimento su 16 e si desidera che rimangano in questo modo e non si riducano quando non si utilizza il mouse, apportare le modifiche nell'immagine sopra.

Se usi una dimensione diversa da 16, prova le dimensioni del margine per farlo bene.


1
L'ho impostato su 16 e ho commentato tutte le cose al passaggio del mouse / trascinamento e ora le barre di scorrimento sono buone vecchie statiche ... Stanno comunque scomparendo dopo alcuni secondi. C'è qualche funzione di animazione che non ho visto?
Simone,

Ok, quindi proprio sotto il punto in cui hai apportato la prima modifica, vedrai questi: margin-left: 2px;così come margin-righte margin-top. Cambia tutti e tre questi da 2px a 7px e le barre di scorrimento rimarranno larghe.
Dorian,

Ho aggiunto un'immagine alla mia risposta per cercare di chiarire cosa è necessario modificare affinché le barre di scorrimento rimangano grandi.
Dorian,

6
Grazie mille! Mio nonno stava davvero lottando con le barre di scorrimento molto piccole, ma l'ho cambiato in 25px e ora sta scorrendo come un professionista!
Erty Seidohl,

1
Nota ho cambiato il mio in 24 e 7px era ancora la dimensione giusta da utilizzare per i margini per assicurarsi che rimanesse corretto al passaggio del mouse. Nota inoltre di riavviare il programma (ad es. Firefox) per assicurarti che le modifiche abbiano effetto. Grande cosa.
neuronet,

27

Penso che dovresti essere cauto lì. Molti di noi NON consigliano di modificare le impostazioni predefinite a livello di sistema per un tema, a meno che non si intenda realmente interferire con l'attività di tutti gli account utente nel sistema. Se ti capita di fare un errore mentre lo fai, influisce su tutti gli account utente. Un altro punto di attenzione è che quando i pacchetti vengono aggiornati, le modifiche verranno cancellate.

Un altro difetto di questa strategia è che cambia solo il comportamento di un tema GTK, ma potresti voler cambiare la dimensione della barra di scorrimento in TUTTI i temi GTK-3.0.

Invece, modifica i file di configurazione all'interno di un account utente. Il trucco è capire quale è la distanza più breve dall'endpoint desiderato. Il file GTK che modifichi fa parte di un'impostazione CSS (Cascading Style Sheets), quindi la personalizzazione che hai inserito nel tuo account modificherà le impostazioni.

Nel tuo account utente, nella cartella ~ / .config / gtk-3.0 / gtk.css al momento ho questo in un file chiamato "gtk.css"

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

Se ci provi un po ', scoprirai che è possibile integrare molte modifiche specifiche dal file del tema che stavi modificando sopra. Un tempo ho provato molto a manipolare molte impostazioni, ma ora sono in modalità "Mantieni semplice".

Se vuoi davvero modificare molte impostazioni, la cosa giusta da fare è COPIARE l'intero file gtk-widgets.css e metterlo nella cartella ~ / .config / gtk-3.0. Quindi vai in città a giocherellare con le impostazioni.

Nella stessa cartella, ho un file chiamato "settings.ini"

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

Ciò impedisce a un clic nella barra di scorrimento di spostarsi in un determinato punto del file, invece avanza di una sola schermata. Lo preferisco!

L'altra cosa che vale la pena sapere è che cambiare quel file di temi (o come precedentemente raccomandato da @Dorian o da una modifica dell'account utente per tutti i temi basati su GTK-3.0 come suggerisco) cambia solo i programmi basati sul toolkit GTK-3.0. Non cambia la barra di scorrimento per tutte le applicazioni. È solo per quelli che leggono quel file di configurazione gtk-3.0. Poiché stai modificando un tema GTK-3.0, le app scritte con QT o GTK-2.0 non cambieranno. Quindi, cambiare la dimensione della barra di scorrimento di tutti i programmi è piuttosto più difficile / noioso di quanto ci si possa aspettare.

Ho modificato anche la larghezza della barra di scorrimento in GTK-2.0. Questo viene fatto in una cartella separata ~ / .config / gtk-2.0. Il file da creare si chiama gtkrc

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

Nota che gtk-2.0 è un'installazione progettata in modo diverso, quindi la sintassi è diversa, non puoi semplicemente copiare il CSS gtk-3.0 nella cartella gtk-2.0.

Ho notato che alcune applicazioni si comportano male quando si rende diversa la barra di scorrimento perché la dimensione del "grabber" all'interno del dispositivo di scorrimento non viene ridimensionata correttamente. Sospetto che le modifiche del trascinamento della barra di scorrimento nel file di @ Dorian possano essere d'aiuto. Potrei tornare e provarlo. Ti farò sapere.

Riepilogo: la chiave "vecchio consiglio di amministratore di sistema Linux è" NON modificare i file di configurazione su base di sistema. Stai mettendo a rischio il tuo sistema, le modifiche non dureranno per tutte le revisioni e richiede l'accesso alla radice, il che non è mai positivo per cose cosmetiche come questa. Trova un modo per apportare modifiche al tuo account utente.

PS. Se vuoi davvero giocherellare con i file di sistema (a volte lo faccio se voglio davvero insistere che tutti gli utenti abbiano i miei colori preferiti della mia squadra di calcio come sfondo e combinazione di colori :)), la prima cosa che dovresti fare è fare una copia di il file originale e denominare l'originale "gtk-widgets.css.orig". Quindi, quando modifichi il tuo file, salva una copia della modifica come "gtk-widgets.css.20160919", dove ho la data AAAAMMGG alla fine. In questo modo, quando il pacchetto deb viene aggiornato, avrai una copia del tuo file modificato. Quello che modificherai chiamato gtk-widgets.css sarà cancellato dall'installazione del pacchetto.


A cosa si riferisce il "file del tema che stavi modificando sopra"? "sopra" non significa nulla qui.
endolito l'

10

Ecco i passaggi per ripristinare le barre di scorrimento che non scompaiono e hanno una larghezza permanente, ovvero quelle "classiche". Testato nella sessione GNOME Flashback in Ubuntu 16.04 (funziona anche in Unity).

Passaggio 1. Effettuare un backup di /etc/environment. Esegui sudo nano /etc/environmente aggiungi lì la riga successiva:

GTK_OVERLAY_SCROLLING=0

Ciò impedirà il comportamento di autohide della barra di scorrimento.

Passaggio 2. Per evitare la manomissione del file del tema principale /usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css, prenderemo in prestito un po 'di codice da lì, lo altereremo e lo inseriremo nella cartella del profilo utente. Crea ~/.config/gtk-3.0/gtk.csse inserisci le righe successive in esso:

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

Passaggio 3. Creare ~/.config/gtk-3.0/settings.inie aggiungere le righe successive in esso:

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

Ciò ripristinerà il comportamento di scorrimento pagina per pagina quando si fa clic sulla barra di scorrimento su entrambi i lati del dispositivo di scorrimento. Se questo file esiste già, aggiungi l'ultima riga nella [Settings]sezione di esso.

Passaggio 4. Disinstallazione overlay-scrollbare overlay-scrollbar-gtk2pacchetti: non saranno più necessari.

PS Se usi alcune applicazioni che richiedono diritti di superutente (ad esempio Synaptic, Gedit ecc.), Dovresti anche inserire questi gtk.csse settings.inifile nella cartella del profilo di root:

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 Se trovi che queste barre di scorrimento sono troppo strette per te, rendile più ampie. Aggiungi la riga successiva al tuo ~/.config/gtk-3.0/gtk.css:

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

Aumenta la larghezza come ritieni opportuno (il valore predefinito è 10). Aggiorna /root/.config/gtk-3.0/gtk.cssanche, se necessario.


Sono stato in grado di aumentare la larghezza con l'unico elemento:, .scrollbar {-GtkRange-slider-width: 15; …senza tutte le altre opzioni che hai citato. Ma questo era solo su una macchina virtuale. Quando ho provato a fare lo stesso su un desktop, nulla ha funzionato, sebbene avessi provato tutti i passaggi. Suppongo che ci sia un bug in Firefox 52, perché sulla macchina virtuale, dove la risposta ha aiutato, la barra di scorrimento ha reagito correttamente per l'evento hover e si è allargata automaticamente. Sul desktop non gestisce gli hovers (che in realtà è il motivo, perché ho bisogno di allargare la barra di scorrimento) e anche gtk.css viene ignorato
user907860

1
@ user907860 Al contrario, tutti i passaggi sopra menzionati intendono ignorare completamente l'evento hover. Sono necessari per creare barre di scorrimento statiche e permanenti che non cambiano mai la loro larghezza, come era nell'era pre-Unity.
whtyger

sì hai ragione. Intendevo solo aumentare la larghezza, senza toccare la funzionalità hover
user907860

a proposito, non hai idea, perché questo non funziona in Firefox 52 su un desktop, mentre su una macchina virtuale? askubuntu.com/questions/892097/…
user907860

1
Questa dovrebbe essere la risposta accettata. Fare casini con dconf e temi ha dato risultati molto strani - non sovrapposti, ma neanche normali. Questa risposta fornisce normali barre di scorrimento. Deve essere fatto a livello di GTK. Nota: Ubunutu si trasferirà presto a Qt.
Domenico Cerisano,

8

La modifica -GtkRange-slider-widthnon ha alcun effetto sul tema GTK + 3 predefinito. Invece, puoi farlo:

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

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

(Posizionare quanto sopra in ~/.config/gtk-3.0/gtk.css.)


1
dove dovrei aggiungerlo?
gennaio

@kenn~/.config/gtk-3.0/gtk.css
Vladimir Panteleev,

1
Funziona come un incantesimo su Ubuntu 18.04. Grazie!
Steve Cohen,

9 mesi dopo: Funziona come un incantesimo sotto Ubuntu 18.04 - TRANNE che confonde il diavolo dall'applicazione GNUCash. Vedi lists.gnucash.org/pipermail/gnucash-user/2019-February/… . Apportare queste modifiche distrugge la funzionalità della barra di scorrimento in GNUCash, ma non altre app. Sospiro.
Steve Cohen,

1
@SteveCohen, ho guardato il link gnucash. Hai scritto "~ / .config / gtk-3.0.gtk.css" ma dovrebbe essere ~/.config/gtk-3.0/gtk.css. Inoltre, gnucash sembra essere un'applicazione gtk2 , non un'applicazione gtk 3 .
Giustizia per Monica il

4

Sto usando Ubuntu 18.04 e questa è stata l'unica soluzione che ha cambiato la barra di scorrimento di TUTTO, da Firefox a LibreOffice a gnome-terminal. Le soluzioni sopra hanno funzionato bene per una o due applicazioni ma non per tutto.

Nota: questo ti dà DAVVERO grandi barre di scorrimento che sono buone per monitor di grandi dimensioni perché puoi vederle con la coda dell'occhio senza guardare fino al lato dello schermo ogni volta che vuoi afferrarne una. Se vuoi quelli più piccoli, cambia tutti i 70px in un numero più piccolo come 20px o 30px e modifica di conseguenza.

Inserisci il seguente testo in ~/.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;
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.