Question about GtkScrollbar class in custom themes

I actually managed to solve my question myself. I will explain here how for those who are interested:

In the folder /usr/share/themes/Zukitwo-Dark/gtk-3.0 edit as root the file gtk-widgets.css. Under /default/ include both lines

-GtkScrollbar-has-forward-stepper: 1;

-GtkScrollbar-has-backward-stepper: 1;

Make sure that the "stepper-size" is set to 13 (not 0)

-GtkRange-stepper-size: 13;

Include the same two lines in the part where is says

.scrollbar {

and also check the stepper-size. Then in the folder /usr/share/themes/Zukitwo-Dark/gtk-2.0 adjust the file "gtkrc": In the Scrollbar part, add

GtkScrollbar    ::has-backward-stepper      = 1

GtkScrollbar    ::has-forward-stepper       = 1

and again check the range:

GtkRange    ::stepper-size          = 13

This should take care of it all and the steppers (arrows) should be back after a logout/login.


Using Ubuntu 14.04, I successfully managed to get back my missing scrollbar arrows using the above information. However, I had to do a few more things.

I had to open System Settings -> Appearance to see which Theme I was using (Which turned out to be Radiance).

Then I had to go to /usr/share/themes and look for the folder that corresponded to the name of my Theme, ie /usr/share/themes/Radiance

Then, remembering to run gedit as root (launch it from a terminal using sudo gedit), I edited 2 files.

File #1

/usr/share/themes/Radiance/gtk-3.0/gtk-widgets.css

Search for "GtkRange-stepper-size" & you will find 1 instance. Check that it has a value of 13 (as below)

-GtkRange-stepper-size: 13;

then paste in these 2 lines directly below it:

-GtkScrollbar-has-forward-stepper: 1;
-GtkScrollbar-has-backward-stepper: 1;

Search for ".scrollbar," Then add the 3 lines, so it looks like this:

.scrollbar,
.scrollbar.vertical {
    -GtkScrollbar-has-backward-stepper: 1;
    -GtkScrollbar-has-forward-stepper: 1;
    -GtkRange-stepper-size: 13;
    -GtkRange-slider-width: 14;
    border-radius: 20px;
    border-image: none;

Save gtk-widgets.css and then open

File #2

/usr/share/themes/Radiance/gtk-2.0/gtkrc

search for "::stepper-size" & you will only find 1 instance

Check that it has a value of 13 (as below):

GtkRange::stepper-size = 13

7 or 8 lines below it you will find the GtkScrollbar entries:

GtkScrollbar::activate-slider = 1
GtkScrollbar::trough-border = 0
GtkScrollbar::slider-width = 13
GtkScrollbar::min-slider-length = 31

add the 2 lines below, so it looks like this:

GtkScrollbar::activate-slider = 1
GtkScrollbar::trough-border = 0
GtkScrollbar::slider-width = 13
GtkScrollbar::min-slider-length = 31
GtkScrollbar::has-backward-stepper = 1
GtkScrollbar::has-forward-stepper = 1

Then save both files.

#

For the record, I turned on normal scrollbars using this command from a standard user terminal (run it as your own user account, as it is your settings that you want to change):

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

I also turned on the Location Bar using:

gsettings set org.gnome.nautilus.preferences always-use-location-entry  true

and set Nautilus to always have a Delete button using:

gsettings set org.gnome.nautilus.preferences enable-delete  true

Don't forget to log off & log back on again for all your changes to show up.

Justin