Flatpakアプリは場違いに見えますか? FlatpakアプリケーションにGTKテーマを適用する方法は次のとおりです

一部のユーザーがFlatpakアプリのインストールを回避する理由の1つは、ほとんどのFlatpakアプリが現在のシステムテーマに従って外観を変更しないことです。 これにより、アプリケーションは、他の点では美しいセットアップの場所から外れて見えるようになります。

Flatpakアプリがシステムテーマと一致しません

FlatpakアプリにGTKテーマを適用する公式の方法は 目的のテーマをフラットパックとしてインストールする。 ただし、FlatpakとしてインストールできるGTKテーマはごくわずかです。

これは、美しいGTKテーマを見つけた場合でも、Flatpakアプリケーションはデフォルトの外観を使用し続けることを意味します。 ちょっと待って! 回避策があります。

このチュートリアルでは、flatpakアプリに外部GTKテーマを認識させる方法を紹介します。

FlatpakアプリケーションへのGTKテーマの適用(中級レベル)

先に進む前に、flatpakアプリがこの動作をする理由を理解しましょう。

Flatpakアプリは「コンテナー」内で実行されるため、適切なアクセス許可を明示的に設定しない限り、ホストファイルシステム、ネットワーク、または物理デバイスにアクセスできません。これを実行します。

前に述べたように、これは回避策であり、完璧な解決策ではありません。 システムテーマを変更するときに、Flatpakアプリのテーマが自動的に変更されることを期待しないでください。 ただし、1つのコマンドですべてのFlatpakアプリの変更を行うことができます。

それを達成する方法を見てみましょう。 このチュートリアルでは、Linuxコマンドラインに少し精通している必要があり、ターミナルを操作する方法を見つけることができることに注意してください。

ステップ1:FlatpakアプリにGTKテーマの場所へのアクセスを許可する

GTKテーマは、すべてのユーザーの場合は/ usr / share / themesにあり、特定のユーザーの場合は〜/ .themesにあります。

すべてのflatpakパッケージに許可を与える 〜/ .themesにアクセスするには、次のコマンドを実行します。

sudo flatpak override --filesystem=$HOME/.themes

によると、/ usr / share / themesへのアクセスを許可できないことに注意してください。 フラットパックのドキュメントはブラックリストに掲載されています

あるいは、アプリケーションごとにこれを行うこともできます。 テーマを変更するアプリケーションIDを指定する必要があります。

sudo flatpak override org.gnome.Calculator --filesystem=$HOME/.themes

ステップ2:使用するテーマをFlatpakアプリに指示する

このディレクトリには複数のテーマが含まれている可能性があるため、〜/ .themesへのアクセスを許可するだけでは不十分です。 使用するGTKテーマをflatpakに指示するには、最初に目的のテーマの名前を取得してから、次のコマンドを適用します。

sudo flatpak override --env=GTK_THEME=my-theme

下のスクリーンショットでわかるように、Ant-BloodyとOrchis-darkの2つのテーマを利用できます。 正確なテーマ名をコピーして貼り付けます 上記のコマンドで:

すべてのFlatpakアプリにGTKテーマを設定する

または、個々のアプリケーションについて、次を実行します。

sudo flatpak override org.gnome.Calculator --env=GTK_THEME=my-theme

my-themeを、適用するテーマのフォルダー名に置き換えます(〜/ .themesにある必要があります)。

ステップ3:Flatpakアプリを実行してテーマの変更をテストする

アプリケーションがすでに実行されている場合は、次のことを行う必要があります close もう一度やり直してください。 新しく起動したアプリケーションが、前に指定したテーマを使用していることがわかります。

上記の手順の前のGNOME計算機とGNOMEビルダー(Flatpakバージョン)のスクリーンショットは次のとおりです。

デフォルトのAdwaitaテーマのFlatpakアプリケーション

そして、上記の手順の後(Canta GTKテーマを使用):

カンタダークをテーマにしたFlatpakアプリケーション

いいですよね? さて、ここにあなたを残すことができますが、変更を元に戻すための手順に言及するのが適切でしょう。

変更を元に戻す

すべてのオーバーライドを一度にリセットすることで、変更をリセットできます。 これにより、明示的に設定した以前のオーバーライドがリセットされることに注意してください。

sudo flatpak override --reset

または、パッケージレベルで権限をリセットすることもできます。

sudo flatpak override --reset org.example.app

以前に「flatpakoverride」を使用して特定のFlatpakパッケージのGTK_THEMEまたはファイルシステムをオーバーライドしたことがある場合は、リセットすると再設定に役立ちます。

追加情報

通常のGTKアプリケーションはgsettingsで指定されたGTKテーマをロードします。次のコマンドを実行して、現在適用されているGTKテーマを取得できます。

gsettings get org.gnome.desktop.interface gtk-theme

GTKテーマを設定するには、次のコマンドを実行します。

gsettings set org.gnome.desktop.interface gtk-theme my-theme

Flatpakで上記を行うには、以下を実行して、目的のアプリケーションのコンテナー内でシェルセッションに入る必要があります。

flatpak run --command=bash org.gnome.Calculator

そして、このセッション内で、上記のコマンドを実行します。

gsettings set org.gnome.desktop.interface gtk-theme my-theme

しかし、それは私にはうまくいかなかったので、デバッグ目的で使用されることになっているGTK_THEME環境変数を使用することにしました。 gsettingsを機能させることができた場合は、コメントで教えてください。

自動化されたソリューションではないことはわかっていますが、少なくとも、いくつかのコマンドを使用してFlatpakアプリケーションのテーマを変更するオプションが提供されます。 このようにして、Flatpakアプリケーションをシステムの他の部分と統合することができます。

これがお役に立てば幸いです。 問題が発生した場合は、コメントにその旨を記載してください。

著者情報:この記事は、FOSSリーダーのHamza Algoharyによって寄稿され、AbhishekPrakashによって編集されました。 Hamzaは、コンピューターエンジニアリングの学生であり、Linuxおよびオープンソースの愛好家です。 彼はまた、Linuxデスクトップ用のアプリを開発しています。 あなたは彼の作品を見つけることができます 彼のGitHubプロファイル