Ubuntu 24.04でFlatpakアプリがGTKテーマを尊重しない問題を修正する

クイックリファレンス:通常、不一致を修正する方法

Ubuntu 24.04 で Flatpak アプリが Adwaita またはライト インターフェースで起動し、デスクトップがダーク に設定されている場合は、まずアプリが GTK 3 または GTK 4/libadwaita を使用しているかどうかを確認してください。次に Flatpak を更新し、対応する GTK 3 テーマ拡張機能を利用可能にし、デスクトップ ポータルがインストールされていることを確認してください。Flatpak アプリはサンドボックス内で実行されるため、Ubuntu ホストにインストールされているすべてのテーマ ファイルを自動的に読み込むわけではありません。

あなたが見るもの考えられる原因最初のアクション
GTK 3アプリはYaruの代わりにAdwaitaを使用しますアクティブなテーマ拡張機能が見つからないか、アプリのランタイムから見えません。Flatpakをアップデートし、対応するテーマ拡張機能をインストールしてください。
FlatpakはUbuntuのダークスタイルを無視しますポータル、カラースキーム設定、またはアプリのサポートに関する問題外観、ポータルパッケージを確認し、アプリを再起動してください。
アプリ1つだけ見た目が違うアプリは、GTK 4/libadwaita、Qt、Electron、またはカスタムスタイルを使用する場合があります。システム設定を変更する前にツールキットを確認してください

これらの手順は、Ubuntu 24.04 上の Flatpak アプリケーション、特に Flathub からインストールされたアプリケーションに適用されます。ただし、すべてのアプリケーションに Ubuntu のデスクトップ スタイルを強制的に適用するわけではありません。GTK 3 テーマ拡張機能、ライト/ダーク設定、アイコン、およびアプリケーション固有のスタイルは、それぞれ独立した要素です。

Flatpakのテーママッチングの仕組み

Flatpakアプリケーションは、ホストのシステムライブラリやテーマディレクトリではなく、独自のランタイムを使用します。FlatpakはUbuntuのテーマをそのまま/usr/share/themesアプリケーションのテーマソースとして公開することはできません。サンドボックスには独自のランタイムファイルシステムがあり、テーマは特定のGTKバージョンに依存する可能性があるためです。そのため、FlatpakはサポートされているGTK 3テーマをランタイム拡張機能として配布しています。

Flatpak はホストのアクティブな GTK テーマ名を読み取り、アプリのリモートに該当する拡張機能があればインストールできます。ただし、テーマはアプリに公開する必要があります。X11 では、GTK 3 は XSettings を介して選択されたテーマを受け取ることができます。Wayland では、GTK はデスクトップ設定ポータルを介して関連する外観設定を読み取ります。テーマ拡張機能または適切な統合パスが見つからない場合、アプリは Adwaita にフォールバックできます。

Ubuntu 24.04 の設定パネルには、ライトとダークのデスクトップスタイルが用意されています。この設定は、すべてのアプリケーションで Yaru GTK 3 テーマを使用するようにするのとは異なります。libadwaita で構築された GTK 4 アプリケーションは、一般的にサポートされているシステムの外観設定に従いますが、任意のレガシー GTK テーマの上書きを必ずしも受け入れるわけではありません。GTK 3 という名前の Flatpak テーマ拡張機能は、すべての GTK 4 または libadwaita アプリケーションをリスタイルするわけではありません。

技術的な概要については、Flatpakのデスクトップ統合およびテーマ設定に関するドキュメント、およびGTKポータルサポートに関するドキュメントを参照してください。

1. デスクトップスタイルとテーマ名を確認してください。

設定 > 外観を開き、ライトまたはダークのスタイルを選択してください。選択内容はデスクトップに即座に反映されます。GNOME Tweaksなどのツールを使用してカスタムGTKテーマを選択した場合は、そのテーマ名を正確にメモしておいてください。パッケージ名とテーマ名は、大文字小文字の区別や接尾辞が異なる場合があります。

ターミナルで、現在アクティブなGTKテーマ名とカラースキームの設定を確認できます。

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

最初のコマンドはGNOME設定に保存されているテーマ名を報告し、2番目のコマンドはサポートされている場合に優先されるライト/ダークスキームを報告します。これらのコマンドは値のみを検査します。チュートリアルからコピーしたテーマ名は、そのテーマがインストールされていて使用する予定がない限り設定しないでください。外観設定を変更した後は、影響を受けるアプリケーションを再起動してください。多くのプログラムは起動時にテーマを読み込むためです。

2. Flatpakを更新し、対応するテーマ拡張機能をインストールします。

まず、インストール済みのアプリケーションとランタイムを更新してください。Flatpakのドキュメントに記載されているテーマ統合機能を使用すると、設定済みのリモートからテーマが利用可能な場合、インストールまたは更新時に一致する拡張機能を自動的にインストールできます。

flatpak update

アプリがまだフォールバックテーマを使用している場合は、Flathub によって公開されている GTK テーマ拡張機能を一覧表示します。

flatpak remote-ls --columns=application flathub | grep '^org.gtk.Gtk3theme'

選択したGTK 3テーマと名前が一致する拡張機能を選択してください。Flathubには現在、Yaruテーマのバリアントがリストされていますorg.gtk.Gtk3theme.Yaru-light。たとえば、目的のテーマと一致する場合にのみ、そのバリアントをインストールしてください。

flatpak install flathub org.gtk.Gtk3theme.Yaru-light

FlathubのYaru-lightテーマリストでは、 GTKテーマパッケージとして識別されます。一致するテーマ名は、ホストの設定とリモートが現在公開している内容によって異なります。別のYaruバリアントやサードパーティ製テーマを使用する場合は、flatpak searchリモートリストを使用して正確な拡張子IDを確認してください。パッケージの接尾辞は、視覚的な名前から推測しないでください。

テーマがインストールされているにもかかわらずアプリが既に実行中の場合は、アプリのすべてのウィンドウを閉じてから再度開いてください。それでも解決しない場合は、拡張機能とアプリケーションが同じ Flatpak インストールから来ていることを確認してから、もう一度アップデートしてください。

flatpak list --app
flatpak list --runtime | grep -i theme
flatpak update

Flatpak は、ユーザーごとのインストールとシステム全体のインストールを区別します。アプリを でインストールした--userが拡張機能をシステム全体にインストールした場合、またはその逆の場合、アプリは期待どおりに拡張機能を認識できない可能性があります。可能な限り、アプリと拡張機能を同じインストール範囲に含めてください。特定のアプリのインストールは で確認できますflatpak info APP_ID。

3. Ubuntu 24.04 のデスクトップポータルを確認します。

GTKのFlatpakポータルのドキュメントによると、xdg-desktop-portal-gtkGTKテーマとフォントにはこれが必要です。UbuntuはこのバックエンドをNoble(24.04 LTS)リリース向けに公開しています。パッケージが存在しない場合は、Ubuntuのリポジトリからインストールしてください。

sudo apt update
sudo apt install xdg-desktop-portal-gtk

Ubuntu GNOME は、デスクトップ固有のポータル機能のために GNOME ポータル バックエンドも使用しています。GTK バックエンドをインストールしても、GNOME バックエンドを削除または置き換える必要はありません。デスクトップ環境用に提供されているポータル パッケージはそのままにしておいてください。インストール後、一度ログアウトして再度ログインするか、ユーザー ポータル サービスを再起動してから、影響を受けるアプリを再起動してください。

systemctl --user restart xdg-desktop-portal.service

systemd がユニットが利用できないと報告する場合は、代わりにサインアウトして再度サインインしてください。ポータルの有効化の詳細は、セッションとパッケージの状態によって異なる場合があります。Ubuntu のパッケージ一覧では、xdg-desktop-portal-gtk が Ubuntu 24.04 で利用可能であることが確認されています。

4. アプリがテーマを使用できるかどうかを判断する

可能であれば、複数の GTK 3 Flatpak をテストしてください。複数の GTK 3 アプリがテーマに従うのに、1 つのアプリが従わない場合は、残りの問題はそのアプリまたはそのランタイムに固有のものである可能性があります。GTK 3 アプリは動作するが、最新の GNOME アプリのアクセントカラーやウィジェットの外観が異なる場合は、GTK 3 のテーマ拡張機能が GTK 4/libadwaita に同じように適用されないため、これは想定内の動作です。

一部のアプリは、見た目がGNOMEアプリケーションに似ていても、Qt、Electron、または独自のインターフェースツールキットを使用しています。その場合、GTKテーマ拡張機能は効果がない可能性があります。Flatpakのパーミッションを変更する前に、アプリの公式ドキュメントでサポートされている外観オプションを確認してください。FlathubからインストールしたFlatpakの場合は、以下のコマンドでアプリIDとランタイムを調べてください。

flatpak info APP_ID

APP_IDを で表示されるアプリケーション ID に置き換えてくださいflatpak list --app。この出力は、実行時とインストール範囲を特定するのに役立ちますが、必ずしもツールキットを示すとは限らないため、必要に応じてアプリのドキュメントまたはプロジェクトページでツールキットを確認してください。

避けるべき一般的な修正方法

  • 見た目をコピーするためだけに、ホストファイルシステムへの広範なアクセス権限を付与しないでください。Flatpakのドキュメントでは、テーマの拡張やポータル/XSettingsの統合が通常のアプローチとして示されています。広範なアクセス権限はサンドボックスの分離を弱め、ホストとランタイムのGTKバージョンが異なる場合にも失敗する可能性があります。
  • GTK 3テーマ拡張機能を汎用的なダークモード切り替えスイッチとして使用しないでください。この拡張機能には、互換性のあるGTK 3アプリ用のテーマファイルが含まれています。システムカラースキームのサポートは、アプリとポータルが理解する必要のある別の設定です。
  • アプリケーションの拡張子とランタイムを確認する前に、アプリケーションを再インストールしないでください。再インストールすると、不足しているテーマやポータルの状態が変更されないまま、同じランタイムが取得される可能性があります。
  • まず最初に、グローバルポータル設定を変更しないでください。Ubuntu GNOMEのバックエンド選択はセッションごとに異なります。ポータルの設定を変更すると、テーマ設定だけでなく、ファイルピッカーやその他のデスクトップ統合機能にも影響が出る可能性があります。

検証チェックリスト

  • Ubuntuの設定画面には、意図したライトモードまたはダークモードが表示されます。
  • ホストGTKテーマ名は既知であり、Flatpakには対応するGTK 3拡張機能が利用可能です。
  • flatpak update完了しました。アプリとテーマ拡張機能は互換性のあるインストール範囲内にあります。
  • パッケージxdg-desktop-portal-gtkがインストールされました。変更後、ユーザーセッションまたはポータルが再起動されました。
  • 影響を受けたアプリケーションは完全に閉じられ、その後再開されました。
  • あなたはツールキット(GTK 3、GTK 4/libadwaita、Qt、Electronなど)ごとにアプリを比較しましたが、それらは異なる動作をする可能性があります。

チェックリストの項目がすべてクリアされ、変更されていないアプリが1つだけ残っている場合は、そのアプリのFlatpak ID、ランタイム、Ubuntuセッションタイプ(WaylandまたはX11)、および2つの読み取り専用コマンドの出力結果を参照して、アプリの課題トラッカーまたはドキュメントを確認するのがgsettings最も有効な次のステップです。これにより、サンドボックスの脆弱性を損なうことなく、アプリ固有のスタイル設定とデスクトップ統合コンポーネントの欠落を区別することができます。

Ubuntuの最新ユーザーガイドでは、設定 > 外観にあるライト/ダーク設定について説明しています。Flatpakの動作は、バージョン、アプリのランタイム、ポータルバックエンド、ツールキット、リモートメタデータによって異なる場合があります。アクティブなテーマがランタイム用にパッケージ化されていない場合、アプリは独自のデフォルトの外観を引き続き使用する可能性があります。

コメントを残す

Ubuntu 24.04でFlatpakアプリがGTKテーマを尊重しない問題を修正する

Ubuntu 24.04でFlatpakアプリがGTKテーマを尊重しない問題を修正する

Ubuntu 24.04 で GTK テーマを無視する Flatpak アプリのトラブルシューティングを行います。テーマ拡張機能、GTK ポータル、ライトモードとダークモードの設定、およびアプリツールキットの制限を確認してください。

Pardusエンタープライズ管理ソフトウェアの設定方法(LIDER AHENK)

Pardusエンタープライズ管理ソフトウェアの設定方法(LIDER AHENK)

Pardus上でLIDER AHENKを品質重視の設定で構成します。前提条件を確認し、Liderをデプロイし、Ahenkクライアントを登録し、管理を検証します。

Pardus 23ワークステーションでNVIDIAドライバーを有効にする方法

Pardus 23ワークステーションでNVIDIAドライバーを有効にする方法

Pardus NVIDIAドライバーインストーラーを使用して、Pardus 23でNVIDIAドライバーを有効にします。GPUの互換性を確認し、安全に再起動し、ドライバーを検証し、一般的な問題のトラブルシューティングを行います。

Ubuntu Server 24.04 最小インストール vs 標準インストール:パフォーマンスベンチマークが実際に示すもの

Ubuntu Server 24.04 最小インストール vs 標準インストール:パフォーマンスベンチマークが実際に示すもの

再現可能なベンチマーク方法を用いて、Ubuntu Server 24.04の最小インストールと標準インストールにおけるディスク使用量、メモリ使用量、起動時間、サービス、および実際のワークロードのパフォーマンスを比較します。

SUSE Linux Enterprise で「Zypper Locked by Another Process」の問題を修正する

SUSE Linux Enterprise で「Zypper Locked by Another Process」の問題を修正する

SLESにおけるZypperのロックエラーを安全に解決します。プロセスを特定し、待機するか停止するかを選択し、トランザクションロックとパッケージロックを区別します。

Pardus XFCE vs. GNOME:公平なメモリベンチマークでわかることとわからないこと

Pardus XFCE vs. GNOME:公平なメモリベンチマークでわかることとわからないこと

Pardus XFCEとGNOMEのメモリ使用量を公平に比較​​します。公式の25.2ソースコードで確認できる内容、利用可能なRAMの測定方法、そしてどちらのエディションがあなたのPCに適しているかをご覧ください。

HamoniKR OSレビュー:韓国の国家Linuxは企業向けに準備万端か?

HamoniKR OSレビュー:韓国の国家Linuxは企業向けに準備万端か?

ビジネス向けデスクトップOSであるHamoniKR OS 8 Paektuの実践的なレビュー。Ubuntu 24.04をベースとしている点、2034年までのアップデート保証、韓国のワークフロー、企業向けパイロットテストなどを網羅しています。

Harmonica OS (HamoniKR) で忘れてしまったルートパスワードをリセットする方法

Harmonica OS (HamoniKR) で忘れてしまったルートパスワードをリセットする方法

GRUBリカバリモードを使用して、HamoniKR OSで忘れてしまった管理者パスワードまたはrootパスワードをリセットする方法を、検証済みのコマンド、トラブルシューティングのヒント、および暗号化に関する注意点とともに解説します。

HamoniKR OSでユーザー設定をバックアップおよび復元する方法

HamoniKR OSでユーザー設定をバックアップおよび復元する方法

HamoniKRのユーザー設定を外部ドライブにバックアップする方法、アーカイブを検証する方法、選択したデスクトップおよびアプリの設定を安全に復元する方法を学びましょう。

SUSE Enterprise ServerでLUKSを使用して暗号化ボリュームを設定する方法

SUSE Enterprise ServerでLUKSを使用して暗号化ボリュームを設定する方法

SUSE Linux Enterprise Server 上で LUKS 暗号化ボリュームを作成、ロック解除、フォーマット、マウント、および永続化する方法を学びましょう。安全チェックと復旧のヒントも含まれています。