Làm cách nào để có được thanh cuộn tĩnh lớn hơn (hay còn gọi là thanh cuộn bình thường)?


40

Tôi rất vui vì các thanh cuộn lớp phủ bên ngoài cuối cùng đã biến mất.

Nhưng thanh cuộn vẫn là một đường mỏng như dao cạo trở thành thanh cuộn mỏng hơn dao cạo, nhưng thanh cuộn vẫn mỏng, khi chuột lượn.

Làm thế nào tôi có thể có được một thanh cuộn bình thường ? Tức là, giống như trong các hệ điều hành khác, như trong Firefox, một thanh cuộn không thay đổi tùy thuộc vào những gì con chuột trỏ đến và với chiều rộng đẹp.

Tôi đã thử

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

nhưng không có may mắn


2
Làm thế nào đây vẫn là một vấn đề nguy hiểm và không sửa chữa / một phần của cài đặt hệ thống tiêu chuẩn? chúa tể bốn năm trước tôi đã nổi cơn thịnh nộ trên những thứ như thế này và đi đến đồng cỏ bạc hà ... lol
nơ ron thần kinh

@neuronet Amen, anh trai
Steve Cohen

Câu trả lời:


22

Chỉnh sửa tập tin này /usr/share/theme/Ambiance/gtk-3.0/gtk-widgets.css

Tìm dòng này (khoảng dòng 1200): -GtkRange-slide-width: 10;

Và thay đổi 10 thành một số lớn hơn như 20 hoặc 30, và đã hoàn thành :)

Tôi cũng nghĩ chúng quá nhỏ ...

Xem hình ảnh này:

nhập mô tả hình ảnh ở đây

Nếu bạn thay đổi kích thước thanh cuộn thành 16 và bạn muốn chúng giữ nguyên như vậy và không co lại khi bạn không có chuột trên đó, thì hãy thực hiện các thay đổi trong hình trên.

Nếu bạn sử dụng kích thước khác 16, chỉ cần thử nghiệm với kích thước lề để làm cho đúng.


1
Tôi đặt nó thành 16, và nhận xét tất cả các công cụ di chuột / kéo và bây giờ các thanh cuộn là những thứ tĩnh cũ tốt ... Chúng vẫn biến mất sau vài giây. Có một số chức năng hoạt hình tôi đã không nhìn thấy?
Simon

Ok, vì vậy ngay bên dưới nơi bạn đã thực hiện thay đổi đầu tiên, bạn sẽ thấy những điều sau: margin-left: 2px;cũng như margin-rightmargin-top. Thay đổi cả ba trong số này từ 2px thành 7px và thanh cuộn của bạn sẽ vẫn rộng.
Dorian

Tôi đã thêm một hình ảnh vào câu trả lời của mình để cố gắng làm rõ những gì bạn cần thay đổi để thanh cuộn luôn lớn.
Dorian

6
Cảm ơn bạn rất nhiều! Ông tôi đã thực sự vật lộn với các thanh cuộn rất nhỏ, nhưng tôi đã thay đổi nó thành 25px và bây giờ ông ấy cuộn như một chuyên gia!
Erty Seidohl

1
Lưu ý tôi đã thay đổi của tôi thành 24 và 7px vẫn là kích thước phù hợp để sử dụng cho lề để đảm bảo nó vẫn chính xác khi di chuột. Lưu ý cũng đảm bảo khởi động lại chương trình của bạn (ví dụ: Firefox) để đảm bảo các thay đổi của bạn có hiệu lực. Điều tuyệt vời.
nơ ron

26

Tôi nghĩ bạn nên thận trọng ở đó. Nhiều người trong chúng tôi sẽ KHÔNG khuyên bạn nên chỉnh sửa mặc định toàn hệ thống cho một chủ đề, trừ khi bạn thực sự có ý định can thiệp vào hoạt động của tất cả các tài khoản người dùng trong hệ thống. Nếu bạn xảy ra lỗi trong khi thực hiện điều đó, thì nó sẽ ảnh hưởng đến tất cả các tài khoản người dùng. Một điểm lưu ý khác là khi các gói được cập nhật, các thay đổi của bạn sẽ bị xóa.

Một thiếu sót khác của chiến lược này là nó chỉ thay đổi hành vi của một chủ đề GTK, nhưng bạn có thể muốn thay đổi kích thước thanh cuộn trong TẤT CẢ các chủ đề GTK-3.0.

Thay vào đó, hãy chỉnh sửa các tệp cấu hình bên trong tài khoản người dùng. Bí quyết là tìm ra cái nào là khoảng cách ngắn nhất đến điểm cuối mong muốn. Tệp GTK bạn chỉnh sửa là một phần của thiết lập CSS (Cascading Style Sheets), do đó, tùy chỉnh bạn đặt trong tài khoản của bạn sẽ sửa đổi cài đặt.

Trong tài khoản người dùng của bạn, trong thư mục ~ / .config / gtk-3.0 / gtk.css Tôi hiện có tệp này trong một tệp có tên "gtk.css"

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

Nếu bạn chơi xung quanh với điều này một chút, bạn sẽ thấy có thể tích hợp nhiều thay đổi cụ thể từ tệp chủ đề bạn đang chỉnh sửa ở trên. Đã có lúc tôi đã rất cố gắng để tìm hiểu nhiều cài đặt, nhưng bây giờ tôi đang ở chế độ "giữ cho nó đơn giản".

Nếu bạn thực sự muốn chỉnh sửa nhiều cài đặt, điều cần làm là sao chép toàn bộ tệp gtk-widget.css và đặt nó vào thư mục ~ / .config / gtk-3.0 của bạn. Sau đó đi đến thị trấn loay hoay với các thiết lập.

Trong cùng một thư mục, tôi có một tệp có tên "settings.ini"

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

Điều này ngăn một nhấp chuột trên thanh cuộn di chuyển đến một điểm nhất định trong tệp, thay vào đó nó chỉ tiến lên một màn hình. Tôi thích điều đó!

Một điều đáng biết nữa là việc thay đổi tệp chủ đề đó (như được đề xuất trước đây bởi @Dorian hoặc thay đổi tài khoản người dùng cho tất cả các chủ đề dựa trên GTK-3.0 như tôi đề xuất) chỉ thay đổi các chương trình dựa trên bộ công cụ GTK-3.0. Nó không thay đổi thanh cuộn cho tất cả các ứng dụng. Nó chỉ dành cho những người đọc tệp cấu hình gtk-3.0. Vì bạn đang chỉnh sửa chủ đề gtk-3.0, các ứng dụng được viết bằng QT hoặc gtk-2.0 sẽ không thay đổi. Do đó, việc thay đổi kích thước thanh cuộn của tất cả các chương trình khá khó khăn / tẻ nhạt hơn bạn mong đợi.

Tôi cũng đã thay đổi chiều rộng thanh cuộn trong gtk-2.0. Điều này được thực hiện trong một thư mục riêng ~ / .config / gtk-2.0. Tệp cần tạo có tên gtkrc

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

Lưu ý rằng gtk-2.0 là một thiết lập được thiết kế khác nhau nên cú pháp khác nhau, bạn không thể sao chép css gtk-3.0 vào thư mục gtk-2.0.

Tôi đã nhận thấy rằng một số ứng dụng hoạt động kém khi bạn làm cho thanh cuộn khác nhau vì kích thước của "dụng cụ lấy" bên trong máng trượt không được thay đổi kích thước chính xác. Tôi nghi ngờ các thay đổi kéo thanh cuộn trong tệp của @ Dorian sẽ giúp ích cho điều đó. Tôi có thể quay lại và thử điều đó. Tôi sẽ cho bạn biết.

Tóm tắt: "Lời khuyên của quản trị viên hệ thống Linux thời xưa là" KHÔNG chỉnh sửa các tệp cấu hình trên cơ sở toàn hệ thống. Bạn đang đặt hệ thống của mình vào rủi ro, những thay đổi của bạn sẽ không kéo dài qua các phiên bản và nó yêu cầu quyền truy cập root, điều này không bao giờ tốt cho những thứ mỹ phẩm như thế này. Tìm cách thay đổi tài khoản người dùng của bạn.

Tái bút Nếu bạn thực sự muốn nghịch ngợm với các tệp hệ thống (đôi khi tôi làm nếu tôi thực sự muốn khẳng định tất cả người dùng có màu đội bóng yêu thích của tôi làm hình nền và bảng màu của họ :)), điều đầu tiên bạn nên làm là sao chép tệp gốc và đặt tên "gtk-widget.css.orig" ban đầu. Sau đó, khi bạn chỉnh sửa tệp của mình, hãy lưu một bản sao chỉnh sửa của bạn dưới dạng "gtk-widget.css.20160919", trong đó tôi có ngày YYYYMMDD ở cuối tệp. Bằng cách này, khi gói gỡ lỗi được cập nhật, bạn sẽ có một bản sao của tệp đã chỉnh sửa của mình. Cái bạn chỉnh sửa có tên gtk-widget.css sẽ bị xóa sạch bởi cài đặt gói.


"Tập tin chủ đề bạn đã chỉnh sửa ở trên" đề cập đến điều gì? "ở trên" không có nghĩa gì ở đây.
endolith

9

Dưới đây là các bước để khôi phục các thanh cuộn không biến mất và có chiều rộng vĩnh viễn, tức là các thanh "cổ điển". Đã thử nghiệm trong phiên Flashback Gnome trong Ubuntu 16.04 (cũng hoạt động trong Unity).

Bước 1. Tạo một bản sao lưu của /etc/environment. Chạy sudo nano /etc/environmentvà thêm vào đó dòng tiếp theo:

GTK_OVERLAY_SCROLLING=0

Điều này sẽ ngăn hành vi autohide của thanh cuộn.

Bước 2. Để tránh giả mạo tập tin chủ đề chính, /usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.csschúng tôi sẽ mượn một số mã từ đó, thay đổi nó và đưa nó vào thư mục hồ sơ người dùng. Tạo ~/.config/gtk-3.0/gtk.cssvà đặt các dòng tiếp theo vào nó:

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

Bước 3. Tạo ~/.config/gtk-3.0/settings.inivà thêm các dòng tiếp theo vào nó:

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

Điều này sẽ khôi phục hành vi cuộn từng trang khi bạn nhấp vào thanh cuộn ở hai bên của thanh trượt. Nếu tập tin này đã tồn tại, chỉ cần thêm dòng cuối cùng trong [Settings]phần của nó.

Bước 4. Gỡ cài đặt overlay-scrollbaroverlay-scrollbar-gtk2gói - bạn sẽ không cần chúng nữa.

PS Nếu bạn sử dụng một số ứng dụng cần quyền siêu người dùng (ví dụ: Synaptic, Gedit, v.v.) thì bạn cũng nên đặt những tệp gtk.csssettings.initệp này vào thư mục hồ sơ gốc:

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 Nếu bạn thấy rằng các thanh cuộn này quá hẹp đối với bạn, hãy làm cho chúng rộng hơn. Chỉ cần thêm dòng tiếp theo vào ~/.config/gtk-3.0/gtk.css:

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

Tăng chiều rộng khi bạn thấy phù hợp (mặc định là 10). Cập nhật /root/.config/gtk-3.0/gtk.csscũng được, nếu cần.


Tôi đã có thể tăng chiều rộng với mục duy nhất : .scrollbar {-GtkRange-slider-width: 15; …, không có tất cả các tùy chọn khác mà bạn đã đề cập. Nhưng điều này chỉ có trên một máy ảo. Khi tôi cố gắng làm tương tự trên máy tính để bàn, không có gì hoạt động, mặc dù tôi đã thử tất cả các bước. Có, tôi cho rằng có lỗi trong Firefox 52, bởi vì trên máy ảo, nơi câu trả lời đã được trợ giúp, thanh cuộn đã phản ứng chính xác cho sự kiện di chuột và tự động mở rộng. Trên máy tính để bàn, nó không xử lý các máy lượn (đó thực sự là lý do, tại sao tôi cần mở rộng thanh cuộn) và gtk.css cũng bị bỏ qua
user907860

1
@ user907860 Hoàn toàn ngược lại, tất cả các bước được đề cập ở trên đều nhằm hoàn toàn bỏ qua sự kiện di chuột. Chúng là cần thiết để tạo ra các thanh cuộn tĩnh, vĩnh viễn không bao giờ thay đổi độ rộng của chúng, như thời kỳ tiền Unity.
whtyger

Vâng, bạn đúng. Ý tôi là chỉ cần tăng chiều rộng, mà không cần chạm vào chức năng di chuột
user907860

Nhân tiện, bạn không có ý tưởng nào, tại sao điều này không hoạt động trong Firefox 52 trên máy tính để bàn, trong khi nó không hoạt động trên máy ảo? Askubfox.com/questions/892097/NH
user907860

1
Đây phải là câu trả lời được chấp nhận. Lộn xộn với dconf và chủ đề cho kết quả rất kỳ lạ - không phải lớp phủ, nhưng cũng không bình thường. Câu trả lời này cho thanh cuộn bình thường. Nó phải được thực hiện ở cấp GTK. Lưu ý: Ubunutu sẽ sớm chuyển sang Qt.
Đaminh Cerisano

8

Thay đổi -GtkRange-slider-widthkhông có hiệu lực đối với chủ đề GTK + 3 mặc định. Thay vào đó, bạn có thể làm điều này:

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

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

(Đặt phần trên vào trong ~/.config/gtk-3.0/gtk.css.)


1
Tôi nên thêm nó vào đâu?
kenn

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

1
Hoạt động như một bùa mê trên Ubuntu 18.04. Cảm ơn!
Steve Cohen

9 tháng sau: Điều này hoạt động giống như một cơ duyên trong Ubuntu 18.04 - NGOẠI TRỪ rằng nó nhầm lẫn giữa cái chết của ứng dụng GNUCash. Xem danh sách.gnucash.org/pipermail/gnucash-user/2019-F / 2 / . Thực hiện những thay đổi này sẽ phá hủy chức năng thanh cuộn trong GNUCash, nhưng không phải các ứng dụng khác. Thở dài.
Steve Cohen

1
@SteveCohen, tôi đã xem liên kết gnucash. Bạn đã viết "~ / .config / gtk-3.0.gtk.css" nhưng nó phải như vậy ~/.config/gtk-3.0/gtk.css. Ngoài ra, gnucash dường như là một ứng dụng gtk2 , không phải là ứng dụng gtk 3 .
Công lý cho Monica

4

Tôi đang sử dụng Ubuntu 18.04 và đây là giải pháp duy nhất đã thay đổi thanh cuộn cho MỌI THỨ, từ Firefox sang LibreScript thành gnome-terminal. Các giải pháp trên hoạt động tốt cho một hoặc hai ứng dụng nhưng không phải cho tất cả mọi thứ.

Lưu ý: điều này mang lại cho bạn THỰC SỰ thanh cuộn lớn, tốt cho màn hình lớn bởi vì bạn có thể nhìn thấy chúng từ khóe mắt mà không cần nhìn sang bên cạnh màn hình mỗi khi bạn muốn chụp. Nếu bạn muốn những cái nhỏ hơn, hãy thay đổi tất cả 70px thành một số nhỏ hơn như 20px hoặc 30px và điều chỉnh cho phù hợp.

Đặt văn bản sau vào ~/.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;
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.