修復 Ubuntu 24.04 中 Flatpak 應用不遵循 GTK 主題的問題

快速參考:通常什麼方法可以解決不符問題

如果在 Ubuntu 24.04 上,Flatpak 應用程式開啟時顯示 Adwaita 或淺色介面,而桌面主題設定為深色,請先檢查應用程式使用的是 GTK 3 還是 GTK 4/libadwaita。然後更新 Flatpak,啟用匹配的 GTK 3 主題擴展,並確認桌面入口網站已安裝。 Flatpak 應用程式運行在沙盒環境中,因此不會自動讀取 Ubuntu 主機上安裝的所有主題檔案。

你所看到的可能原因第一行動
GTK 3 應用程式使用 Adwaita 而不是 Yaru當前主題擴充缺失或對應用程式運行時不可見。更新 Flatpak 並安裝匹配的主題擴展
Flatpak 忽略了 Ubuntu 的黑暗風格入口網站、配色方案設定或應用程式支援問題檢查外觀、門戶軟體包,然後重新啟動應用程式
只有一款應用程式看起來不一樣。該應用程式可能使用 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. 更新 Flatpak 並安裝相符的主題擴展

請先刷新已安裝的應用程式和執行時間環境。 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 會區分使用者級安裝和系統級安裝。如果您使用 `--app` 安裝了應用--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 Portal 後端來實作桌面特定的入口網站功能。安裝 GTK 後端並不代表您應該移除或替換 GNOME 後端。請保留桌面環境提供的入口網站軟體包。安裝完成後,請登出並重新登錄,或重新啟動使用者入口網站服務,然後重新啟動受影響的應用程式:

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

如果 systemd 報告該單元不可用,請登出並重新登入。入口網站啟動詳情可能會因會話和軟體包狀態而異。 Ubuntu 的軟體套件清單確認xdg-desktop-portal-gtk 適用於 Ubuntu 24.04。

4. 決定該應用程式是否可以使用該主題

如果可以,請測試多個 GTK 3 Flatpak 應用。如果多個 GTK 3 應用程式都能套用主題,但有一個應用程式不行,那麼剩餘的問題可能出在該應用程式或其執行環境上。如果 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文件中將主題擴展和 portal/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 的回應可能不同。

如果檢查清單通過,但某個應用程式仍未更改,那麼下一步最有效的辦法是查閱該應用程式的問題追蹤器或文檔,並提供其 Flatpak ID、運行時、Ubuntu 會話類型(Wayland 或 X11)以及兩個只讀命令的輸出結果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 最小化安裝版與標準安裝版:效能基準測試結果究竟如何

Ubuntu Server 24.04 最小化安裝版與標準安裝版:效能基準測試結果究竟如何

使用可重複的基準測試方法,比較 Ubuntu Server 24.04 Minimal 和 Standard 安裝的磁碟使用情況、記憶體、啟動時間、服務和實際工作負載效能。

修復 SUSE Linux Enterprise 中的「Zypper 被另一個進程鎖定」問題

修復 SUSE Linux Enterprise 中的「Zypper 被另一個進程鎖定」問題

安全地解決 SLES 中的 Zypper 鎖定錯誤。識別進程,選擇等待或停止該進程,並區分事務鎖和包鎖。

Pardus XFCE 與 GNOME:公平記憶體基準測試能告訴你什麼,又不能告訴你什麼?

Pardus XFCE 與 GNOME:公平記憶體基準測試能告訴你什麼,又不能告訴你什麼?

公平地比較 Pardus XFCE 和 GNOME 的記憶體使用情況。看看官方 25.2 版本的信息,了解如何測量可用內存,以及哪個版本更適合您的電腦。

HamoniKR作業系統評測:韓國國家Linux系統是否已做好企業級應用的準備?

HamoniKR作業系統評測:韓國國家Linux系統是否已做好企業級應用的準備?

對 HamoniKR OS 8 Paektu 商業桌面版進行實用評測,涵蓋其 Ubuntu 24.04 基礎、2034 年更新聲明、韓國工作流程和企業試點檢查。

如何在 Harmonica OS (HamoniKR) 上重設忘記的 Root 密碼

如何在 Harmonica OS (HamoniKR) 上重設忘記的 Root 密碼

使用 GRUB 復原模式重設 HamoniKR OS 上忘記的管理員或 root 密碼,包含已驗證的指令、故障排除技巧和加密注意事項。

如何在 HamoniKR OS 上備份和恢復用戶設置

如何在 HamoniKR OS 上備份和恢復用戶設置

了解如何將 HamoniKR 使用者設定備份到外部磁碟機、驗證存檔以及安全地還原選定的桌面和應用程式首選項。

如何在 SUSE 企業伺服器上使用 LUKS 設定加密磁碟區

如何在 SUSE 企業伺服器上使用 LUKS 設定加密磁碟區

了解如何在 SUSE Linux Enterprise Server 上建立、解鎖、格式化、掛載和持久化 LUKS 加密磁碟區,以及安全檢查和復原提示。