web-dev-qa-db-fra.com

Barre de défilement GTK avec auge transparente ou non

Est-il possible dans GTK-2 ou/et GTK-3 de supprimer le creux de la barre de défilement ou de le rendre invisible?

Je sais qu'il existe des scripts pour supprimer les steppers de la barre de défilement, tels que:

GtkScrollbar::has-forward-stepper = 0

Maintenant, je veux savoir s’il existe un tel script pour supprimer le creux.

En d'autres termes, la barre de défilement GTK se trouve à la fin du contenu, mais je souhaite l'insérer par-dessus le contenu - comme pour la barre de défilement Overlay.

EDIT: Clarifions ma question. J’ai modifié les thèmes GTK-2 et GTK-3 pour que les barres de défilement ressemblent davantage à la superposition puisque je n’aime pas les barres de défilement larges à faible contraste. J'ai donc édité des fichiers gtkrc et gtk-widgets.css pour changer la couleur du curseur en orange et le creux en blanc, mais comme le montre la capture d'écran ci-dessous, le contraste entre le creux et un fond sombre est gênant.

gtk-2 white trough on a dark background

La question est ici s'il est possible de complètement supprimer le creux ou de le rendre transparent . Je suppose que ce dernier est possible.

Mon idéal est quelque chose comme ça:

Terminal with Overlay scrollbar which has no trough

2
Alen

Les couleurs transparentes (RGBA) sont possibles dans GTK- en utilisant alpha, donc pour rendre le creux transparent:

.scrollbar.trough,
.scrollbar.trough.vertical {
    border: alpha (@base_color, 0.0);
    background: alpha (@base_color, 0.0);
}

Je ne connais pas encore GTK-2.

2
Alen

Je ne suis pas sûr d'avoir bien compris votre question mais ...

J'utilise Lubuntu 13.04 avec le thème Greybird (Sudo apt-get install shimmer-themes). J'ai fortement modifié les aspects gtk2 et gtk3 selon mes goûts. L'image montre un peu une fenêtre de gedit (en haut) et un peu de mon gestionnaire de fichiers, Thunar (ci-dessous). Comme vous pouvez le constater, le creux n’est pas vraiment caractéristique.

 scrollbar trough

Pour obtenir cet effet, si c'est ce que vous cherchez, j'ai édité ~/.themes/MyGreybird/gtk-2.0/gtkrc et ~/.themes/MyGreybird/gtk-3.0/gtk.css et ~/.themes/MyGreybird/gtk-3.0/gtk-widgets.css.

Malheureusement, je ne peux vraiment pas dire si c'est ce hack qui m'a donné le look actuel. Si vous cherchez quelque chose comme ce que j'ai, essayez de modifier les fichiers similaires à ceux que j'ai mentionnés en recherchant des éléments tels que:

  • GtkScrollbar ::trough-border
  • prelight_shade ... # niveau de nuance pour le curseur, le style de liste déroulante (1) et l'état de préchauffage de la barre de défilement avec gradient_colors
  • trough_shades # dessine un dégradé sur les creux de GtkScrollbar et GtkProgressbar

Ceux-ci sont dans gtkrc et je les ai commentés dans mon thème en ayant # au début de la ligne.

Ensuite, dans gtk-widgets.css, mon thème a:

.scrollbars-junction,
.scrollbar.trough,
.scrollbar.trough.vertical {
    border-width: 0;
    border-radius: 0;
/*    background-image: -gtk-gradient(linear, left top, right top,
                                     from (shade(@theme_bg_color, 1.1)),
                                     to (shade(@theme_bg_color, 1.3)));*/
    background-color: shade(@theme_bg_color, 0.9);
}

.scrollbar.trough.horizontal {
/*    background-image: -gtk-gradient(linear, left top, left bottom,
                                     from (shade(@theme_bg_color, 1.1)),
                                     to (shade(@theme_bg_color, 1.3)));*/
    background-color: shade(@theme_bg_color, 0.9);
}

Encore une fois, j'ai commenté certaines choses (en utilisant /* et */).

Je ne suis pas sûr d'avoir eu beaucoup de sens, mais, fondamentalement, il suffit de rechercher des éléments pertinents et de les commenter ou de les modifier!

J'utilise gedit comme éditeur avec un plug-in qui enregistre plusieurs sauvegardes horodatées afin que, si je casse quelque chose, je puisse annuler les modifications.

Veuillez noter que certaines applications peuvent avoir leur propre système de barres de défilement et que vous devrez les manipuler séparément.

1
user25656