如何将系统主题应用到使用GTK4的Flatpak应用程序?

mat*_*usf 5 themes gtk3 flatpak 20.04 gtk4

我使用默认主题之一 - Yaru-dark Gtk 主题。我也是通过 flatpak 安装的。应用程序 ID 是org.gtk.Gtk3theme.Yaru-dark. 我通过 flatpak 安装的一些应用程序遵循它,但其他应用程序则遵循它。我注意到,不遵循它的应用程序使用 Gtk4 和 libadwaita,所以这可能是原因。有没有办法让其他应用程序也使用系统主题?我尝试在 flathub 上寻找org.gtk.Gtk4theme.Yaru-dark,但没有。

$ flatpak remote-ls flathub | grep -i yaru-dark
Yaru-dark Gtk Theme org.gtk.Gtk3theme.Yaru-dark     3.22

Run Code Online (Sandbox Code Playgroud)

例如baobab使用gtk4并且不遵循系统主题,而mypaint使用gtk3并且遵循系统主题。

猴面包树 我的画图

mat*_*usf 8

截至目前,flatpak Gtk4 应用程序仅支持Adwaita,Adwaita-DarkYaru-*(如果已安装)主题,但有一个解决方法。

您可以将所有 GTK-4 应用程序设置为使用它。为此,您需要为非 Flatpak GTK3 和 GTK4 应用程序以及使用 GTK3 和 GTK4 的 Flatpak 应用程序设置主题。

非 Flatpak GTK-3 应用程序

使用 gnome 调整。在外观部分更改它。

非 Flatpak GTK-4 应用程序

在主题的安装程序中设置一个选项以使用libAdawita. 我使用的主题(Orchis)有这个选项。如果没有,或者没有安装程序,请将~/.themes/[Your-Theme]/gtk-4/ 或/usr/share/themes/[Your-Theme]/gtk-4.0/(其中Your-Theme是主题名称)中的文件复制到~/.config/gtk-4.0/. 您必须覆盖默认的 Adawita 内容,因此如果您担心的话请备份它。

Flatpak GTK-3 应用程序

从 Flathub 安装您的主题:

flatpak install org.gtk.Gtk3theme.Yaru-dark
Run Code Online (Sandbox Code Playgroud)

(在本例中,我们使用 Yaru-dark)

如果您的主题不在 Flathub 上(很可能不在),您可以使用这些命令允许他们读取文件夹并使用您的主题。

sudo flatpak override --filesystem=$HOME/.themes/
sudo flatpak override --filesystem=$HOME/.icons/
Run Code Online (Sandbox Code Playgroud)

(后一个命令还允许他们使用您的图标和光标包)

Flatpak GTK-4 应用程序

授予应用程序访问它的权限并GTK_THEME为其设置环境变量。我使用flatseal,但它可以通过 cli 完成flatpak

/usr/share/themes/文件夹已在 Flatpak 中列入黑名单,因此无法设置。我尝试过符号链接,但它们不起作用。您必须将主题复制(或移动)到~/.themes/或存储主题的另一个文件夹。

sudo flatpak override --filesystem=$HOME/.themes/
sudo flatpak override --env GTK_THEME=Yaru-Dark
Run Code Online (Sandbox Code Playgroud)


van*_*ium 3

作为用户,我们有时需要一点耐心。Ubuntu 创建了 Yaru,Ubuntu 创建了 Snap。对于 Snap 软件包,他们为使用 libadwaita (GTK4) 的应用程序采用了 Yaru 外观。如果他们采用 Flatpak,那么它已经适用于 Flatpak。

我们还没有走到这一步。这是免费软件,因此一旦有人创建了 flatpak,它就可以工作。