![Debian 10의 GTK 2 및 3 애플리케이션에서 레거시 스크롤바를 얻는 방법은 무엇입니까?](https://linux55.com/image/160723/Debian%2010%EC%9D%98%20GTK%202%20%EB%B0%8F%203%20%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98%EC%97%90%EC%84%9C%20%EB%A0%88%EA%B1%B0%EC%8B%9C%20%EC%8A%A4%ED%81%AC%EB%A1%A4%EB%B0%94%EB%A5%BC%20%EC%96%BB%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
저는 Debian 10에서 XFce4를 사용하고 있습니다.
GTK 2 애플리케이션을 열면 스크롤바가 정상적으로 나타나고 상단과 하단에 큰 스크롤바와 화살표가 표시됩니다.
GTK 3 애플리케이션을 열 때 스크롤바가 얇아 클릭해서 보기 어렵고 어디에도 화살표가 없으며 때로는 완전히 사라지는 경우도 있습니다.
Adwaita 또는 Breeze와 같은 테마를 선택하면 GTK 2 애플리케이션이 GTK 3 애플리케이션과 일치하지만 사용 및 보기가 어려운 스크롤바가 있습니다.
GTK 2 및 GTK 3 애플리케이션에 보다 전통적인 스크롤바와 더 큰 버튼을 제공할 수 있는 방법이 있습니까?
답변1
GTK+2
GTK+2의 스크롤바에는 아무런 문제가 없습니다. 어쩌면 당신은 그들을 "타협"하는 방식으로 진행되는 테마를 사용하고 있을 수도 있습니다. 예를 들어 내가 사용하는 다른 테마로 전환해 보세요 GreenMotif
.
더 어리석은 일을 피하려면 xcursor-themes
Debian 패키지를 설치하고 다음을 실행하십시오.sudo update-alternatives --set x-cursor-theme /etc/X11/cursors/core.theme
Qt5
이것도 쉬운 것 같습니다. GTK 엔진이나 테마를 사용하지 않는지 확인하세요. 저는 개인적으로 qt5-style-plugin-motif
데비안 패키지를 설치해서 사용하고 있습니다.
kcminputrc_mouse_cursortheme=core
다른 곳에서 이를 설정 해야 할 수도 있습니다 ~/.config/startupconfig
. GUI 설정 대화 상자는 core
"테마"를 옵션으로 표시하지 않는 경향이 있습니다. 다른 커서 테마를 선택한 다음 포인트 파일에서 발생 항목을 검색하고 모두 변경할 수 있습니다(제가 했던 작업입니다).
GTK+3
이것을 디자인하는 것은 끝없는 PITA입니다. 나는 가지고있다GTK+3을 덜 견딜 수 없게 만드는 방법을 문서화했습니다.스크롤을 수정하여 Debian Stretch에서 기본적으로 사용되는 Xfce4 "기본" 테마와 매우 유사한 테마를 사용하여 아래 답변의 대부분을 인라인하겠습니다. 유사한 Windows® 95 대안, 추가 배경 정보 등이 포함되어 있으며 무엇보다도 스크린샷이 가장 좋은 코드 조각을 방문하는 것이 좋습니다! ☺
~/.config/gtk-3.0/gtk2xfce4basic.css
다음 콘텐츠로 이 파일을 생성하세요(또는 위 링크에서 원본 파일을 다운로드하세요).
/*
* to install, copy to ~/.config/gtk-3.0/gtk2xfce4basic.css
* and append the line…
*
* @import 'gtk2xfce4basic.css';
*
* to ~/.config/gtk-3.0/gtk.css
*/
/* somewhat unfuck GTK+3, by mirabilos, Ⓕ CC0 — theme Xfce basic */
/*-
* append to ~/.xsessionrc or so, ~/.pam_environment or ~/.profile maybe
*
* GTK_OVERLAY_SCROLLING=0; export GTK_OVERLAY_SCROLLING
*
* merge into ~/.config/gtk-3.0/settings.ini
*
* [Settings]
* gtk-xft-rgba=none
* gtk-cursor-theme-name=core
* gtk-enable-animations=0
* gtk-primary-button-warps-slider=false
*
* Firefox about:config set: pref("widget.non-native-theme.enabled", false);
* and consider a userContent.css to disable website-styled scroll“bar”s (see
* https://edugit.org/-/snippets/31 for how).
*
* Try: GTK_DEBUG=interactive gtk3-demo
*/
/* remove dotted lines from GTK+3 applications */
.undershoot.top, .undershoot.right, .undershoot.bottom, .undershoot.left {
background-image:none;
}
undershoot.top, undershoot.right, undershoot.bottom, undershoot.left {
background-image:none;
}
/* force scrollbar arrows */
.scrollbar, scrollbar {
-GtkScrollbar-has-backward-stepper:true !important;
-GtkScrollbar-has-forward-stepper:true !important;
}
/* GTK+2-style scrollbar with Xfce basic theme colours {{{ */
scrollbar.horizontal, scrollbar.horizontal content,
scrollbar.horizontal button.up, scrollbar.horizontal button.up:disabled,
scrollbar.horizontal trough, scrollbar.horizontal slider,
scrollbar.horizontal button.down, scrollbar.horizontal button.down:disabled,
scrollbar.vertical, scrollbar.vertical content,
scrollbar.vertical button.up, scrollbar.vertical button.up:disabled,
scrollbar.vertical trough, scrollbar.vertical slider,
scrollbar.vertical button.down, scrollbar.vertical button.down:disabled {
margin:0px;
outline:0px;
-gtk-outline-radius:0;
border-radius:0px;
border:0px;
box-shadow:none;
padding:0px;
background-color:inherit;
}
scrollbar.horizontal button.up, scrollbar.horizontal button.up:disabled,
scrollbar.horizontal button.down, scrollbar.horizontal button.down:disabled,
scrollbar.vertical button.up, scrollbar.vertical button.up:disabled,
scrollbar.vertical button.down, scrollbar.vertical button.down:disabled {
-gtk-icon-source:none;
}
scrollbar.horizontal {
min-height:14px;
box-shadow:
inset 1px 1px 0 0 #8C8982,
inset -1px -1px 0 0 #FBFBFA;
padding:1px;
background-color:#C4C2BD;
}
scrollbar.horizontal contents {
min-height:14px;
}
scrollbar.horizontal button.up {
min-width:11px;
background:
linear-gradient(to top right, transparent 49.5%, #000000 50%) 5px 6px / 3px 3px,
linear-gradient(to bottom right, transparent 49.5%, #000000 50%) 5px 4px / 3px 3px,
linear-gradient(to top right, transparent 49.5%, #434341 50%) 4px 6px / 4px 4px,
linear-gradient(to bottom right, transparent 49.5%, #434341 50%) 4px 3px / 4px 4px;
background-repeat:no-repeat;
}
scrollbar.horizontal button.up:disabled {
min-width:11px;
background:
linear-gradient(to top right, transparent 49.5%, #757575 50%) 5px 6px / 3px 3px,
linear-gradient(to bottom right, transparent 49.5%, #757575 50%) 5px 4px / 3px 3px,
linear-gradient(to top right, transparent 49.5%, #9D9D9D 50%) 4px 6px / 4px 4px,
linear-gradient(to bottom right, transparent 49.5%, #959493 50%) 4px 3px / 4px 4px,
linear-gradient(to top right, transparent 49.5%, #FFFFFF 50%) 6px 7px / 3px 3px,
linear-gradient(to bottom right, transparent 49.5%, #FFFFFF 50%) 6px 5px / 3px 3px,
linear-gradient(to top right, transparent 49.5%, #F0EFED 50%) 5px 7px / 4px 4px,
linear-gradient(to bottom right, transparent 49.5%, #F0EFED 50%) 5px 4px / 4px 4px;
background-repeat:no-repeat;
}
scrollbar.horizontal trough {
min-height:14px;
}
scrollbar.horizontal slider {
min-width:18px;
}
scrollbar.horizontal button.down {
min-width:11px;
background:
linear-gradient(to bottom left, transparent 49.5%, #000000 50%) 5px 4px / 3px 3px,
linear-gradient(to top left, transparent 49.5%, #000000 50%) 5px 6px / 3px 3px,
linear-gradient(to bottom left, transparent 49.5%, #434341 50%) 5px 3px / 4px 4px,
linear-gradient(to top left, transparent 49.5%, #434341 50%) 5px 6px / 4px 4px;
background-repeat:no-repeat;
}
scrollbar.horizontal button.down:disabled {
min-width:11px;
background:
linear-gradient(to bottom left, transparent 49.5%, #757575 50%) 5px 4px / 3px 3px,
linear-gradient(to top left, transparent 49.5%, #757575 50%) 5px 6px / 3px 3px,
linear-gradient(to bottom left, transparent 49.5%, #959493 50%) 5px 3px / 4px 4px,
linear-gradient(to top left, transparent 49.5%, #9D9D9D 50%) 5px 6px / 4px 4px,
linear-gradient(to bottom left, transparent 49.5%, #FFFFFF 50%) 6px 5px / 3px 3px,
linear-gradient(to top left, transparent 49.5%, #FFFFFF 50%) 6px 7px / 3px 3px,
linear-gradient(to bottom left, transparent 49.5%, #F0EFED 50%) 6px 4px / 4px 4px,
linear-gradient(to top left, transparent 49.5%, #F0EFED 50%) 6px 7px / 4px 4px;
background-repeat:no-repeat;
}
scrollbar.horizontal button.up, scrollbar.horizontal button.up:disabled,
scrollbar.horizontal slider,
scrollbar.horizontal button.down, scrollbar.horizontal button.down:disabled {
min-height:11px;
box-shadow:
inset -2px -2px 0 0 #9E9A91,
inset 1px 1px 0 0 #FFFFFF,
inset -1px -1px 0 0 #000000;
/* ↑ → ↓ ← */
padding:1px 2px 2px 1px;
background-color:#DCDAD5;
}
scrollbar.vertical {
min-width:14px;
box-shadow:
inset 1px 1px 0 0 #8C8982,
inset -1px -1px 0 0 #FBFBFA;
padding:1px;
background-color:#C4C2BD;
}
scrollbar.vertical contents {
min-width:14px;
}
scrollbar.vertical button.up {
min-height:11px;
background:
linear-gradient(to bottom right, transparent 49.5%, #000000 50%) 4px 5px / 3px 3px,
linear-gradient(to bottom left, transparent 49.5%, #000000 50%) 6px 5px / 3px 3px,
linear-gradient(to bottom right, transparent 49.5%, #434341 50%) 3px 4px / 4px 4px,
linear-gradient(to bottom left, transparent 49.5%, #434341 50%) 6px 4px / 4px 4px;
background-repeat:no-repeat;
}
scrollbar.vertical button.up:disabled {
min-height:11px;
background:
linear-gradient(to bottom right, transparent 49.5%, #757575 50%) 4px 5px / 3px 3px,
linear-gradient(to bottom left, transparent 49.5%, #757575 50%) 6px 5px / 3px 3px,
linear-gradient(to bottom right, transparent 49.5%, #959493 50%) 3px 4px / 4px 4px,
linear-gradient(to bottom left, transparent 49.5%, #9D9D9D 50%) 6px 4px / 4px 4px,
linear-gradient(to bottom right, transparent 49.5%, #FFFFFF 50%) 5px 6px / 3px 3px,
linear-gradient(to bottom left, transparent 49.5%, #FFFFFF 50%) 7px 6px / 3px 3px,
linear-gradient(to bottom right, transparent 49.5%, #F0EFED 50%) 4px 5px / 4px 4px,
linear-gradient(to bottom left, transparent 49.5%, #F0EFED 50%) 7px 5px / 4px 4px;
background-repeat:no-repeat;
}
scrollbar.vertical trough {
min-width:14px;
}
scrollbar.vertical slider {
min-height:18px;
}
scrollbar.vertical button.down {
min-height:11px;
background:
linear-gradient(to top left, transparent 49.5%, #000000 50%) 6px 5px / 3px 3px,
linear-gradient(to top right, transparent 49.5%, #000000 50%) 4px 5px / 3px 3px,
linear-gradient(to top left, transparent 49.5%, #434341 50%) 6px 5px / 4px 4px,
linear-gradient(to top right, transparent 49.5%, #434341 50%) 3px 5px / 4px 4px;
background-repeat:no-repeat;
}
scrollbar.vertical button.down:disabled {
min-height:11px;
background:
linear-gradient(to top left, transparent 49.5%, #757575 50%) 6px 5px / 3px 3px,
linear-gradient(to top right, transparent 49.5%, #757575 50%) 4px 5px / 3px 3px,
linear-gradient(to top left, transparent 49.5%, #9D9D9D 50%) 6px 5px / 4px 4px,
linear-gradient(to top right, transparent 49.5%, #959493 50%) 3px 5px / 4px 4px,
linear-gradient(to top left, transparent 49.5%, #FFFFFF 50%) 7px 6px / 3px 3px,
linear-gradient(to top right, transparent 49.5%, #FFFFFF 50%) 5px 6px / 3px 3px,
linear-gradient(to top left, transparent 49.5%, #F0EFED 50%) 7px 6px / 4px 4px,
linear-gradient(to top right, transparent 49.5%, #F0EFED 50%) 4px 6px / 4px 4px;
background-repeat:no-repeat;
}
scrollbar.vertical button.up, scrollbar.vertical button.up:disabled,
scrollbar.vertical slider,
scrollbar.vertical button.down, scrollbar.vertical button.down:disabled {
min-width:11px;
box-shadow:
inset -2px -2px 0 0 #9E9A91,
inset 1px 1px 0 0 #FFFFFF,
inset -1px -1px 0 0 #000000;
/* ↑ → ↓ ← */
padding:1px 2px 2px 1px;
background-color:#DCDAD5;
}
/* }}} end of GTK+2-style scrollbar */
~/.config/gtk-3.0/gtk.css
다음 줄을 추가합니다.
@import 'gtk2xfce4basic.css';
~/.config/gtk-3.0/settings.ini
[Settings]
이 섹션 에 다음(또는 기타 적절한) 설정을 추가합니다 .
gtk-xft-rgba=none
gtk-cursor-theme-name=core
gtk-enable-animations=0
gtk-primary-button-warps-slider=false
환경
GTK_OVERLAY_SCROLLING=0
X11 세션에 대해 이것을 설정했는지 확인하십시오 . (이것은 일반적 ~/.pam_environment
으로 운영 체제, 시스템 초기화 방법 및 X11 부팅 방법에 따라 다음을 입력하여 수행할 수 있습니다 . 예~/.profile
~/.xinitrc
~/.xsessionrc
~/.xsessionrc
대개데비안과 그 파생물에서 가장 간단한 것입니다. )
GTK_OVERLAY_SCROLLING=0
export GTK_OVERLAY_SCROLLING
파이어폭스 브라우저
최신 버전은 GTK+3을 사용하고 자신만의 스크롤바를 그려야 한다고 주장합니다. 따라서 위의 수정만으로는 충분하지 않습니다. Firefox에 추가 구성을 추가해야 합니다.폐쇄하지만 작은 것 하나하나가 도움이 됩니다…
about:config
pref("widget.non-native-theme.enabled", false);
userContent.css
파일 에 다음 줄을 입력하세요 userContent.css
.
* {
scrollbar-color:unset !important;
scrollbar-width:unset !important;
}
이거 없으면문서(완전히 또는 작동 중) 그러나 다음이 필요합니다.활성화첫 번째. 이렇게 하면 Twitter, StackExchange 등에서 사용할 수 있는 스크롤바가 제공됩니다. ☻