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
,读取顺序如下
$XDG_CONFIG_HOME/gtk-3.0/settings.ini
$HOME/.config/gtk-3.0/settings.ini
/etc/gtk-3.0/settings.ini
首先进行gtk配置文件的初始化,指定一个$XDG_CONFIG_HOME
export XDG_CONFIG_HOME=$HOME/.config
这个文件夹是自己创建的,可以是任意的,
我们最好为每个用户都指定一个gtk配置文件,每个gtk配置文件应当只对其对应的用户生效,
然后将系统的配置文件copy一份到$XDG_CONFIG_HOME/gtk-3.0/settings.ini
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主题Adapta
Adapta GTK 主题和 Flat Remix 图标主题 | 月灯依旧 (bynss.com)
安装GTK-adapta主题:添加官方PPA源
sudo apt-add-repository ppa:tista/adapta
sudo apt update
安装主题
sudo apt install adapta-gtk-theme
adapta主题项目现在已经处于停止状态了,所以在执行以上操作后,需要手动禁用ppa:tista/adapta
,避免apt的仓库安全报错,如何禁用ppa仓库,见ubuntu删除添加的ppa源
快速更换GTK主题
sudo apt install gtk-theme-switch
运行并选择一个主题。
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
sudo apt install lxappearance
安装推荐依赖
sudo apt install libatk-adaptor libgail-common
有效时候会遇到奇葩情况,比如你需要32位的包,这时候安装依赖如下
sudo apt install libatk-adaptor:i386 libgail-common:i386
更换主题,在root用户下运行
lxappearance
方案一:假装我正在使用桌面环境 -- 使用gnome-tweaks
部分软件会使用桌面所应用的主题,如果没有桌面环境,可以假装在使用GNOME
# 假装我正在使用GNOME
export XDG_CURRENT_DESKTOP=GNOME
然后安装gnome-tweaks
sudo apt install gnome-tweaks
启动并配置主题
gnome-tweaks
配置QT5主题
官方文档Qt (简体中文) - ArchWiki (archlinux.org)
方案一(推荐):单独设置QT主题 --使用 Kvantum
和qt5ct
如果没有桌面环境,另外一套方案,可以选择使用配置工具qt5ct
安装 qt5ct,它提供了一个独立于桌面环境的 Qt5 QPA 和一个配置实用程序。
安装配置工具qt5ct
,并配置环境变量,指定使用它
sudo apt install qt5ct
安装完成后,然后修改 环境变量 QT_QPA_PLATFORMTHEME=qt5ct
,
export QT_QPA_PLATFORMTHEME=qt5ct
这样做出的配置才会被Qt程序读取。或者不修改环境变量,使用 --platformtheme qt5ct
作为Qt5程序的参数也可以达到目的。
接下来配置QT5的主题引擎Kvantum/INSTALL.md at master · tsujan/Kvantum (github.com)
安装qt5-style-kvantum引擎
sudo apt install qt5-style-kvantum qt5-style-kvantum-themes
运行kvantummanager
,配置使用主题adapta
kvantummanager
运行 qt5ct
以设置图标主题,更改QT的默认主题
qt5ct
方案二(不推荐):使用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中自带两种样式: Fusion、Windows。其他的可以通过官方仓库安装,详见Qt (简体中文) - ArchWiki (archlinux.org)
按照官方文档Qt和GTK应用程序的统一外观 - ArchWiki (archlinux.org)的说法,我想让QT使用GTK2样式的主题
安装Qt样式插件
sudo apt install qt5-style-plugins
配置环境变量
export QT_QPA_PLATFORMTHEME=gtk2
之后配置GTK主题,QT会自动应用类似GTK2样式的主题(需要你的GTK主题支持GTK2)
为实现完全一致性,请确保配置的 GTK 主题同时支持 GTK 2 和 GTK 3。
如果在将 Qt 配置为使用 GTK2 后,您的首选主题呈现不一致,请更换一个主题。
安装Icon
这个实在没必要,搞开发的,不日常用
sudo add-apt-repository -y ppa:papirus/papirus
sudo apt update
sudo apt install papirus-icon-theme
启用Icon
[ Applications ] » [ Settings ] » [ Appearance ] » [ Icon ]
参考、引用、致谢
Qt (简体中文) - ArchWiki (archlinux.org)
官方文档GTK (简体中文) - ArchWiki (archlinux.org)
官方文档Qt (简体中文) - ArchWiki (archlinux.org)
Qt5中自带两种样式: Fusion、Windows。其他的可以通过官方仓库安装,详见Qt (简体中文) - ArchWiki (archlinux.org)
QT5的主题引擎Kvantum/INSTALL.md at master · tsujan/Kvantum (github.com)