Jak zmienić kolor paska przewijania?

20

Paski przewijania w Unity mają bardzo niski kontrast i nie widzę, gdzie pasek używa tylko widzenia peryferyjnego. Muszę spojrzeć na pasek przewijania.

Spójrz na interfejs Mac OS X i zauważ niebieski kontrastujący pasek przewijania. Nie musisz patrzeć na to bezpośrednio, aby zorientować się, gdzie jesteś na stronie.

Jak mogę to zmienić, aby miał większy kontrast i za każdym razem widzę, gdzie jestem?

culebrón
źródło
1
@ culebrón oto zrzut ekranu z rozmyciem radialnym i „niewidocznym” paskiem przewijania. Pozwolę ci dodać to do twojego pytania, jeśli chcesz.
Tom Brossman,
@ culebrón czy to pytanie może być problemem, z którym się borykasz?
Bruno Pereira
2
Powiązany raport o błędzie: Błąd # 563474
Christopher Kyle Horton
Sugerowanie nieodpowiedniego pytania dla witryn SE: Dlaczego programiści uważają, że pasek przewijania o niskim kontraście jest dobrym interfejsem użytkownika?
neuronet

Odpowiedzi:

19

Trochę późno, ale być może znalazłem całkiem fajne, łatwe rozwiązanie GUI:

gnome-wybór kolorów Zainstaluj gnome-color-selektor

ustawienia paska przewijania w Gnome Color Chooser

Najważniejsze:

  • Całkowicie rozwiązanie GUI, bez konieczności ręcznego manipulowania ~/.gtkrc
  • Zmienia tylko ustawienia, które sprawdzasz. Odznacz je, aby przywrócić domyślne.
  • Zmiany zostaną zastosowane natychmiast po kliknięciu Apply. Nie trzeba przełączać tematów tam iz powrotem
  • Nie ma potrzeby sudo (ale zmiany dotyczą tylko użytkownika)
  • Dotyczy tylko pasków przewijania „starszych” (tych, które wymagają naprawy). Pasek przewijania „nakładki” nie jest modyfikowany.

Zmiany są dość dyskretne: edytuje (lub tworzy), ~/.gtkrcaby dołączyć własny plik konfiguracyjny:

include ".gtkrc-2.0-gnome-color-chooser"

Ten plik jest również dość cienki:

style "gnome-color-chooser-scrollbar"
{
  bg[NORMAL] = "#ACACAC"
  bg[PRELIGHT] = "#808080"
  bg[ACTIVE] = "#ACACAC"
}
widget_class "*Scrollbar" style "gnome-color-chooser-scrollbar"

Przy okazji, wybrałem powyższe kolory z eksperymentów. Ładnie komponują się z „monochromatycznym” stylem Ambiance, ponieważ są nieco ciemniejsze (a przez to bardziej widoczne) niż domyślne.

Dopóki Firefox nie wyświetli pasków przewijania, jestem całkiem zadowolony z moich niestandardowych kolorów :)

MestreLion
źródło
Próbowałem tego w Unity Ubuntu 14.04, ale nie miało to żadnego wpływu na moje paski przewijania, które zauważyłem do tej pory (w tym po ponownym uruchomieniu).
neuronet
@neuronet: Tak, zauważyłem, że przestało to działać w najnowszych wersjach Firefoksa (od 45 lub 47)
MestreLion
Dlaczego bzdury programiści Unity nie mogą po prostu uczynić tego widocznym elementem ustawień systemowych? Czas, w którym denerwowałem się tym, mogłem opracować nowy system operacyjny. :)
neuronet
11

Zbudowałem na podstawie tego, co opisał culebrón i przypadkowo stworzyłem coś, co moim zdaniem jest niesamowite ...

Otwórz /usr/share/themes/Ambiance/gtk-2.0/gtkrcjako root do modyfikacji:

gksu gedit /usr/share/themes/Ambiance/gtk-2.0/gtkrc

Następnie zmodyfikuj pasującą sekcję w tym pliku do następującej (pamiętaj, aby wykonać kopię zapasową ustawień domyślnych, jeśli zmiany nie podobają Ci się):

style "scrollbar" = "button" {
    xthickness = 2
    ythickness = 2

    bg[NORMAL] = shade (0.62, @bg_color)
    bg[PRELIGHT] = shade (0.66, @bg_color)

    bg[ACTIVE] = shade (0.64, @bg_color)

    engine "murrine"
    {
        border_shades = {0.95, 0.90}
        roundness = 3
        contrast = 1.0
        trough_shades = {0.92, 0.98}
        lightborder_shade = 1.3
        glowstyle = 5
        glow_shade = 1.02
        gradient_shades = {1.2, 1.0, 1.0, 0.86}
        trough_border_shades = {0.9, 0.98}
    }
}

Zapisz, a następnie zastosuj zmiany, przełączając motywy lub wylogowując się.

Nowe, niesamowite i użyteczne paski przewijania mogą wyglądać następująco:

askuhn
źródło
Z jakiegoś powodu robienie tego w ogóle nie wpływa na paski przewijania terminali. Bawiłem się nawet, /usr/share/themes/Ambiance/gtk-2.0/apps/gnome-terminal.rcale nie miałem radości!
adarshr
Przepraszam, adarshr, ale nie jestem wystarczająco zaznajomiony z tematami, aby pomóc ci w paskach przewijania terminalu. Mam nadzieję, że ktoś inny może wskoczyć z rozwiązaniem. :)
askuhn
9

Powyższe powoduje zmianę paska przewijania dla aplikacji korzystających z plików motywu gtk2. Podobnie robi gnome-wybór kolorów (przynajmniej ten w bieżącym repozytorium). W przypadku aplikacji gtk3, takich jak gnome-terminal i gedit w 13.04 korzystających z gnome-fallback, trzeba to zmienić /usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css.

Aby to zrobić

sudo gedit /usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css

i zamień * scrollbar *sekcję na:

/*************
 * scrollbar *
 *************/
.scrollbar,
.scrollbar.vertical {
    -GtkScrollbar-has-backward-stepper: 0;
    -GtkScrollbar-has-forward-stepper: 0;
    -GtkRange-slider-width: 14;

    border-radius: 3px;

    border-image: none;
}

.scrollbar.trough,
.scrollbar.trough.vertical {
    border-color: shade (@bg_color, 0.64);
}

.scrollbar.trough.horizontal {
}

.scrollbar.slider,
.scrollbar.slider:hover,
.scrollbar.button,
.scrollbar.slider.vertical,
.scrollbar.slider.vertical:hover,
.scrollbar.button.vertical {
    border-width: 1px;
    border-style: solid;
    border-color: shade (@bg_color, 0.4);
    background-image: -gtk-gradient (linear, left top, right top,
                                     from (shade (@button_bg_color, 0.76)),
                                     to (shade (@button_bg_color, 0.62)));
    box-shadow: inset 1px 0 shade (@button_bg_color, 0.85),
                inset -1px 0 shade (@button_bg_color, 0.62),
                inset 0 1px shade (@button_bg_color, 0.9),
                inset 0 -1px shade (@button_bg_color, 0.62);
}

.scrollbar.slider.horizontal,
.scrollbar.slider.horizontal:hover,
.scrollbar.button.horizontal {
    background-image: -gtk-gradient (linear, left top, left bottom,
                                     from (shade (@button_bg_color, 0.76)),
                                     to (shade (@button_bg_color, 0.62)));
    box-shadow: inset 1px 0 shade (@button_bg_color, 0.85),
                inset -1px 0 shade (@button_bg_color, 0.62),
                inset 0 1px shade (@button_bg_color, 0.9),
                inset 0 -1px shade (@button_bg_color, 0.62);

}

.scrollbar.button,
.scrollbar.button:insensitive {
}

To daje pasek przewijania w gtk3, który wygląda następująco:

http://i.stack.imgur.com/m385G.png

Który jest trochę podobny do powyższego dla gtk2. Małe kleszcze i odpowiednie stepery nie są tu jednak uwzględnione.

Tom Andreas Nærland
źródło
Działa dla terminalu 14.04, dzięki.
markdsievers
3
Działa to świetnie w aplikacjach gtk3, takich jak Firefox 46 i nowszy. Zamiast modyfikować oryginalne pliki motywów, zmiany można dodać do ~ / .config / gtk-3.0 / gtk.css, nadając każdemu użytkownikowi swój preferowany wygląd, zachowując jednocześnie oryginały.
yoyoma2
8

Znaleziono rozwiązanie: sudo i otwórz /usr/share/themes/Ambiance/gtk-2.0/gtkrci znajdź ten kod:

style "scrollbar" = "button" {

Poniżej w nawiasach klamrowych zmień linie bg [COŚ], aby wyglądały następująco:

    bg[NORMAL] = @selected_bg_color
    bg[PRELIGHT] = shade (1.04, @selected_bg_color)

    bg[ACTIVE] = shade (0.96, @selected_bg_color)

Lub spójrz na kolory zadeklarowane w linii 1 pliku i wybierz ten, który preferujesz. Aby zaktualizować wygląd, w Ustawieniach systemu / Wygląd zmień motyw na inny i wróć do Ambiance.

edycja: Wygląda na to, że Xterm używa motywu Promieniowanie. Paski przewijania w świetle są czarne na czarnym i są po prostu niewidoczne. Tak stylowo, tak! Musisz też edytować ten motyw.

culebrón
źródło
Czy możesz złożyć raport o błędzie, aby powiadomić programistów - potrzebujemy konfigurowalnego koloru paska przewijania, a Twój przypadek użycia to podświetli. dzięki.
fossfreedom
@fossfreedom, myślę, że możesz edytować „Unity” z „paska przewijania Unity”, ponieważ myślę, że OP odnosi się do konwencjonalnych pasków przewijania (gtk-2.0), które widzimy na przykład w LibreOffice i Firefox. Pozostawienie „Jedności” na miejscu może sprawiać wrażenie, że mówi się o „nowych” paskach przewijania nakładki.
@ vasa1 - Pozwolę OP odpowiedzieć na to ...
fossfreedom
Lepszym pomysłem może być dokonanie tej modyfikacji w katalogu użytkownika zamiast w całym systemie
Jorge Castro,
1

Chociaż nie jest to bezpośrednia odpowiedź na pytanie, jeśli nie lubisz nowych pasków przewijania (nie obwiniam cię, są one dość przerażające, moim zdaniem), możesz powrócić do standardowych pasków przewijania, uruchamiając następujące polecenie:

sudo apt-get remove overlay-scrollbar liboverlay-scrollbar3-0.2-0 liboverlay-scrollbar-0.2-0
AClockWorkLemon
źródło
Możliwe, że OP dotyczy konwencjonalnych pasków przewijania, a nie paska przewijania nakładki, ponieważ /usr/share/themes/Ambiance/gtk-2.0/gtkrcpomogła edycja .
Nie mam nic przeciwko, wyglądają stylowo, ale „stylowa” rzecz jest oczywiście przesadzona, kosztem użyteczności. To samo dotyczy mody pisania małymi literami lub wielkimi literami „ubuntu”. Im mniej drążków wystaje poza linię, tym gorsza jest czytelność.
culebrón
Pytanie oczywiście dotyczy konwencjonalnego (lub „starszego”) paska przewijania, ponieważ ten ma słaby kontrast. Nowy styl nakładki może Ci się nie podobać, ale jego cienka pomarańczowa na szaro przynajmniej ma odpowiedni kontrast.
MestreLion
0

Inna alternatywa:

Niektóre motywy z kolorowymi paskami przewijania (Adwaita, NewLooks itp.) Mają paski przewijania, które można łatwo zmienić, zmieniając selected_bg_colorustawienie za pomocą dconf-editor: Jak zmienić kolor „Wybranych elementów”?

dgo.a
źródło