더 큰 정적 스크롤 막대 (일명 일반 스크롤 막대)를 얻으려면 어떻게합니까?


40

외부 오버레이 스크롤 막대가 마침내 사라져서 기쁩니다.

그러나 스크롤 막대는 여전히 마우스가 움직일 때 면도기의 얇은 선이지만, 면도기의 얇은 스크롤 막대가되지만 여전히 얇은 스크롤 막대입니다.

일반 스크롤바를 얻으려면 어떻게 해야합니까? 즉, Firefox와 같은 다른 OS와 마찬가지로 마우스가 가리키는 내용에 따라 변경되지 않는 스크롤 막대와 너비가 좋습니다.

나는 이미 시도했다

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

그러나 운이 없다.


2
이 문제는 어떻게 여전히 문제이며 표준 시스템 설정의 수정 / 일부가 아닙니까? lordy 4 년 전 나는 이런 것들에 대해 꽤 우분투를 분노하고 미니어처 목초지에 갔다 ... lol
neuronet

@neuronet Amen, 형제
Steve Cohen

답변:


22

이 파일을 편집하십시오 /usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css

이 줄을 찾으십시오 (1,200 줄 정도) : -GtkRange-slider-width : 10;

그리고 10을 20 또는 30과 같은 더 큰 숫자로 변경하고 완료했습니다 :)

나는 또한 그들이 너무 작다고 생각합니다 ...

이 이미지를보십시오 :

여기에 이미지 설명을 입력하십시오

스크롤 막대 크기를 16으로 변경하고 그대로 유지하고 마우스를 놓지 않아도 축소되지 않으려면 위 그림에서 변경하십시오.

16 이외의 크기를 사용하는 경우 여백 크기를 실험하여 올바르게 설정하십시오.


1
나는 그것을 16으로 설정하고 모든 호버 / 드래그 물건에 주석을 달았으며 이제 스크롤 막대는 좋은 오래된 정적 것들입니다 ...하지만 몇 초 후에도 여전히 사라지고 있습니다. 내가 보지 못한 애니메이션 기능이 있습니까?
Simon

좋아, 너무 좋아 처음 변경 한 곳 바로 아래 이러한가 표시됩니다 margin-left: 2px;뿐만 아니라 margin-rightmargin-top. 이 세 가지를 모두 2px에서 7px로 변경하면 스크롤 막대가 넓게 유지됩니다.
Dorian

스크롤 막대를 크게 유지하기 위해 변경해야 할 내용을 명확하게하기 위해 내 대답에 그림을 추가했습니다.
도리안

6
정말 고맙습니다! 할아버지는 정말 작은 스크롤 막대로 어려움을 겪고 있었지만 25px로 변경했으며 이제는 전문가처럼 스크롤하고 있습니다!
Erty Seidohl

1
참고 내를 24로 변경 했는데도 7px는 여백이 호버링에서 올바르게 유지되도록 사용하기에 적합한 크기입니다. 또한 변경 사항이 적용되도록 프로그램 (예 : Firefox)을 다시 시작하십시오. 대단해
neuronet

26

나는 당신이 조심해야한다고 생각합니다. 시스템에있는 모든 사용자 계정의 활동을 방해하지 않는 한, 테마 기반의 시스템 전체 기본값을 편집하지 않는 것이 좋습니다. 그렇게하는 동안 오류가 발생하면 모든 사용자 계정에 영향을줍니다. 또 다른주의 사항은 패키지가 업데이트되면 변경 사항이 지워진다는 것입니다.

이 전략의 또 다른 단점은 하나의 GTK 테마의 동작 만 변경하지만 모든 GTK-3.0 테마에서 스크롤 막대 크기를 변경하고 싶을 수 있습니다.

대신 사용자 계정 내에서 구성 파일을 편집하십시오. 요점은 어느 것이 원하는 종점까지의 최단 거리인지 알아내는 것입니다. 편집 한 GTK 파일은 CSS (Cascading Style Sheets) 설정의 일부이므로 계정에 사용자 지정하면 설정이 수정됩니다.

사용자 계정의 ~ / .config / gtk-3.0 / gtk.css 폴더에 현재 "gtk.css"라는 파일이 있습니다.

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

이것으로 약간 놀아 보면 위에서 편집 한 테마 파일의 많은 특정 변경 사항을 통합 할 수 있습니다. 한 번에 나는 많은 설정을 피하려고 열심히 노력했지만 지금은 "간단하게 유지"모드에 있습니다.

실제로 많은 설정을 편집하려면 gtk-widgets.css 전체 파일을 복사하여 ~ / .config / gtk-3.0 폴더에 저장하는 것이 좋습니다. 그런 다음 설정이있는 마을로 이동하십시오.

같은 폴더에 "settings.ini"라는 파일이 있습니다.

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

이렇게하면 스크롤 막대의 클릭이 파일의 특정 지점으로 이동하지 않고 대신 한 화면 만 진행됩니다. 나는 그것을 선호합니다!

알아 두어야 할 또 다른 사실은 테마 파일을 변경하면 (@Dorian 또는 이전에 제안한대로 모든 GTK-3.0 기반 테마의 사용자 계정 변경에 의해 추천 된대로) GTK-3.0 툴킷을 기반으로하는 프로그램 만 변경한다는 것입니다. 모든 응용 프로그램의 스크롤 막대를 변경하지는 않습니다. 해당 gtk-3.0 설정 파일을 읽는 것만을위한 것입니다. gtk-3.0 테마를 편집하고 있으므로 QT 또는 gtk-2.0으로 작성된 앱은 변경되지 않습니다. 따라서 모든 프로그램의 스크롤 막대 크기를 변경하는 것은 예상보다 어렵거나 지루합니다.

gtk-2.0에서 스크롤바 너비도 변경했습니다. 이것은 ~ / .config / gtk-2.0 별도의 폴더에서 수행됩니다. 작성할 파일 이름은 gtkrc입니다.

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

gtk-2.0은 다르게 설계된 설정이므로 구문이 다르므로 gtk-3.0 CSS를 gtk-2.0 폴더로 복사 할 수는 없습니다.

슬라이더 트로프 내부의 "그래버"크기가 올바르게 조정되지 않았기 때문에 스크롤 막대를 다르게 만들면 일부 응용 프로그램이 제대로 작동하지 않는 것으로 나타났습니다. @Dorian의 파일에서 스크롤 막대가 크게 바뀌면 변경에 도움이 될 것으로 생각됩니다. 돌아와서 시도해 볼 수 있습니다. 내가 알려 주마.

요약 : "이전의 Linux 시스템 관리자 조언"은 시스템 전체에서 구성 파일을 편집하지 마십시오. 시스템이 위험에 처해 있고 변경 사항이 수정되지 않으며 루트 액세스가 필요하므로 이와 같은 미용에는 적합하지 않습니다. 사용자 계정을 변경하는 방법을 찾으십시오.

추신. 당신이 정말로 시스템 파일로 주위를 둘러보고 싶다면 (때로는 모든 사용자가 자신의 좋아하는 축구 팀 색상을 벽지와 색상 구성표로 갖고 있다고 주장하고 싶다면), 가장 먼저해야 할 일은 사본을 만드는 것입니다. 원본 파일 이름을 지정하고 원본 이름을 "gtk-widgets.css.orig"로 지정하십시오. 그런 다음 파일을 편집 할 때 편집 사본을 "gtk-widgets.css.20160919"로 저장하십시오. 여기서 YYYYMMDD 날짜가 표시됩니다. 이 방법으로 deb 패키지가 업데이트되면 편집 된 파일의 사본이 생성됩니다. gtk-widgets.css라는 이름을 편집 한 것은 패키지 설치로 제거됩니다.


"위에서 편집중인 테마 파일"은 무엇을 의미합니까? "위"는 여기서 의미가 없습니다.
endolith

9

다음은 사라지지 않고 영구적 인 너비 (예 : "클래식")를 가진 스크롤 막대를 복원하는 단계입니다. Ubuntu 16.04의 GNOME Flashback 세션에서 테스트되었습니다 (Unity에서도 작동).

1 단계. 의 백업을 만듭니다 /etc/environment. sudo nano /etc/environment다음 줄을 실행 하여 추가 하십시오 .

GTK_OVERLAY_SCROLLING=0

이렇게하면 스크롤 막대의 자동 숨기기 동작이 방지됩니다.

2 단계. 메인 테마 파일을 무단 변경하지 않기 위해 /usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css코드를 빌려서 수정 한 다음 사용자 프로필 폴더에 넣습니다. 작성 ~/.config/gtk-3.0/gtk.css하고 그것으로 다음 줄을 넣어 :

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

단계 3.~/.config/gtk-3.0/settings.ini 다음 행을 작성 하여 추가하십시오.

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

슬라이더의 양쪽에있는 스크롤 막대를 클릭하면 페이지 별 스크롤 동작이 복원됩니다. 이 파일이 이미 존재하면 해당 [Settings]섹션의 마지막 행을 추가하십시오 .

4 단계. 제거 overlay-scrollbaroverlay-scrollbar-gtk2패키지-더 이상 필요하지 않습니다.

PS 슈퍼 유저 권한이 필요한 일부 응용 프로그램 (예 : Synaptic, Gedit 등)을 사용하는 경우 이러한 파일 gtk.csssettings.ini파일을 루트의 프로필 폴더에 저장해야합니다.

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 이 스크롤바가 너무 좁 으면 더 넓게 만드십시오. 다음 줄을 추가하십시오 ~/.config/gtk-3.0/gtk.css.

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

적합하다고 생각되면 너비를 늘리십시오 (기본값은 10). /root/.config/gtk-3.0/gtk.css필요한 경우 업데이트하십시오 .


.scrollbar {-GtkRange-slider-width: 15; …언급 한 다른 모든 옵션없이 항목만으로 너비를 늘릴 수있었습니다 . 그러나 이것은 가상 머신에만있었습니다. 데스크탑에서 동일한 작업을 시도했을 때 모든 단계를 시도했지만 아무것도 작동하지 않았습니다. Firefox 52에는 버그가 있다고 생각합니다. 답변이 도움이되는 가상 컴퓨터에서 스크롤 막대가 호버 이벤트에 올바르게 반응하고 자동으로 넓어지기 때문입니다. 데스크탑에서는 호버를 처리하지 않으며 (실제로 스크롤 막대를 넓 히야하는 이유) gtk.css도 무시됩니다.
user907860

1
@ user907860 반대로, 위에서 언급 한 모든 단계 는 호버 이벤트를 완전히 무시 하기위한 것 입니다. 그들은 통일 이전 시대와 마찬가지로 폭을 변경하지 않는 정적이고 영구적 인 스크롤 막대를 만들어야합니다.
whtyger

그래 너가 옳아. 호버 기능을 건드리지 않고 너비를 늘리는 것을 의미했습니다
user907860

그건 그렇고, 당신은 왜 이것이 가상 머신에서 데스크탑의 Firefox 52에서 작동하지 않는지 아십니까? askubuntu.com/questions/892097/…
user907860

1
이것이 정답입니다. dconf와 테마를 사용한 메시지는 오버레이가 아니라 정상이 아닌 매우 이상한 결과를 냈습니다. 이 답변은 일반적인 스크롤바를 제공합니다. GTK 수준에서 수행해야합니다. 참고 : Ubunutu는 곧 Qt로 이동합니다.
도미닉 Cerisano

8

-GtkRange-slider-width기본 GTK + 3 테마에는 변경 사항 이 적용되지 않습니다. 대신, 당신은 이것을 할 수 있습니다 :

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

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

(에 위를 배치하십시오 ~/.config/gtk-3.0/gtk.css.)


1
어디에 추가해야합니까?
kenn

@kenn~/.config/gtk-3.0/gtk.css
블라디미르 Panteleev

1
우분투 18.04의 매력처럼 작동합니다. 감사!
Steve Cohen

9 개월 후 : 이것은 우분투 18.04의 매력처럼 작동합니다. list.gnucash.org/pipermail/gnucash-user/2019-February/…를 참조하십시오 . 이러한 변경을 수행하면 GNUCash의 스크롤 막대 기능이 파괴되지만 다른 앱은 파괴되지 않습니다. 한숨.
Steve Cohen

1
@SteveCohen, gnucash 링크를 보았습니다. "~ / .config / gtk-3.0.gtk.css"를 작성했지만 그럴 것 ~/.config/gtk-3.0/gtk.css입니다. 또한 gnucash 는 gtk 3 애플리케이션이 아닌 gtk2 애플리케이션 인 것으로 보입니다 .
DK Bose

4

Ubuntu 18.04를 사용하고 있으며 Firefox에서 LibreOffice로, gnome-terminal로 모든 것을 위해 스크롤 막대를 변경 한 유일한 솔루션이었습니다. 위의 솔루션은 하나 또는 두 개의 응용 프로그램에서는 잘 작동했지만 모든 것은 아닙니다.

참고 : 큰 스크롤 막대는 정말 큰 스크롤 막대를 제공합니다. 큰 스크롤 막대는 한 화면을 잡고 싶을 때마다 화면의 끝을 보지 않고도 눈의 구석에서 볼 수 있기 때문입니다. 더 작은 것을 원하면 모든 70px를 20px 또는 30px와 같은 더 작은 숫자로 변경하고 그에 따라 조정하십시오.

다음 텍스트를 넣습니다 ~/.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;
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.