Bagaimana cara saya mendapatkan scrollbar statis yang lebih besar (alias scrollbar normal)?

40

Saya senang scrollbar overlay luar akhirnya hilang.

Tapi scrollbar masih berupa garis tipis silet yang menjadi scrollbar tipis, tapi scrollbar masih tipis, ketika mouse melayang.

Bagaimana saya bisa mendapatkan scrollbar normal ? Yaitu, seperti di OS lain, seperti di Firefox, bilah gulir yang tidak berubah tergantung pada tujuan mouse, dan dengan lebar yang bagus.

Saya sudah mencoba

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

tapi tidak berhasil.

Simon
sumber
2
bagaimana ini masih masalah dang dan tidak memperbaiki / bagian dari pengaturan sistem standar? Lordy empat tahun yang lalu saya mengamuk cukup ubuntu atas hal-hal seperti ini dan pergi ke padang rumput mintier ... lol
neuronet
@neuronet Amen, kakak
Steve Cohen

Jawaban:

22

Edit file ini /usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css

Cari baris ini (sekitar baris 1200): -GtkRange-slider-width: 10;

Dan ubah 10 ke angka yang lebih besar seperti 20 atau 30, dan selesai :)

Saya juga berpikir mereka terlalu kecil ...

Lihat gambar ini:

masukkan deskripsi gambar di sini

Jika Anda mengubah ukuran scrollbar menjadi 16 dan Anda ingin mereka tetap seperti itu, dan tidak menyusut ketika Anda tidak memiliki mouse di atasnya, maka buat perubahan pada gambar di atas.

Jika Anda menggunakan ukuran selain 16, coba saja dengan ukuran margin untuk memperbaikinya.

Dorian
sumber
1
Saya mengaturnya ke 16, dan berkomentar semua hal hover / drag dan sekarang scrollbar adalah yang statis lama yang baik ... Mereka masih menghilang setelah beberapa detik. Apakah ada fungsi animasi yang tidak saya lihat?
Simon
Ok, jadi tepat di bawah di mana Anda membuat perubahan pertama yang Anda akan melihat ini: margin-left: 2px;serta margin-rightdan margin-top. Ubah ketiganya dari 2px menjadi 7px dan scrollbar Anda akan tetap lebar.
Dorian
Saya menambahkan foto ke jawaban saya untuk mencoba menjelaskan apa yang perlu Anda ubah agar bilah gulir tetap besar.
Dorian
6
Terima kasih banyak! Kakek saya benar-benar berjuang dengan scroll bar yang sangat kecil, tapi saya mengubahnya menjadi 25px dan sekarang dia bergulir seperti pro!
Erty Seidohl
1
Catatan saya mengubah milik saya menjadi 24, dan 7px masih ukuran yang tepat untuk digunakan untuk margin untuk memastikan itu tetap benar pada hover. Catatan juga pastikan untuk memulai kembali program Anda (misalnya, Firefox) untuk memastikan perubahan Anda mulai berlaku. Hal yang hebat.
neuronet
26

Saya pikir Anda harus berhati-hati di sana. Banyak dari kita TIDAK akan merekomendasikan Anda mengedit default seluruh sistem untuk tema, kecuali jika Anda benar-benar ingin mengganggu aktivitas semua akun pengguna dalam sistem. Jika Anda membuat kesalahan saat melakukan itu, maka itu memengaruhi semua akun pengguna. Hal lain yang perlu diperhatikan adalah ketika paket diperbarui, perubahan Anda akan dihapus.

Kelemahan lain dari strategi ini adalah bahwa itu hanya mengubah perilaku satu tema GTK, tetapi Anda mungkin ingin mengubah ukuran bilah gulir di SEMUA tema GTK-3.0.

Alih-alih, edit file konfigurasi di dalam akun pengguna. Caranya adalah dengan mencari tahu mana yang merupakan jarak terpendek ke titik akhir yang diinginkan. File GTK yang Anda edit adalah bagian dari pengaturan CSS (Cascading Style Sheets), sehingga kustomisasi yang Anda masukkan ke akun Anda akan mengubah pengaturan.

Di akun pengguna Anda, di folder ~ / .config / gtk-3.0 / gtk.css Saat ini saya memiliki ini di file yang disebut "gtk.css"

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

Jika Anda bermain-main dengan ini sedikit, Anda akan menemukan kemungkinan untuk mengintegrasikan banyak perubahan spesifik dari file tema yang sedang Anda edit di atas. Pada suatu waktu saya berusaha sangat keras untuk mengutak-atik banyak pengaturan, tapi saya dalam mode "tetap sederhana" sekarang.

Jika Anda benar-benar ingin mengedit banyak pengaturan, hal yang benar untuk dilakukan adalah menyalin seluruh file gtk-widgets.css dan meletakkannya di folder ~ / .config / gtk-3.0 Anda. Lalu pergi ke kota mengutak-atik pengaturan.

Dalam folder yang sama, saya memiliki file bernama "settings.ini"

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

Ini mencegah klik di bilah gulir dari bergerak ke titik tertentu dalam file, alih-alih hanya maju satu layar. Saya lebih suka itu!

Hal lain yang perlu diketahui adalah bahwa mengubah file tema (baik seperti yang sebelumnya direkomendasikan oleh @Dorian atau dengan perubahan akun pengguna untuk semua tema berbasis GTK-3.0 seperti yang saya sarankan) hanya mengubah program yang didasarkan pada toolkit GTK-3.0. Itu tidak mengubah bilah gulir untuk semua aplikasi. Hanya untuk yang membaca file konfigurasi gtk-3.0. Karena Anda mengedit tema gtk-3.0, aplikasi yang ditulis dengan QT atau gtk-2.0 tidak akan berubah. Oleh karena itu, mengubah ukuran scrollbar dari semua program agak lebih sulit / menjemukan daripada yang Anda harapkan.

Saya telah mengubah lebar scrollbar di gtk-2.0 juga. Ini dilakukan di folder terpisah ~ / .config / gtk-2.0. File yang akan dibuat bernama gtkrc

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

Perhatikan bahwa gtk-2.0 adalah pengaturan yang dirancang berbeda sehingga sintaksnya berbeda, Anda tidak bisa hanya menyalin gtk-3.0 css ke folder gtk-2.0.

Saya perhatikan bahwa beberapa aplikasi berperilaku buruk ketika Anda membuat scrollbar berbeda karena ukuran "grabber" di dalam palung slider tidak diubah ukurannya dengan benar. Saya menduga perubahan menyeret scrollbar pada file @ Dorian akan membantu dengan itu. Saya mungkin kembali dan mencobanya. Aku akan memberitahu Anda.

Rangkuman: Kunci "saran administrator sistem Linux lama adalah" JANGAN mengedit file konfigurasi pada basis sistem. Anda membahayakan sistem Anda, perubahan Anda tidak akan bertahan selama revisi, dan itu membutuhkan akses root, yang tidak pernah baik untuk hal-hal kosmetik seperti ini. Temukan cara untuk membuat perubahan di akun pengguna Anda.

PS. Jika Anda benar-benar ingin bermain-main dengan file sistem (kadang-kadang saya lakukan jika saya benar-benar ingin memaksa semua pengguna memiliki warna tim sepak bola favorit saya sebagai wallpaper dan skema warna :)), hal pertama yang harus Anda lakukan adalah membuat salinan dari file asli dan beri nama asli "gtk-widgets.css.orig". Kemudian ketika Anda mengedit file Anda, simpan salinan hasil edit Anda sebagai "gtk-widgets.css.20160919", di mana saya memiliki tanggal YYYYMMDD pada akhir itu. Dengan cara ini, ketika paket deb diperbarui, Anda akan memiliki salinan file yang diedit. Yang Anda edit bernama gtk-widgets.css akan dilenyapkan oleh instalasi paket.

pauljohn32
sumber
Apa yang dimaksud dengan "file tema yang sedang Anda edit di atas"? "Di atas" tidak berarti apa-apa di sini.
endolith
9

Berikut adalah langkah-langkah untuk mengembalikan bilah gulir yang tidak menghilang dan memiliki lebar permanen, yaitu yang "klasik". Diuji dalam sesi Flashback GNOME di Ubuntu 16.04 (juga berfungsi di Unity).

Langkah 1. Buat cadangan /etc/environment. Jalankan sudo nano /etc/environmentdan tambahkan di sana baris berikutnya:

GTK_OVERLAY_SCROLLING=0

Ini akan mencegah perilaku autohide scrollbar.

Langkah 2. Untuk menghindari gangguan pada file tema utama /usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.csskami akan meminjam beberapa kode dari sana, ubah dan masukkan ke folder profil pengguna. Buat ~/.config/gtk-3.0/gtk.cssdan letakkan baris berikutnya di dalamnya:

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

Langkah 3. Buat ~/.config/gtk-3.0/settings.inidan tambahkan baris berikutnya ke dalamnya:

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

Ini akan mengembalikan perilaku pengguliran halaman-demi-halaman ketika Anda mengklik scrollbar di kedua sisi slider. Jika file ini sudah ada, cukup tambahkan baris terakhir di [Settings]bagian itu.

Langkah 4. Copot pemasangan overlay-scrollbardan overlay-scrollbar-gtk2paket - Anda tidak akan membutuhkannya lagi.

PS Jika Anda menggunakan beberapa aplikasi yang membutuhkan hak pengguna super (yaitu Synaptic, Gedit dll) maka Anda juga harus menempatkan ini gtk.cssdan settings.inifile ke dalam folder profil root:

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 Jika Anda menemukan bahwa scrollbar ini terlalu sempit untuk Anda, buat lebih luas. Cukup tambahkan baris berikutnya ke ~/.config/gtk-3.0/gtk.css:

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

Tambah lebar sesuai keinginan Anda (standarnya adalah 10). Perbarui /root/.config/gtk-3.0/gtk.cssjuga, jika perlu.

whtyger
sumber
Saya dapat menambah lebar dengan satu-satunya item:, .scrollbar {-GtkRange-slider-width: 15; …tanpa semua opsi lain yang Anda sebutkan. Tapi ini hanya di mesin virtual. Ketika saya mencoba melakukan hal yang sama pada desktop, tidak ada yang berhasil, meskipun saya telah mencoba semua langkah. Ada, saya kira bug di Firefox 52, karena pada mesin virtual, di mana jawabannya membantu, bilah gulir bereaksi dengan benar untuk acara hover, dan melebar secara otomatis. Pada desktop itu tidak menangani melayang (yang sebenarnya alasannya, mengapa saya perlu memperluas scrollbar) dan gtk.css diabaikan juga
user907860
1
@ user907860 Justru sebaliknya, semua langkah yang disebutkan di atas dimaksudkan untuk mengabaikan acara hover sepenuhnya. Mereka diperlukan untuk membuat scrollbar statis dan permanen yang tidak pernah mengubah lebarnya, seperti di era pra-Persatuan.
whtyger
ya kamu benar. Maksud saya hanya menambah lebar, tanpa menyentuh fungsionalitas melayang
user907860
Ngomong-ngomong, apakah Anda tidak tahu, mengapa ini tidak bekerja di Firefox 52 di desktop, sementara di komputer virtual? askubuntu.com/questions/892097/…
user907860
1
Ini harus menjadi jawaban yang diterima. Mengobrol dengan dconf dan tema memberikan hasil yang sangat aneh - tidak overlay, tetapi juga tidak normal. Jawaban ini memberikan scrollbar normal. Itu harus dilakukan di tingkat GTK. Catatan: Ubunutu akan segera pindah ke Qt.
Dominic Cerisano
8

Mengubah -GtkRange-slider-widthtidak berpengaruh pada tema GTK + 3 default. Sebagai gantinya, Anda dapat melakukan ini:

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

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

(Tempatkan di atas ~/.config/gtk-3.0/gtk.css.)

Vladimir Panteleev
sumber
1
di mana saya harus menambahkannya?
kenn
@kenn~/.config/gtk-3.0/gtk.css
Vladimir Panteleev
1
Bekerja seperti pesona di Ubuntu 18.04. Terima kasih!
Steve Cohen
9 bulan kemudian: Ini berfungsi seperti mantra di bawah Ubuntu 18.04 - KECUALI sehingga membingungkan aplikasi GNUCash. Lihat lists.gnucash.org/pipermail/gnucash-user/2019-Februari/… . Membuat perubahan ini menghancurkan fungsionalitas scrollbar di GNUCash, tetapi tidak pada aplikasi lain. Mendesah.
Steve Cohen
1
@SteveCohen, saya melihat tautan gnucash. Anda menulis "~ / .config / gtk-3.0.gtk.css" tetapi seharusnya demikian ~/.config/gtk-3.0/gtk.css. Selain itu, gnucash tampaknya merupakan aplikasi gtk2 , bukan aplikasi gtk 3 .
Justice for Monica
4

Saya menggunakan Ubuntu 18.04 dan ini adalah satu-satunya solusi yang mengubah scrollbar untuk SEMUA, dari Firefox ke LibreOffice ke gnome-terminal. Solusi di atas bekerja dengan baik untuk satu atau dua aplikasi tetapi tidak untuk semuanya.

Catatan: ini memberi Anda scrollbar BENAR-BENAR besar yang bagus untuk monitor besar karena Anda dapat melihatnya dari sudut mata Anda tanpa melihat ke sisi layar setiap kali Anda ingin meraihnya. Jika Anda ingin yang lebih kecil, ubah semua 70px ke angka yang lebih kecil seperti 20px atau 30px dan atur sesuai kebutuhan.

Masukkan teks berikut ke dalam ~/.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;
}
s. serigala
sumber