Comment puis-je obtenir une barre de défilement statique plus grande (barre de défilement normale)?


41

Je suis content que les barres de défilement extérieures soient enfin parties.

Mais la barre de défilement reste une mince ligne de rasoir qui devient une barre de défilement moins fine, mais qui reste quand même mince, lorsque la souris survole.

Comment puis-je obtenir une barre de défilement normale ? C'est-à-dire, comme dans d'autres systèmes d'exploitation, comme dans Firefox, une barre de défilement qui ne change pas en fonction de l'objectif de la souris et avec une belle largeur.

J'ai déjà essayé

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

mais pas de chance.


2
comment est-ce toujours un problème de dang et pas fixer / partie des arrangements de système standard? lordy il y a quatre ans, je suis furieux contre ubuntu et je suis allé dans les pâturages plus petits ... lol
neuronet

@neuronet Amen, frère
Steve Cohen

Réponses:


22

Éditez ce fichier /usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css

Recherchez cette ligne (autour de la ligne 1200): -GtkRange-slider-width: 10;

Et changez 10 en un nombre plus important comme 20 ou 30, et c'est fait :)

Je pense aussi qu'ils sont trop petits ...

Voir cette image:

entrez la description de l'image ici

Si vous modifiez la taille de la barre de défilement sur 16 et que vous souhaitez les conserver, sans réduire la taille de votre souris, apportez les modifications dans l'image ci-dessus.

Si vous utilisez une taille autre que 16, testez simplement la taille des marges pour obtenir le résultat souhaité.


1
Je l'ai mis à 16, et commenté tout le survol / glisser et maintenant les barres de défilement sont de bonnes vieilles barres statiques ... Elles sont toujours en train de disparaître après quelques secondes. Existe-t-il une fonction d'animation que je n'ai pas vue?
Simon

Ok, donc juste en dessous de l'endroit où vous avez fait le premier changement, vous verrez ceci: margin-left: 2px;ainsi que margin-rightet margin-top. Changez tous les trois de 2px à 7px et vos barres de défilement resteront larges.
Dorian

J'ai ajouté une photo à ma réponse pour tenter de bien comprendre ce que vous devez changer pour que les barres de défilement restent grandes.
Dorian

6
Merci beaucoup! Mon grand-père avait vraiment du mal avec les très petites barres de défilement, mais je l'ai changé en 25px et maintenant, il défile comme un pro!
Erty Seidohl

1
Remarque J'ai changé le mien à 24, et 7px était toujours la bonne taille à utiliser pour les marges afin de m'assurer qu'elle restait correcte en vol stationnaire. Notez également que vous devez redémarrer votre programme (par exemple, Firefox) pour vous assurer que vos modifications prennent effet. Bonne chose.
Neuronet

27

Je pense que vous devriez être prudent là-bas. Nous sommes nombreux à ne PAS recommander de modifier les paramètres par défaut du système pour un thème, à moins que vous n'ayez vraiment l'intention d'interférer avec l'activité de tous les comptes d'utilisateur du système. Si vous commettez une erreur en le faisant, cela affecte tous les comptes d'utilisateurs. Un autre point de prudence est que lorsque les packages sont mis à jour, vos modifications seront effacées.

Un autre inconvénient de cette stratégie est qu'elle ne modifie que le comportement d'un thème GTK, mais vous pouvez également modifier la taille de la barre de défilement dans TOUS les thèmes GTK-3.0.

Modifiez plutôt les fichiers de configuration dans un compte d'utilisateur. L'astuce consiste à déterminer laquelle est la distance la plus courte jusqu'au point final souhaité. Le fichier GTK que vous modifiez fait partie d'une configuration CSS (feuilles de style en cascade). La personnalisation que vous avez définie dans votre compte modifiera donc les paramètres.

Dans votre compte d'utilisateur, dans le dossier ~ / .config / gtk-3.0 / gtk.css, je l'ai actuellement dans un fichier appelé "gtk.css".

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

Si vous jouez un peu avec cela, vous constaterez qu'il est possible d'intégrer de nombreuses modifications spécifiques à partir du fichier de thème que vous avez modifié précédemment. À un moment donné, j'ai essayé très fort de manipuler de nombreux paramètres, mais je suis maintenant dans le mode "Restez simple"

Si vous voulez vraiment éditer beaucoup de paramètres, la bonne chose à faire est de copier le fichier entier gtk-widgets.css et de le placer dans votre dossier ~ / .config / gtk-3.0. Allez ensuite en ville en train de jouer avec les réglages.

Dans le même dossier, j'ai un fichier nommé "settings.ini"

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

Cela empêche un clic dans la barre de défilement de se déplacer à un certain point dans le fichier, au lieu de cela, il avance d'un seul écran. Je préfère cela!

L'autre chose à savoir est que le changement de ce fichier de thème (comme recommandé précédemment par @Dorian ou par un compte d'utilisateur pour tous les thèmes basés sur GTK-3.0 comme je le suggère) ne modifie que les programmes basés sur la boîte à outils GTK-3.0. Cela ne change pas la barre de défilement pour toutes les applications. Ce n'est que pour ceux qui lisent ce fichier de configuration gtk-3.0. Puisque vous éditez un thème gtk-3.0, les applications écrites avec QT ou gtk-2.0 ne changeront pas. Par conséquent, modifier la taille de la barre de défilement de tous les programmes est un peu plus difficile / fastidieux que vous ne le pensiez.

J'ai également changé la largeur de la barre de défilement dans gtk-2.0. Ceci est fait dans un dossier séparé ~ / .config / gtk-2.0. Le fichier à créer s'appelle gtkrc

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

Notez que gtk-2.0 est une configuration différente, donc la syntaxe est différente. Vous ne pouvez pas simplement copier le fichier css de gtk-3.0 dans le dossier gtk-2.0.

J'ai remarqué que certaines applications se comportaient mal lorsque vous rendiez la barre de défilement différente, car la taille du "grappin" à l'intérieur du curseur n'était pas redimensionnée correctement. Je pense que les modifications apportées au fichier de @ Dorian par une barre de défilement aideraient à cela. Je peux revenir et essayer cela. Je vous tiens au courant.

Résumé: La clé "des conseils des anciens administrateurs système Linux est" NE modifiez PAS les fichiers de configuration à l’échelle du système. Vous mettez votre système en péril, vos modifications ne dureront pas lors des révisions et cela nécessite un accès root, ce qui n'est jamais bon pour des choses esthétiques comme celle-ci. Trouvez un moyen d'apporter des modifications à votre compte d'utilisateur.

PS Si vous voulez vraiment manipuler les fichiers système (parfois, si je veux vraiment insister pour que tous les utilisateurs aient les couleurs de mon équipe de football préférées comme fond d'écran et jeu de couleurs :)), la première chose à faire est de faire une copie de le fichier d'origine et nommez-le "gtk-widgets.css.orig". Ensuite, lorsque vous éditez votre fichier, enregistrez une copie de votre édition sous le nom "gtk-widgets.css.20160919", sur laquelle figure la date AAAAMMJJ à la fin. Ainsi, lorsque le paquet deb sera mis à jour, vous aurez une copie de votre fichier édité. Celui que vous éditez nommé gtk-widgets.css sera effacé par l’installation du paquet.


Que signifie "fichier de thème que vous avez modifié ci-dessus"? "ci-dessus" ne veut rien dire ici.
endolith

10

Voici les étapes à suivre pour restaurer les barres de défilement qui ne disparaissent pas et ont une largeur permanente, c'est-à-dire "classiques". Testé dans une session GNOME Flashback sous Ubuntu 16.04 (fonctionne également dans Unity).

Étape 1. Faites une sauvegarde de /etc/environment. Courez sudo nano /etc/environmentet ajoutez la ligne suivante:

GTK_OVERLAY_SCROLLING=0

Cela empêchera le comportement de masquage automatique de la barre de défilement.

Étape 2. Afin d’éviter de manipuler le fichier de thème principal, /usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.cssnous empruntons du code, le modifions et le placons dans le dossier du profil de l’utilisateur. Créez ~/.config/gtk-3.0/gtk.csset mettez les prochaines lignes dedans:

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

Étape 3. Créez ~/.config/gtk-3.0/settings.iniet ajoutez les lignes suivantes:

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

Cela rétablit le comportement de défilement page par page lorsque vous cliquez sur la barre de défilement située de part et d'autre du curseur. Si ce fichier existe déjà, ajoutez simplement la dernière ligne de sa [Settings]section.

Étape 4. Désinstallez overlay-scrollbaret overlay-scrollbar-gtk2packages - vous n'en aurez plus besoin.

PS Si vous utilisez des applications nécessitant des droits de superutilisateur (Synaptic, Gedit, etc.), vous devez également placer ces fichiers gtk.csset les settings.inifichiers dans le dossier de profil de la racine:

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 Si vous trouvez que ces barres de défilement sont trop étroites pour vous, élargissez-les. Ajoutez simplement la ligne suivante à votre ~/.config/gtk-3.0/gtk.css:

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

Augmentez la largeur comme bon vous semble (la valeur par défaut est 10). Mettre à jour /root/.config/gtk-3.0/gtk.cssaussi, si nécessaire.


J'ai pu augmenter la largeur avec le seul élément:, .scrollbar {-GtkRange-slider-width: 15; …sans toutes les autres options que vous avez mentionnées. Mais ce n'était que sur une machine virtuelle. Quand j'ai essayé de faire la même chose sur un ordinateur de bureau, rien ne fonctionnait, même si j'avais essayé toutes les étapes. Je suppose qu’il ya un bogue dans Firefox 52, car sur la machine virtuelle, où la réponse a aidé, la barre de défilement a bien réagi lors de l’évènement de survol et s’est élargie automatiquement. Sur le bureau, il ne gère pas les survols (ce qui est en fait la raison pour laquelle j'ai besoin d'élargir la barre de défilement) et le fichier gtk.css est également ignoré
user907860

1
@ user907860 Bien au contraire, toutes les étapes mentionnées ci-dessus ont pour but d' ignorer complètement l'événement de survol. Ils sont nécessaires pour créer des barres de défilement fixes et permanentes qui ne changent jamais de largeur, comme ce fut le cas avant l’unité.
whtyger

Oui vous avez raison. Je voulais dire juste augmenter la largeur, sans toucher à la fonctionnalité de
survol

Au fait, n'avez-vous aucune idée, pourquoi cela ne fonctionne pas dans Firefox 52 sur un poste de travail, alors qu'il fonctionne sur une machine virtuelle? askubuntu.com/questions/892097/…
user907860

1
Cela devrait être la réponse acceptée. Jouer avec dconf et les thèmes a donné des résultats très étranges - pas superposés, mais pas normaux non plus. Cette réponse donne des barres de défilement normales. Cela doit être fait au niveau GTK. Remarque: Ubunutu se déplace bientôt vers Qt.
Dominic Cerisano

8

La modification -GtkRange-slider-widthn'a aucun effet sur le thème GTK + 3 par défaut. Au lieu de cela, vous pouvez faire ceci:

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

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

(Placez ce qui précède dans ~/.config/gtk-3.0/gtk.css.)


1
Où devrais-je l'ajouter?
Kenn

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

1
Fonctionne comme un charme sur Ubuntu 18.04. Merci!
Steve Cohen

9 mois plus tard: Cela fonctionne comme un charme sous Ubuntu 18.04 - SAUF que cela confond vraiment l'application GNUCash. Voir lists.gnucash.org/pipermail/gnucash-user/2019-Février/… . Ces modifications détruisent la fonctionnalité de la barre de défilement dans GNUCash, mais pas les autres applications. Soupir.
Steve Cohen

1
@SteveCohen, j'ai regardé le lien gnucash. Vous avez écrit "~ / .config / gtk-3.0.gtk.css" mais vous devriez le faire ~/.config/gtk-3.0/gtk.css. En outre, gnucash semble être une application gtk2 , pas une application gtk 3 .
Justice pour Monica le

4

J'utilise Ubuntu 18.04 et c'était la seule solution qui a changé la barre de défilement pour TOUT, de Firefox à LibreOffice pour gnome-terminal. Les solutions ci-dessus ont bien fonctionné pour une ou deux applications, mais pas pour tout.

Remarque: cela vous donne VRAIMENT de grosses barres de défilement qui conviennent aux grands moniteurs, car vous pouvez les voir du coin de l’œil sans regarder complètement sur le côté de l’écran chaque fois que vous voulez en saisir un. Si vous voulez des plus petites tailles, changez toutes les 70px en un nombre plus petit comme 20px ou 30px et ajustez en conséquence.

Mettez le texte suivant dans ~/.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;
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.