~/.config/gtk-3.0/gtk.css
GTK3アプリケーションでスクロールボタン付きの既存のスクロールバーを有効にするためにコンテンツを含むファイルを追加しました。
scrollbar {
-GtkScrollbar-has-backward-stepper: true;
-GtkScrollbar-has-forward-stepper: true;
}
scrollbar slider {
border: 0;
border-radius: 0;
min-width: 15px;
min-height: 15px;
}
以下の最初のスクリーンショットは、GTK3アプリケーションPlumaの結果を示しています。次の2番目のスクリーンショットのPCManFMなどのGTK2アプリケーションで同じ種類のスクロールバーを取得するにはどうすればよいですか?
2020-08-13 修正:私はこの提案を試しましたより大きな静的スクロールバーを取得する方法...ただし、以下の2番目のスクリーンショットに示すように、まだ狭いスクロールバーを持つファイルブラウザPCManFMには違いはありません。
2020-08-18 修正:以下のMiloš Pavlovićが提案したように、GTK2アプリケーションのスクロールバーを変更しましたが、スクロールバーにステッパーがなく、スライダーが非常に奇妙に見えます。以下の3番目のスクリーンショットを参照してください。
2023-07-19 修正:Debian 12をインストールした後、この問題をより深く掘り下げました。次の行をコメントアウトすると、正しいステップ矢印が得られます/usr/share/themes/Adwaita/gtk-2.0/main.rc
。
image {
function = ARROW
detail = "vscrollbar"
}
image {
function = ARROW
detail = "hscrollbar"
}
以下は、次の設定を使用したスクリーンショットです~/.gtkrc-2.0
。
gtk-theme-name = "Adwaita"
gtk-icon-theme-name = "Adwaita"
style "TraditionalScrollbar" {
GtkScrollbar::has-backward-stepper = 1
GtkScrollbar::has-forward-stepper = 1
GtkScrollbar::slider-width = 16
GtkScrollbar::stepper-size = 16
}
class "GtkScrollbar" style "TraditionalScrollbar"
残りの質問はどのように
- スクロールバーを中空にすることなくしっかりとします。
- スクロールバーにスロットを埋めるようにします。
- スクロールバーの角を丸くしないでください。
答え1
隠しファイルがあります.gtkrc-2.0現在、テーマを扱うデフォルトフォルダにあります。作成されていない場合。ファイルの末尾の横に貼り付け
style "myscrollbar"
{
GtkRange::stepper-size = 16
GtkRange::trough-under-steppers = 1
GtkScrollbar::has-backward-stepper = 1
GtkScrollbar::has-forward-stepper = 1
GtkScrollbar::slider-width = 16
GtkScrollbar::trough-border = 2
}
class "GtkScrollbar" style "myscrollbar"
変更を適用するには、保存してログアウト/ログインしてください。
GtkRange::stepper-size = 0 --> 16は矢印ボタンの垂直サイズであり、値が0の場合、矢印ボタンは消えます(少なくとも一部のアプリでは?)
GtkRange::trough-under-steppers = 0 --> 1 (よりきれいに見えるように左スクロールバーの境界線を矢印の上に展開)
GtkScrollbar::has-*-stepper = 0 --> 1 スクロール矢印をオンにします(ステッパーサイズが 0 でない場合)。
GtkScrollbar::slider-width = 14 --> 16は明らかにスクロールバーとスライダの幅を変更しますが、右側の境界線がない場合はスライダが中央からずれ、幅が同じ高さではないようです。
GtkScrollbar::trough-border = 0 --> 2 は (左) 境界線を取得するための要件の一部です。
答え2
不足している設定はですGtkScrollbar::stepper-size = 16
。したがって、単純な~/.gtkrc-2.0
ファイルは次のようになります。
style "myscrollbar"
{
GtkScrollbar::stepper-size = 16
GtkScrollbar::has-backward-stepper = 1
GtkScrollbar::has-forward-stepper = 1
}
class "GtkScrollbar" style "myscrollbar"
動作します。
スクロールバーの両端にステッパー三角形を表示する方法については、以下を参照してください。この回答。
答え3
GTK 2アプリケーションの既存のスクロールバー:
Adwaitaテーマからスクロールバーの矢印アイコンをコピーし、角が丸い(丸みを帯びたエッジではない)スクロールバースライダー用のアイコンを作成します。
$ mkdir -p ~/.local/share/themes/Adwaita/gtk-2.0/assets
$ cp /usr/share/themes/Adwaita/gtk-2.0/assets/pan-*.png ~/.local/share/themes/Adwaita/gtk-2.0/assets/
$ convert -size 16x16 "canvas:#787c7d" ~/.local/share/themes/Adwaita/gtk-2.0/assets/scrollbar-slider.png
$ convert -size 16x16 "canvas:#535859" ~/.local/share/themes/Adwaita/gtk-2.0/assets/scrollbar-slider-hover.png
$ convert -size 16x16 "canvas:#2a76c6" ~/.local/share/themes/Adwaita/gtk-2.0/assets/scrollbar-slider-active.png
~/.gtkrc-2.0
次の内容でファイルを作成します。
gtk-theme-name = "Adwaita"
gtk-icon-theme-name = "Adwaita"
style "TraditionalScrollbar" {
GtkScrollbar::has-backward-stepper = 1
GtkScrollbar::has-forward-stepper = 1
GtkScrollbar::slider-width = 16
GtkScrollbar::stepper-size = 16
engine "pixmap" {
/*vertical scrollbar steppers*/
image {
function = ARROW
state = NORMAL
detail = "vscrollbar"
overlay_file = ".local/share/themes/Adwaita/gtk-2.0/assets/pan-up.png"
overlay_stretch = FALSE
arrow_direction = UP
}
image {
function = ARROW
state = INSENSITIVE
detail = "vscrollbar"
overlay_file = ".local/share/themes/Adwaita/gtk-2.0/assets/pan-up-insensitive.png"
overlay_stretch = FALSE
arrow_direction = UP
}
image {
function = ARROW
state = NORMAL
detail = "vscrollbar"
overlay_file = ".local/share/themes/Adwaita/gtk-2.0/assets/pan-down.png"
overlay_stretch = FALSE
arrow_direction = DOWN
}
image {
function = ARROW
state = INSENSITIVE
detail = "vscrollbar"
overlay_file = ".local/share/themes/Adwaita/gtk-2.0/assets/pan-down-insensitive.png"
overlay_stretch = FALSE
arrow_direction = DOWN
}
/*horizontal scrollbar steppers*/
image {
function = ARROW
state = NORMAL
detail = "hscrollbar"
overlay_file = ".local/share/themes/Adwaita/gtk-2.0/assets/pan-left.png"
overlay_stretch = FALSE
arrow_direction = LEFT
}
image {
function = ARROW
state = INSENSITIVE
detail = "hscrollbar"
overlay_file = ".local/share/themes/Adwaita/gtk-2.0/assets/pan-left-insensitive.png"
overlay_stretch = FALSE
arrow_direction = LEFT
}
image {
function = ARROW
state = NORMAL
detail = "hscrollbar"
overlay_file = ".local/share/themes/Adwaita/gtk-2.0/assets/pan-right.png"
overlay_stretch = FALSE
arrow_direction = RIGHT
}
image {
function = ARROW
state = INSENSITIVE
detail = "hscrollbar"
overlay_file = ".local/share/themes/Adwaita/gtk-2.0/assets/pan-right-insensitive.png"
overlay_stretch = FALSE
arrow_direction = RIGHT
}
/*scrollbar sliders*/
image {
function = SLIDER
state = NORMAL
detail = "slider"
file = ".local/share/themes/Adwaita/gtk-2.0/assets/scrollbar-slider.png"
}
image {
function = SLIDER
state = PRELIGHT
detail = "slider"
file = ".local/share/themes/Adwaita/gtk-2.0/assets/scrollbar-slider-hover.png"
}
image {
function = SLIDER
state = ACTIVE
detail = "slider"
file = ".local/share/themes/Adwaita/gtk-2.0/assets/scrollbar-slider-active.png"
}
}
}
class "GtkScrollbar" style "TraditionalScrollbar"
結果は次のとおりです。