在Gnome 43中使用自选主题

Posted on Wed 07 December 2022 in howto

由于libadwaita中写死了使用Adwaita主题,使用了这个库的gtk4程序将不理睬传统的主题设置选项(在tweaks中指定主题),对于gtk2、gtk3程序传统的设置仍然有效。为了让gtk4程序使用其他外观主题,需要采用别的设置方式。

以下是基于用户的设置方法:

方法一:设置环境变量

  • 如果图形服务器是Wayland,创建 $HOME/.config/environment.d/envvar.conf,在其中设置 GTK_THEME 环境参数,例如: GTK_THEME=Nordic 即可指定使用Nordic主题

  • 如果图形服务器是Xorg,不同的启动管理器可能用到不同的初始文件,有可能是~/.xprofile(大多数), ~/.xinitrc, 或者 ~/.xsession。尽管文件不同,但做法是一样的,在文件中加入 export GTK_THEME=Nordic

方法二:设置gtk.css

以 Nordic 为例。

首先,把Nordic主题所有文件放到 $HOME/.theme/Nordic/ 里。

然后,cp $HOME/.theme/Nordic/gtk-4.0/gtk.css $HOME/.config/gtk-4.0/

这样,前述gtk4程序,如文件管理器Nautilus,已经可以自动使用Nordic主题了,但是程序窗口不显示最大化、最小化、关闭窗口等控制按钮。打开gtk.css查看,发现那些按钮都在assets文件夹中。gtk.css中设置assets的路径是../assets,为便于管理,我们希望assets仍在gtk-4.0中,于是:

cp -r $HOME/.theme/Nordic/assets $HOME/.config/gtk-4.0/

然后将gtk.css中所有../assets 改成 assets 即可。