Jak uzyskać większy statyczny pasek przewijania (inaczej zwykły pasek przewijania)?


40

Cieszę się, że zewnętrzne paski przewijania w końcu zniknęły.

Ale pasek przewijania jest nadal cienką jak brzytwa linią, która zmienia się w mniej cienki pasek przewijania, ale wciąż cienki pasek przewijania, gdy mysz się unosi.

Jak mogę uzyskać normalny pasek przewijania? To znaczy, podobnie jak w innych systemach operacyjnych, takich jak Firefox, pasek przewijania, który nie zmienia się w zależności od tego, na co wskazuje mysz, i ma niezłą szerokość.

Już próbowałem

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

ale bez powodzenia.


2
jak to wciąż jest problem, a nie naprawić / część standardowych ustawień systemu? lordy cztery lata temu szalę dość ubuntu z powodu takich rzeczy i poszedłem na lepsze pastwiska ... lol
neuronet

@neuronet Amen, brat
Steve Cohen

Odpowiedzi:


22

Edytuj ten plik /usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css

Poszukaj tej linii (wokół linii 1200): -GtkRange-suwak-szerokość: 10;

I zmień 10 na większą, np. 20 lub 30, i gotowe :)

Myślę też, że są za małe ...

Zobacz ten obraz:

wprowadź opis zdjęcia tutaj

Jeśli zmienisz rozmiar paska przewijania na 16 i chcesz, aby pozostały w ten sposób i nie zmniejszały się, gdy nie masz myszy, wprowadź zmiany na powyższym obrazku.

Jeśli używasz rozmiaru innego niż 16, po prostu eksperymentuj z rozmiarami marginesów, aby uzyskać właściwy rozmiar.


1
Ustawiłem go na 16 i skomentowałem wszystkie ruchy kursorem / przeciąganiem, a teraz paski przewijania są stare, dobre, statyczne ... Mimo to po kilku sekundach wciąż znikają. Czy jest jakaś funkcja animacji, której nie widziałem?
Simon

Ok, więc zaraz poniżej miejsca, w którym wprowadziłeś pierwszą zmianę, zobaczysz te: margin-left: 2px;a także margin-righti margin-top. Zmień wszystkie trzy z 2px na 7px, a paski przewijania pozostaną szerokie.
Dorian

Dodałem zdjęcie do mojej odpowiedzi, aby wyjaśnić, co należy zmienić, aby paski przewijania pozostały duże.
Dorian

6
Dziękuję bardzo! Mój dziadek naprawdę zmagał się z bardzo małymi paskami przewijania, ale zmieniłem go na 25px, a teraz przewija się jak profesjonalista!
Erty Seidohl,

1
Uwaga: Zmieniłem mój na 24, a 7px było nadal odpowiednim rozmiarem, aby mieć pewność, że pozostanie on prawidłowy po najechaniu myszą. Pamiętaj również, aby ponownie uruchomić program (np. Firefox), aby upewnić się, że zmiany zostaną wprowadzone. Wspaniała rzecz.
neuronet

26

Myślę, że powinieneś być ostrożny. Wielu z nas NIE zaleca edytowania domyślnych ustawień systemowych dla motywu, chyba że naprawdę masz zamiar zakłócać aktywność wszystkich kont użytkowników w systemie. Jeśli popełnisz błąd, będzie to miało wpływ na wszystkie konta użytkowników. Inną ostrożnością jest to, że kiedy pakiety są aktualizowane, zmiany zostaną usunięte.

Kolejną wadą tej strategii jest to, że zmienia ona tylko zachowanie jednego motywu GTK, ale możesz chcieć zmienić rozmiar paska przewijania we WSZYSTKICH motywach GTK-3.0.

Zamiast tego edytuj pliki konfiguracyjne na koncie użytkownika. Sztuczka polega na ustaleniu, która z nich jest najkrótszą odległością od pożądanego punktu końcowego. Plik GTK, który edytujesz, jest częścią konfiguracji CSS (Cascading Style Sheets), więc dostosowanie wprowadzone na koncie zmodyfikuje ustawienia.

Na twoim koncie użytkownika, w folderze ~ / .config / gtk-3.0 / gtk.css, mam go obecnie w pliku o nazwie „gtk.css”

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

Jeśli trochę się z tym bawisz, zauważysz, że można zintegrować wiele konkretnych zmian z pliku motywu, który edytowałeś powyżej. Pewnego razu bardzo starałem się manipulować wieloma ustawieniami, ale teraz jestem w trybie „zachowaj prostotę”.

Jeśli naprawdę chcesz edytować wiele ustawień, właściwą rzeczą jest skopiowanie całego pliku gtk-widgets.css i umieszczenie go w folderze ~ / .config / gtk-3.0. Następnie idź do miasta majstrując przy ustawieniach.

W tym samym folderze mam plik o nazwie „settings.ini”

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

Zapobiega to przesunięciu kliknięcia na pasku przewijania do określonego miejsca w pliku, zamiast tego przesuwa się tylko o jeden ekran. Wolę to!

Inną rzeczą, o której warto wiedzieć, jest to, że zmiana tego pliku motywu (zgodnie z zaleceniami @Dorian lub zmiana konta użytkownika dla wszystkich motywów opartych na GTK-3.0, jak sugeruję) zmienia tylko programy oparte na zestawie narzędzi GTK-3.0. Nie zmienia paska przewijania dla wszystkich aplikacji. Tylko dla tych, którzy czytają ten plik konfiguracyjny gtk-3.0. Ponieważ edytujesz motyw GTK-3.0, aplikacje napisane za pomocą QT lub GTK-2.0 nie ulegną zmianie. Dlatego zmiana rozmiaru paska przewijania wszystkich programów jest trudniejsza / bardziej nużąca niż można się spodziewać.

Zmieniłem również szerokość paska przewijania w gtk-2.0. Odbywa się to w osobnym folderze ~ / .config / gtk-2.0. Plik do utworzenia ma nazwę gtkrc

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

Zauważ, że gtk-2.0 to inaczej zaprojektowana konfiguracja, więc składnia jest inna, nie możesz po prostu skopiować css gtk-3.0 do folderu gtk-2.0.

Zauważyłem, że niektóre aplikacje źle się zachowują, gdy zmienisz pasek przewijania, ponieważ rozmiar „grabbera” wewnątrz koryta suwaka nie jest odpowiednio zmieniany. Podejrzewam, że zmiany przeciągnięcia paska przewijania w pliku @ Doriana byłyby w tym pomocne. Mogę wrócić i spróbować. Dam ci znać.

Podsumowanie: Kluczową „dawną radą administratora systemu Linux jest” NIE edytuj plików konfiguracyjnych w całym systemie. Narażasz swój system, twoje zmiany nie będą trwać w różnych wersjach i wymaga dostępu do katalogu głównego, co nigdy nie jest dobre dla takich kosmetycznych rzeczy. Znajdź sposób na wprowadzenie zmian na swoim koncie użytkownika.

PS. Jeśli naprawdę chcesz bawić się plikami systemowymi (czasami robię to, jeśli naprawdę chcę nalegać, aby wszyscy użytkownicy mieli moje ulubione kolory drużyn piłkarskich jako tapetę i schemat kolorów :)), pierwszą rzeczą, którą powinieneś zrobić, to zrobić kopię oryginalny plik i nazwij oryginalny plik „gtk-widgets.css.orig”. Następnie, kiedy edytujesz swój plik, zapisz jego kopię jako „gtk-widgets.css.20160919”, gdzie na końcu mam datę RRRRMMDD. W ten sposób, po aktualizacji pakietu deb, będziesz mieć kopię edytowanego pliku. Ten, który edytujesz o nazwie gtk-widgets.css, zostanie usunięty przez instalację pakietu.


Czego dotyczy „plik motywu, który edytowałeś powyżej”? „powyżej” nic tu nie znaczy.
endolith

9

Oto kroki, aby przywrócić paski przewijania, które nie znikają i mają stałą szerokość, tj. „Klasyczne”. Testowany w sesji GNOME Flashback w Ubuntu 16.04 (działa również w Unity).

Krok 1. Wykonaj kopię zapasową /etc/environment. Uruchom sudo nano /etc/environmenti dodaj tam następną linię:

GTK_OVERLAY_SCROLLING=0

Zapobiegnie to zachowaniu autohide paska przewijania.

Krok 2. Aby uniknąć manipulacji przy głównym pliku motywu /usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css, stamtąd pożyczamy trochę kodu, zmieniamy go i umieszczamy w folderze profilu użytkownika. Utwórz ~/.config/gtk-3.0/gtk.cssi umieść w nim kolejne wiersze:

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

Krok 3. Utwórz ~/.config/gtk-3.0/settings.inii dodaj do niego kolejne linie:

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

To przywróci zachowanie przewijania strona po stronie, po kliknięciu paska przewijania po obu stronach suwaka. Jeśli ten plik już istnieje, po prostu dodaj ostatni wiersz w jego [Settings]sekcji.

Krok 4. Odinstaluj overlay-scrollbari overlay-scrollbar-gtk2pakiety - już ich nie będziesz potrzebować.

PS Jeśli korzystasz z niektórych aplikacji wymagających uprawnień administratora (np. Synaptic, Gedit itp.), Powinieneś również umieścić te gtk.cssi settings.inipliki w folderze profilu roota:

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 Jeśli stwierdzisz, że te paski przewijania są dla Ciebie zbyt wąskie, zwiększ je. Po prostu dodaj następny wiersz do ~/.config/gtk-3.0/gtk.css:

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

Zwiększ szerokość według uznania (domyślnie jest to 10). Zaktualizuj /root/.config/gtk-3.0/gtk.cssrównież, jeśli to konieczne.


Byłem w stanie zwiększyć szerokość o jedyny element:, .scrollbar {-GtkRange-slider-width: 15; …bez wszystkich innych opcji, o których wspomniałeś. Ale to było tylko na maszynie wirtualnej. Kiedy próbowałem zrobić to samo na pulpicie, nic nie działało, chociaż próbowałem wszystkich kroków. Podejrzewam, że jest błąd w Firefoksie 52, ponieważ na maszynie wirtualnej, gdzie odpowiedź pomogła, pasek przewijania zareagował poprawnie na zdarzenie najechania kursorem i automatycznie się rozszerzył. Na pulpicie nie obsługuje przeciągnięć (co jest właściwie powodem, dla którego muszę poszerzyć pasek przewijania), a plik gtk.css jest również ignorowany
user907860,

1
@ user907860 Wręcz przeciwnie, wszystkie powyższe kroki mają na celu całkowite zignorowanie zdarzenia hover. Są potrzebne do tworzenia statycznych, trwałych pasków przewijania, które nigdy nie zmieniają szerokości, jak to miało miejsce w erze sprzed jedności.
whtyger

tak, masz rację. Miałem na myśli jedynie zwiększenie szerokości bez dotykania funkcji aktywowania
użytkownik907860,

nawiasem mówiąc, nie masz pojęcia, dlaczego to nie działa w Firefoksie 52 na komputerze, a na maszynie wirtualnej? askubuntu.com/questions/892097/…
user907860

1
To powinna być zaakceptowana odpowiedź. Bałagan z dconfem i motywami dawał bardzo dziwne wyniki - nie nakładki, ale też nie były normalne. Ta odpowiedź daje normalne paski przewijania. Należy to zrobić na poziomie GTK. Uwaga: Ubunutu wkrótce wprowadzi się do Qt.
Dominic Cerisano,

8

Zmiana -GtkRange-slider-widthnie ma wpływu na domyślny motyw GTK + 3. Zamiast tego możesz to zrobić:

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

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

(Umieść powyższe w ~/.config/gtk-3.0/gtk.css.)


1
gdzie powinienem to dodać?
kenn

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

1
Działa jak urok w Ubuntu 18.04. Dzięki!
Steve Cohen

9 miesięcy później: Działa to jak urok w Ubuntu 18.04 - Z WYJĄTKIEM, że dezorientuje, do cholery, z aplikacji GNUCash. Zobacz lists.gnucash.org/pipermail/gnucash-user/2019- lutego lutego . Wprowadzenie tych zmian niszczy funkcjonalność paska przewijania w GNUCash, ale nie w innych aplikacjach. Westchnienie.
Steve Cohen

1
@ SteveCohen, spojrzałem na link gnucash. Napisałeś „~ / .config / gtk-3.0.gtk.css”, ale tak powinno być ~/.config/gtk-3.0/gtk.css. Ponadto gnucash wydaje się być aplikacją gtk2 , a nie aplikacją gtk 3 .
Sprawiedliwość dla Moniki

4

Używam Ubuntu 18.04 i było to jedyne rozwiązanie, które zmieniło pasek przewijania WSZYSTKIEGO, z Firefoksa na LibreOffice na gnome-terminal. Powyższe rozwiązania działały dobrze dla jednej lub dwóch aplikacji, ale nie dla wszystkich.

Uwaga: daje to NAPRAWDĘ duże paski przewijania, które są dobre dla dużych monitorów, ponieważ można je zobaczyć kątem oka, bez konieczności patrzenia w bok ekranu za każdym razem, gdy chcesz go złapać. Jeśli chcesz mniejszych, zmień wszystkie 70px na mniejsze, takie jak 20px lub 30px i odpowiednio dostosuj.

Umieść następujący tekst w ~/.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;
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.