より大きな静的スクロールバー(通常のスクロールバー)を取得するにはどうすればよいですか?


40

外側のオーバーレイスクロールバーがついに消えてうれしいです。

しかし、スクロールバーはまだかみそりの細い線であり、マウスがホバリングすると、かみそりの少ない細いスクロールバーになりますが、依然として細いスクロールバーになります。

通常のスクロールバーを取得するにはどうすればよいですか?つまり、Firefoxのような他のOSのように、マウスが指しているものに応じて変化しないスクロールバーで、幅もいいです。

私はすでに試しました

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

しかし、運はありません。


2
これはまだどういう問題ですか?標準システム設定の修正/一部ではありませんか?4年間、私はこのようなものの上にかなりのUbuntuを怒りとmintier牧草地に行ってきました...笑前なんてこった
ニューロ

@neuronetアーメン、兄弟
スティーブコーエン

回答:


22

このファイルを編集/usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css

次の行を探します(1200行目付近):- GtkRange-slider-width:10;

そして、10を20や30のような大きな数に変更し、完了です:)

また、小さすぎると思います...

この画像をご覧ください:

ここに画像の説明を入力してください

スクロールバーのサイズを16に変更し、マウスを置いていないときに縮小しないようにするには、上の図で変更を加えます。

16以外のサイズを使用する場合は、マージンサイズを試して適切な値を設定してください。


1
16に設定し、すべてのホバー/ドラッグをコメントしましたが、スクロールバーは古くて静的なものになりました...数秒後にはまだ消えています。見たことのないアニメーション機能はありますか?
サイモン

[OK]を、ので、右あなたが最初の変更を行った場合について、あなたはこれらが表示されます:margin-left: 2px;だけでなく、margin-rightmargin-top。これらの3つすべてを2pxから7pxに変更すると、スクロールバーは広くなります。
ドリアン

私は答えに写真を追加して、スクロールバーを大きく保つために何を変更する必要があるかを明確にしようとしました。
ドリアン

6
どうもありがとうございます!私の祖父は非常に小さなスクロールバーに苦労していましたが、25ピクセルに変更し、今ではプロのようにスクロールしています!
アーティセイドール16

1
注:私は24に変更しましたが、ホバーしても正しい状態を維持するために、マージンに使用するのに適切なサイズは7pxのままでした。また、変更を有効にするために、プログラム(Firefoxなど)を再起動してください。素晴らしいこと。
ニューロネット

26

そこで注意する必要があると思います。システム内のすべてのユーザーアカウントのアクティビティを実際に妨害するつもりがない限り、テーマのシステム全体のデフォルトを編集することはお勧めしません。その際にエラーが発生すると、すべてのユーザーアカウントに影響します。もう1つの注意点は、パッケージが更新されると、変更が消去されることです。

この戦略のもう1つの欠点は、1つのGTKテーマの動作のみを変更することですが、すべてのGTK-3.0テーマでスクロールバーのサイズを変更する必要がある場合があります。

代わりに、ユーザーアカウント内の構成ファイルを編集します。トリックは、どちらが目的のエンドポイントまでの最短距離であるかを把握することです。編集するGTKファイルはCSS(カスケードスタイルシート)セットアップの一部であるため、アカウントに追加したカスタマイズにより設定が変更されます。

ユーザーアカウントのフォルダ〜/ .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

これにより、スクロールバーのクリックがファイル内の特定のポイントに移動するのを防ぎ、代わりに1画面だけ進めます。私はそれが好きです!

知っておくべきもう1つのことは、そのテーマファイルを変更すると(以前に@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システム管理者のアドバイス」は、システム全体で構成ファイルを編集しないでください。システムを危険にさらしているため、変更はリビジョンを超えて持続せず、rootアクセスが必要になります。これは、このような表面的なものには適していません。ユーザーアカウントを変更する方法を見つけます。

PS。あなたが本当にシステムファイルをいじりたいなら(すべてのユーザーが自分の好きなサッカーチームの色を壁紙と配色として持つことを本当に望むなら、私はそうすることがあります:))、最初にすべきことはのコピーを作ることです元のファイルと元の名前を「gtk-widgets.css.orig」にします。次に、ファイルを編集するときに、編集のコピーを「gtk-widgets.css.20160919」として保存します。ここには、末尾にYYYYMMDDの日付があります。これにより、debパッケージが更新されると、編集したファイルのコピーが作成されます。編集したgtk-widgets.cssという名前は、パッケージのインストールによって消去されます。


「上で編集していたテーマファイル」とは何ですか?「上」はここでは何の意味もありません。
エンドリス

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に移行します。
ドミニクチェリサーノ

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~/.config/gtk-3.0/gtk.css
ウラジミールパンテレエフ

1
Ubuntu 18.04ではチャームのように機能します。ありがとう!
スティーブコーエン

9か月後:これはUbuntu 18.04の下で魅力のように動作します-GNUCashアプリケーションの全体を混乱させることを除いて。lists.gnucash.org/pipermail/gnucash-user/2019-February/…を参照してください。これらの変更を行うと、GNUCashのスクロールバー機能が破壊されますが、他のアプリは破壊されません。ため息。
スティーブコーエン

1
@ SteveCohen、gnucashリンクを見ました。「〜/ .config / gtk-3.0.gtk.css」と書きましたが、そうでなければなりません~/.config/gtk-3.0/gtk.css。また、GnuCashがあるように思われるGTK2のアプリケーションではなく、GTK 3アプリケーション。
モニカの正義

4

私はUbuntu 18.04を使用していますが、これがすべてのスクロールバーをFirefoxからLibreOffice、gnome-terminalに変更した唯一のソリューションでした。上記のソリューションは、1つまたは2つのアプリケーションでは正常に機能しましたが、すべてではありませんでした。

注:これにより、大きなモニターに適した大きなスクロールバーが得られます。これは、画面の横を見るたびに画面の隅から見ることができるため、大きなモニターに適しています。小さいものが必要な場合は、すべての70ピクセルを20ピクセルや30ピクセルなどの小さい数値に変更し、それに応じて調整します。

に次のテキストを入力し~/.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.