すべてのウィンドウの影を制御するにはどうすればよいですか?

すべてのウィンドウの影を制御するにはどうすればよいですか?

すべてのウィンドウのドロップ/ボックス シャドウを制御するにはどうすればよいですか? Gnome テーマにはさまざまなサイズのシャドウがあるようなので、可能だと思います。

私が試したことは次のとおりです:

  1. 「~/.config/gtk-3.0/gtk.css」の gtk.css を編集して以下を追加します。

    .window-frame {box-shadow: none;}
    .window-frame:backdrop {box-shadow: none;}
    
  2. 「~/.themes/」にインストールされたダウンロードしたテーマのコピーに同じ CSS を追加しました。これには .window-frame クラスがなかったので追加しました。

  3. 同じ CSS と、「/usr/share/themes/」からコピーしたデフォルトのテーマの 1 つ (Albatross) を追加しました。これには、「gtk-widgets.css」に .window-frame クラスがあったので、それを変更しました。

それぞれの後に Gnome シェルを再起動しました。試行 1 と 2 では何も起こりませんでした。試行 3 では影は消えましたが、アプリケーションの更新にも影響しているようで、テキストのスクロールは更新されません。

--

仕様: Ubuntu 18.04 (Gnome/Mutter 搭載)

答え1

これを解決するには、使用しているテーマの「gtk.css」を編集します。テーマはドロップ/ボックス シャドウを制御します。Ubuntu 18.04 でテストしました。「~/.config/gtk-3.0/gtk.css」でデフォルトを編集できますが、もっと良い方法として、インストールした独自のテーマを編集できます (デフォルトのテーマのコピーであってもかまいません)。ホーム ディレクトリの「~/.themes/」フォルダーにテーマをインストールし、「gtk-3.0」フォルダーで「gtk.css」ファイルを見つけます。テキスト エディターでファイルを開き、「decoration」と「decoration:backdrop」を検索します。ウィンドウのシャドウを削除するには、box-shadow 行をコメント アウトし、次のように独自の設定を「none」に追加します。

decoration
{
    border-radius: 6px 6px 0 0;
    border-width: 0px;
    /*box-shadow: 1px 12px 12px 12px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(0, 0, 0, 0.18);*/
    box-shadow: none;
    margin: 4px;
}

decoration:backdrop
{
    border-radius: 6px 6px 0 0;
    border-width: 0px;
    /*box-shadow: 1px 12px 12px 12px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(0, 0, 0, 0.18);*/
    box-shadow: none;
    margin: 4px;
}

ファイルを保存します。[設定] > [外観] でテーマを読み込む必要があります。すでに使用している場合は、別のテーマに変更してから、もう一度テーマに戻します。これで、ウィンドウに影がなくなります。下の画像を参照してください。

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

答え2

いつでも GTK Inspector ( gsettings set org.gtk.Settings.Debug enable-inspector-keybinding true) を有効にして内部を調べることができます。

これが私の~/.config/gtk-3.0/gtk.css

window decoration, window paned, window paned headerbar {
/* square top corners */
    border-radius: 0;
}

window paned headerbar
{
/* header top shadow */
    box-shadow: none;
}   

window decoration
{
/* Remove shadows */
    box-shadow: none;
/* window border */
    border: 1px solid silver;
}

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

関連情報