如何将任何主题应用于 Flatpak 应用程序

Flatpak 应用程序是沙盒化的,因此无法访问您系统上的任何其他文件,虽然出于隐私原因这是一个很好的做法,但使用 Flatpaks 也有缺点。 缺点是所有 Flatpak 应用程序都会占用您磁盘上的大量空间,并且它们不符合您的桌面主题。

虽然您可以在您的 PC 上附加更多存储空间,或者您的磁盘上没有几百兆字节,但您肯定不能没有任何应用程序上漂亮的深色模式。

Flatpak 应用程序主题不同于 GTK 主题

在本教程中,我将向您展示如何通过多种方法在 Flatpak 应用程序上设置 GTK 或 QT 主题。

如何在 Linux 上设置和启用 Flatpaks

目录

为什么 Flatpak 应用程序不尊重你的主题?

如前所述,Flatpak 应用程序在“容器”内运行,如果您没有授予它们任何适当的权限,它们将无法访问主机文件系统、物理设备或网络。 您可以手动授予应用程序访问主题和图标文件夹的权限,以便检测主题并应用它们。

现在,您可以使用命令行或使用来自 Flathub 的 Flatseal 应用程序来执行此操作。

通过命令行应用 GTK 主题

现在让我们回顾一下通过命令行将 GTK 主题应用到 Flatpak 应用程序的步骤。

给予 Flatpaks 适当的权限

主题为任何用户存储在本地 ~/.themes 目录和图标存储在 ~/.icons 文件夹。 但是,如果您从包管理器(DNF、Pacman 或 APT)安装了任何主题,那么它们将存储在 /usr/share/themes/usr/share/icons 分别。

现在,您不能授予 Flatpak 应用程序访问 /user/share/themes 和 /usr/share/icons 目录的权限,因为根据 Flatpak 文档. 因此,让我们尝试让它访问本地主题和图标目录,而不是从终端键入以下命令:

sudo flatpak override --filesystem=$HOME/.themes
sudo flatpak override --filesystem=$HOME/.icons
为 Flatpak 应用程序授予主题和图标目录权限

如果您不想让系统上安装的所有 Flatpaks 看到 ~/.themes 和 ~/.icons 目录的内容,您也可以授予个人应用程序权限。 您可以通过键入如下命令以及应用程序的应用程序 ID 来执行此操作:

sudo flatpak override org.videolan.VLC --filesystem=$HOME/.themes
sudo flatpak override org.videolan.VLC --filesystem=$HOME/.icons

指定主题和图标集

现在您已经为应用程序授予了适当的权限,您可以设置位于 ~/.themes 和 ~/.icons 目录中的任何主题。 为此,您必须键入以下命令:

sudo flatpak override --env=GTK_THEME=THEME-NAME 
sudo flatpak override --env=ICON_THEME=ICON-THEME-NAME 
为 Flatpak 应用程序设置 GTK 图标和主题为 Flatpak 应用程序设置 GTK 图标和主题

现在,只需重新启动您的应用程序,您就会看到您指定的主题已应用。

Tokyonight Dark Theme On Dialect Flatpak 应用程序东京之夜黑暗主题方言 Flatpak 应用

同样,如果您还指定了应用程序 ID,则可以为每个 Flatpak 应用程序设置单独的主题:

sudo flatpak override org.videolan.VLC --env=GTK_THEME=THEME-NAME 
sudo flatpak override org.videolan.VLC --env=ICON_THEME=ICON-THEME

使用 Flatseal 应用程序应用主题(图形方法)

如果您不喜欢使用终端或者每次更改系统主题时都不愿意键入命令,那么 Flatseal 应用程序可能是您的解决方案。 它可以帮助您以图形方式管理 Flatpak 应用程序的权限。 您可以通过键入以下命令从 FlatHub 安装它:

flatpak install flathub com.github.tchx84.Flatseal
安装 Flatseal 应用程序安装 Flatseal 应用程序

现在,从应用程序网格/菜单启动应用程序,然后转到“文件权限”部分。 现在,在“其他文件”菜单中添加 ~/.themes 和 ~/.icons,如下所示:

管理所有 Flatpak 的权限管理所有 Flatpak 的权限

现在,导航到“环境”部分并在那里添加您的主题,如下所示:

GTK_THEME=THEME-NAME
ICON_THEME=ICON-THEME-NAME
将环境变量添加到所有 Flatpak 应用程序为所有 Flatpak 应用程序添加环境变量

重新启动所有应用程序以使更改生效。

同样,您可以通过检查每个应用程序的环境变量来为每个单独的应用程序设置主题。

概括

希望您在本教程中学习了使用图形或命令行方法更改 Flatpak 应用程序主题的方法。 请注意,每次更改系统主题时,您也必须手动更改 Flatpak 主题。