Ubuntu配置主题--配置QT5和GTK

上一级页面:index-wsl

前言

GTK环境初始化

官方文档GTK (简体中文) - ArchWiki (archlinux.org)

GTK 3 默认配置文件在/etc/gtk-3.0/settings.ini

可以在配置文件中手动指定 GTK 设置,但桌面环境和应用程序可以覆盖这些设置。根据 GTK 版本,这些文件位于:

  • GTK 2 用户特定:~/.gtkrc-2.0
  • GTK 2 系统范围:/etc/gtk-2.0/gtkrc
  • GTK 3 用户特定:$XDG_CONFIG_HOME/gtk-3.0/settings.ini,或者如果$XDG_CONFIG_HOME未设置,默认位置为$HOME/.config/gtk-3.0/settings.ini
  • GTK 3 系统范围:/etc/gtk-3.0/settings.ini

按照官方文档的说法,我们最好为每个用户指定一个$XDG_CONFIG_HOME,读取顺序如下

  1. $XDG_CONFIG_HOME/gtk-3.0/settings.ini
  2. $HOME/.config/gtk-3.0/settings.ini
  3. /etc/gtk-3.0/settings.ini

首先进行gtk配置文件的初始化,指定一个$XDG_CONFIG_HOME

1
export XDG_CONFIG_HOME=$HOME/.config

这个文件夹是自己创建的,可以是任意的,

我们最好为每个用户都指定一个gtk配置文件,每个gtk配置文件应当只对其对应的用户生效,

然后将系统的配置文件copy一份到$XDG_CONFIG_HOME/gtk-3.0/settings.ini

1
cp /etc/gtk-3.0/settings.ini $XDG_CONFIG_HOME/gtk-3.0/settings.ini

提示找不到$XDG_CONFIG_HOME说明你需要配置环境变量,并且重启系统

安装GTK主题

Uniform look for Qt and GTK applications (简体中文) - ArchWiki (archlinux.org)

我使用的Ubuntu,GTK默认主题是adwaita

但本文选择现在流行的GTK主题AdaptaAdapta GTK 主题和 Flat Remix 图标主题 | 月灯依旧 (bynss.com)

安装GTK-adapta主题:添加官方PPA源

1
2
sudo apt-add-repository ppa:tista/adapta
sudo apt update

安装主题

1
sudo apt install adapta-gtk-theme

adapta主题项目现在已经处于停止状态了,所以在执行以上操作后,需要手动禁用ppa:tista/adapta,避免apt的仓库安全报错,如何禁用ppa仓库,见ubuntu删除添加的ppa源

快速更换GTK主题

请安装 gtk-theme-switch2

1
sudo apt install gtk-theme-switch

运行并选择一个主题。

1
gtk-theme-switch2

配置GTK主题

方案二(推荐):GTK 主题配置工具 –LXAppearance

如果你没有桌面环境,又不想覆盖XDG_CURRENT_DESKTOP=GNOME假装自己在使用GNOME,那么你可以选择LXAppearance作为配置工具

LXAppearance是来自 LXDE 项目的桌面独立 GTK 2 和 GTK 3 样式配置工具(它不需要 LXDE 桌面的其他部分)。

它的工作原理就是覆盖写入到GTK配置文件

按照读取顺序优先级来写入

读取顺序优先级如下:

  • $XDG_CONFIG_HOME/gtk-3.0/settings.ini
  • $HOME/.config/gtk-3.0/settings.ini
1
sudo apt install lxappearance

安装推荐依赖

1
sudo apt install libatk-adaptor libgail-common

有效时候会遇到奇葩情况,比如你需要32位的包,这时候安装依赖如下

1
sudo apt install libatk-adaptor:i386 libgail-common:i386

更换主题,在root用户下运行

1
lxappearance

Pasted%20image%2020220610174028.png

方案一:假装我正在使用桌面环境 – 使用gnome-tweaks

部分软件会使用桌面所应用的主题,如果没有桌面环境,可以假装在使用GNOME

1
2
# 假装我正在使用GNOME
export XDG_CURRENT_DESKTOP=GNOME

然后安装gnome-tweaks

1
sudo apt install gnome-tweaks

启动并配置主题

1
gnome-tweaks

配置QT5主题

官方文档Qt (简体中文) - ArchWiki (archlinux.org)

方案一(推荐):单独设置QT主题 --使用 Kvantumqt5ct

如果没有桌面环境,另外一套方案,可以选择使用配置工具qt5ct

安装 qt5ct,它提供了一个独立于桌面环境的 Qt5 QPA 和一个配置实用程序。

安装配置工具qt5ct,并配置环境变量,指定使用它

1
sudo apt install qt5ct

安装完成后,然后修改 环境变量 QT_QPA_PLATFORMTHEME=qt5ct

1
export QT_QPA_PLATFORMTHEME=qt5ct

这样做出的配置才会被Qt程序读取。或者不修改环境变量,使用 --platformtheme qt5ct 作为Qt5程序的参数也可以达到目的。

接下来配置QT5的主题引擎Kvantum/INSTALL.md at master · tsujan/Kvantum (github.com)

安装qt5-style-kvantum引擎

1
sudo apt install qt5-style-kvantum qt5-style-kvantum-themes

运行kvantummanager,配置使用主题adapta

1
kvantummanager

Pasted%20image%2020220610180016.png

Pasted%20image%2020220610180104.png

Pasted%20image%2020220610180203.png

运行 qt5ct 以设置图标主题,更改QT的默认主题

1
qt5ct

Pasted%20image%2020220610180313.png

方案二(不推荐):使用GTK2主题–安装Qt样式插件并使用gnome-tweaks

Qt5并没有提供一个qtconfig实用程序来配置字体、图标或者风格。相应的,它会尝试使用桌面环境提供的配置。

Qt5基于当前使用的桌面环境来决定所使用的样式:

  • 在 KDE Plasma 桌面环境中,呈现实际选择的Qt风格。可以在 KDE System Settings ( systemsettings )中更改,这项设置的具体位置是 外观 > 应用程序风格
  • 在 Cinnamon、GNOME、MATE、LXDE、Xfce 等桌面环境中,呈现GTK风格 (QGtkStyle)。
  • 在其他桌面环境中,呈现 Fusion 风格。

如果要强制指定一种样式,你可以设置 QT_STYLE_OVERRIDE 环境变量。特别的,如果你想要使用GTK主题,把它设置成gtk2(注意:你将需要安装在下文中提到的Qt样式插件来获取GTK样式)。Qt5应用同时也支持-style标志,你可以用它来使用指定的样式运行一个Qt5应用程序。

Qt5中自带两种样式: FusionWindows。其他的可以通过官方仓库安装,详见Qt (简体中文) - ArchWiki (archlinux.org)

按照官方文档Qt和GTK应用程序的统一外观 - ArchWiki (archlinux.org)的说法,我想让QT使用GTK2样式的主题

安装Qt样式插件

1
sudo apt install qt5-style-plugins

配置环境变量

1
export QT_QPA_PLATFORMTHEME=gtk2

之后配置GTK主题,QT会自动应用类似GTK2样式的主题(需要你的GTK主题支持GTK2)

为实现完全一致性,请确保配置的 GTK 主题同时支持 GTK 2 和 GTK 3。

如果在将 Qt 配置为使用 GTK2 后,您的首选主题呈现不一致,请更换一个主题。

安装Icon

这个实在没必要,搞开发的,不日常用

1
2
3
sudo add-apt-repository -y ppa:papirus/papirus
sudo apt update
sudo apt install papirus-icon-theme

启用Icon

1
[ Applications ] » [ Settings ] » [ Appearance ] » [ Icon ]

参考、引用、致谢

Qt (简体中文) - ArchWiki (archlinux.org)

官方文档GTK (简体中文) - ArchWiki (archlinux.org)

官方文档Qt (简体中文) - ArchWiki (archlinux.org)

环境变量

Qt5中自带两种样式: FusionWindows。其他的可以通过官方仓库安装,详见Qt (简体中文) - ArchWiki (archlinux.org)

QT5的主题引擎Kvantum/INSTALL.md at master · tsujan/Kvantum (github.com)