Daha büyük bir statik kaydırma çubuğunu (normal kaydırma çubuğu) nasıl alabilirim?


40

Dış kaplama kaydırma çubuklarının nihayet gittiğine sevindim.

Ancak kaydırma çubuğu, fare durduğunda daha az bir tıraş bıçağı olacak şekilde ince bir çubuktur, ancak yine de ince kaydırma çubuğudur.

Normal bir kaydırma çubuğunu nasıl alabilirim ? Yani, diğer işletim sistemlerinde olduğu gibi, Firefox'ta olduğu gibi, farenin gösterdiğine ve hoş bir genişliğe bağlı olarak değişmeyen bir kaydırma çubuğu.

Çoktan denedim

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

ama hayır şans.


2
Bu nasıl hala bir sorun ve standart sistem ayarlarının bir kısmını / nasıl çözülmeyeceği? lordy dört yıl önce ben böyle şeyler üzerinde oldukça ubuntu öfke ve miniter meralar gitti ... lol
neuronet 12:17

@neuronet Amen, kardeşi
Steve Cohen

Yanıtlar:


22

Bu dosyayı düzenleyin /usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css

Bu çizgiyi arayın (1200 çizgi civarında): -GtkRange-slider-width: 10;

Ve 10'u 20 ya da 30 gibi daha büyük bir sayıya getirin ve tamam :)

Ayrıca çok küçük olduklarını düşünüyorum.

Bu resme bakın:

görüntü tanımını buraya girin

Kaydırma çubuğu boyutunu 16 olarak değiştirirseniz ve bu şekilde kalmalarını istiyorsanız ve üzerinde fareniz olmadığında küçülmemesini istiyorsanız, yukarıdaki resimde değişiklik yapın.

16'dan farklı bir boyut kullanıyorsanız, doğru elde etmek için kenar boşluğu boyutlarını deneyin.


1
16'ya ayarladım ve tüm gezdir / sürükle öğelerini yorumladım ve şimdi kaydırma çubukları iyi eski statik olanlar ... Yine de birkaç saniye sonra kayboluyorlar. Görmedim bazı animasyon işlevi var mı?
Simon

Tamam, ilk değişikliği yaptığınız yerin hemen altında, bunları göreceksiniz: margin-left: 2px;hem de margin-rightve margin-top. Bunların üçünü de 2px'den 7px'e değiştirdiğinizde kaydırma çubuklarınız geniş kalacaktır.
Dorian

Kaydırma çubuklarının geniş kalması için neyi değiştirmeniz gerektiğini açıklamak için cevabıma bir resim ekledim.
Dorian,

6
Çok teşekkür ederim! Büyükbabam çok küçük kaydırma çubuklarıyla mücadele ediyordu, ama 25 piksel olarak değiştirdim ve şimdi bir profesyonel gibi kayıyor!
Erty Seidohl

1
Not Madeni 24 olarak değiştirdim ve 7 piksel hala üzerinde dururken doğru kaldığından emin olmak için marjları kullanmak için doğru boyuttaydı. Ayrıca, değişikliklerin yürürlüğe girdiğinden emin olmak için programınızı (ör. Firefox) yeniden başlattığınızdan da emin olun. Güzel şey.
nöronet

26

Bence orada dikkatli olmalısın. Birçoğumuz, sistemdeki tüm kullanıcı hesaplarının faaliyetine müdahale etmeyi düşünmüyorsanız, bir tema için sistem genelindeki varsayılan ayarları düzenlemenizi önermeyeceğiz. Bunu yaparken bir hata yaparsanız, o zaman tüm kullanıcı hesaplarını etkiler. Dikkat edilecek diğer bir nokta ise, paketler güncellendiğinde değişikliklerin silineceğidir.

Bu stratejinin bir başka eksikliği, yalnızca bir GTK temasının davranışını değiştirmesidir, ancak TÜM GTK-3.0 temalarındaki kaydırma çubuğu boyutunu değiştirmek isteyebilirsiniz.

Bunun yerine, bir kullanıcı hesabındaki yapılandırma dosyalarını düzenleyin. İşin püf noktası, hangisinin istenen son noktaya en kısa mesafe olduğunu bulmaktır. Düzenlediğiniz GTK dosyası bir CSS (Cascading Style Sheets) kurulumunun bir parçası olduğundan, hesabınıza koyduğunuz kişiselleştirme ayarları değiştirecektir.

Kullanıcı hesabınızda ~ / .config / gtk-3.0 / gtk.css klasöründe şu anda "gtk.css" adlı bir dosyada var.

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

Bununla biraz oynarsanız, yukarıda düzenlediğiniz tema dosyasındaki birçok özel değişikliği entegre etmenin mümkün olduğunu göreceksiniz. Bir zamanlar birçok ayarı yapmak için çok uğraştım ama şimdi "basit tut" modundayım.

Gerçekten çok fazla ayar düzenlemek istiyorsanız, yapılacak doğru şey tüm gtk-widgets.css dosyasını KOPYALAMAK ve bunu ~ / .config / gtk-3.0 klasörüne koymaktır. Sonra ayarlarla kasabayı kasabaya gidin.

Aynı klasörde "settings.ini" isimli bir dosyam var.

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

Bu, kaydırma çubuğundaki bir tıklamanın dosyada belirli bir noktaya gitmesini önler, bunun yerine yalnızca bir ekran ilerler. Bunu tercih ederim!

Bilmeye değer olan diğer bir şey, bu tema dosyasının değiştirilmesinin (daha önce @Dorian tarafından veya bir kullanıcı hesabı tarafından önerildiği gibi, tüm GTK-3.0 tabanlı temalar için önerdiğim gibi) değiştirilmesinin yalnızca GTK-3.0 araç setine dayalı programları değiştirmesidir. Tüm uygulamalar için kaydırma çubuğunu değiştirmez. Sadece bu gtk-3.0 config dosyasını okuyanlar içindir. Bir gtk-3.0 temasını düzenlediğinizden, QT veya gtk-2.0 ile yazılmış uygulamalar değişmez. Bu nedenle, tüm programların kaydırma çubuğu boyutunu değiştirmek, beklediğinizden daha zor / sıkıcıdır.

Kaydırma çubuğu genişliğini gtk-2.0'da da değiştirdim. Bu, ~ / .config / gtk-2.0 ayrı bir klasörde yapılır. Oluşturulacak dosyanın adı gtkrc'dir.

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

Gtk-2.0'ın farklı şekilde tasarlanmış bir kurulum olduğunu ve sözdiziminin farklı olduğunu unutmayın; yalnızca gtk-3.0 css’i gtk-2.0 klasörüne kopyalayamazsınız.

Kaydırma çubuğunun içindeki "kapmak" boyutu doğru şekilde yeniden boyutlandırılmadığından, kaydırma çubuğunu farklı yaptığınızda bazı uygulamaların kötü davrandığını fark ettim. @ Dorian'ın dosyasındaki kaydırma çubuğu sürükleme değişikliklerinin buna yardımcı olacağından şüpheleniyorum. Geri gelip bunu deneyebilirim. Seni bilgilendirecegim.

Özet: Anahtar "eski zaman Linux sistem yöneticisi tavsiyesi" sisteminizde konfigürasyon dosyalarını YAPMAYIN. Sisteminizi riske sokuyorsunuz, değişiklikleriniz revizyonlar boyunca sürmeyecek ve böyle kozmetik ürünler için asla iyi olmayan kök erişimi gerektiriyor. Kullanıcı hesabınızda değişiklik yapmanın bir yolunu bulun.

PS. Eğer gerçekten sistem dosyaları ile uğraşmak istiyorsanız (bazen tüm kullanıcıların en sevdiğim futbol takımı renklerine duvar kağıdı ve renk şeması olarak sahip olma konusunda ısrar etmek istersem :)), yapmanız gereken ilk şey bir kopyasını çıkarmak. Özgün dosyayı ve özgün "gtk-widgets.css.orig" olarak adlandırın. Ardından dosyanızı düzenlediğinizde, düzenlemenizin bir kopyasını "gtk-widgets.css.20160919" olarak kaydedin; burada YYYYMMDD tarihini yazdım. Bu şekilde, deb paketi güncellendiğinde, düzenlenen dosyanızın bir kopyası elinizde olur. Düzenlemiş olduğunuz gtk-widgets.css adlı paket kurulumuyla silinecek.


"Yukarıda düzenlediğiniz tema dosyası" ne anlama geliyor? "yukarıda" burada hiçbir şey ifade etmiyor.
Mart’taki endolith

9

Kaybolan ve sabit genişliğe sahip, yani "klasik" olanlar da dahil olmak üzere kaydırma çubuklarını geri yükleme adımları. GNOME Flashback oturumunda Ubuntu 16.04'te test edilmiştir (Unity'de de çalışır).

Adım 1. Bir yedeğini alın /etc/environment. Çalıştırın sudo nano /etc/environmentve sonraki satırı buraya ekleyin:

GTK_OVERLAY_SCROLLING=0

Bu kaydırma çubuğunun autohide davranışını önleyecektir.

Adım 2. Ana tema dosyasına müdahale etmemek için /usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css, buradan bir miktar ödünç alacağız, onu değiştirip kullanıcı profili klasörüne koyacağız. ~/.config/gtk-3.0/gtk.cssBir sonraki satırları oluşturun ve içine yerleştirin:

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

Adım 3.~/.config/gtk-3.0/settings.ini Bir sonraki satırları oluşturun ve içine ekleyin:

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

Bu, kaydırıcının her iki tarafındaki kaydırma çubuğunu tıklattığınızda sayfa sayfa kaydırma davranışını geri yükler. Bu dosya zaten mevcutsa, [Settings]bölüme son satırı eklemeniz yeterlidir .

Adım 4. Kaldırma overlay-scrollbarve overlay-scrollbar-gtk2paketler - artık bunlara ihtiyacınız olmayacak.

PS Süper kullanıcı haklarına ihtiyaç duyan bazı uygulamalar kullanıyorsanız (örn. Synaptic, Gedit vb.), Ayrıca bunları gtk.cssve settings.inidosyaları kökün profil klasörüne yerleştirmelisiniz:

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 Bu kaydırma çubuklarının sizin için çok dar olduğunu tespit ederseniz, onları daha da genişletin. Sadece bir sonraki satırı eklemek için ~/.config/gtk-3.0/gtk.css:

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

Uygun gördüğünüz gibi genişliği artırın (varsayılan 10'dur). /root/.config/gtk-3.0/gtk.cssGerekirse, ayrıca güncelleyin .


Genişliği tek öğeyle arttırmayı başardım:, .scrollbar {-GtkRange-slider-width: 15; …bahsettiğiniz diğer tüm seçenekler olmadan. Ancak bu sadece sanal bir makinedeydi. Aynı şeyi bir masaüstünde yapmaya çalıştığımda hiçbir şey işe yaramadı, ancak tüm adımları denedim. Varsayalım ki, Firefox 52'de bir hata var, çünkü cevabın yardım ettiği sanal makinede kaydırma çubuğu vurgulu olayı için doğru tepki verdi ve otomatik olarak genişledi. Masaüstünde gezdiricileri işlemez (bu aslında kaydırma çubuğunu genişletmek zorunda olmama sebebidir) ve gtk.cs'ler de dikkate alınmaz
user907860

1
@ user907860 Aksine, yukarıda belirtilen tüm adımların durma olayını tamamen göz ardı etmesi amaçlanmıştır . Birlik öncesi dönemde olduğu gibi, genişliklerini asla değiştirmeyen statik, kalıcı kaydırma çubukları yapmaları gerekir.
whtyger 13.03.17

Evet haklısın. Vurgulu işlevselliğine dokunmadan sadece genişliğin artırılmasını kastediyordum
user907860

Bu arada, neden bir masaüstünde Firefox 52'de sanal bir makinede çalışırken bunun işe yaramadığını bilmiyor musunuz? askubuntu.com/questions/892097/…
user907860 13:17

1
Bu kabul edilen cevap olmalı. Dconf ve temalarla uğraşmak çok garip sonuçlar verdi - bindirme değil, normal değil. Bu cevap normal kaydırma çubuklarını verir. GTK seviyesinde yapılması gerekiyor. Not: Ubunutu yakında Qt'ye geçiyor.
Dominic Cerisano

8

Değişimin -GtkRange-slider-widthvarsayılan GTK + 3 teması üzerinde etkisi yoktur. Bunun yerine, bunu yapabilirsiniz:

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

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

(Yukarıdakileri yerleştirin ~/.config/gtk-3.0/gtk.css.)


1
nereye ekleyeyim?
kenn

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

1
18.04 Ubuntu'da bir cazibe gibi çalışır. Teşekkürler!
Steve Cohen

9 ay sonra: Bu, Ubuntu 18.04 uyarınca bir cazibe işlevi görüyor. Bkz lists.gnucash.org/pipermail/gnucash-user/2019-February/... . Bu değişikliklerin yapılması, GNUCash'ta kaydırma çubuğu işlevselliğini yok eder ancak diğer uygulamaları değil. İç çekmek.
Steve Cohen

1
@SteveCohen, gnucash bağlantısına baktım. "~ / .Config / gtk-3.0.gtk.css" yazdınız ama öyle olmalı ~/.config/gtk-3.0/gtk.css. Ayrıca, gnucash bir gtk 3 uygulaması değil, bir gtk2 uygulaması gibi görünmektedir .
DK Bose

4

Ubuntu 18.04 kullanıyorum ve bu, HERKES için kaydırma çubuğunu Firefox'tan LibreOffice'e ve gnome-terminal'e çeviren tek çözümdü. Yukarıdaki çözümler bir veya iki uygulama için gayet iyi çalıştı ancak her şey için değil.

Not: Bu, büyük monitörler için iyi olan GERÇEKTEN büyük kaydırma çubukları verir, çünkü onları bir kez kapmak istediğinizde ekranın kenarına tam bakmadan gözünüzün köşesinden görebilirsiniz. Küçük olanları istiyorsanız, tüm 70px'leri 20px veya 30px gibi daha küçük bir sayıya değiştirin ve uygun şekilde ayarlayın.

Aşağıdaki metni içine yerleştirin ~/.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;
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.