在 Xubuntu 20.04 LTS 上

在 Xubuntu 20.04 LTS 上

设置

当 Qt 应用程序(KeePassXC、AntiMicroX)自动启动(通过自动启动)时,不会应用 GTK 主题。

  • 所有应用程序都是通过标准apt包安装的(我知道 snap 主题问题)。
  • 我在 Ubuntu 上20.04,我使用 Yaru 深色 gtk 主题。
  • 要将 GTK 主题应用到 Qt 应用程序上,我执行以下操作:
    • 安装qt5-style-pluginsapt 包(及其所有依赖项)
    • 添加了一行到/etc/environmentQT_QPA_PLATFORMTHEME=gtk2
    • 如果我手动启动应用程序,这将正常工作

进一步的调整表明,在冷启动时主题从未得到正确应用,但是,在重新启动时,它有时确实有效。

问题

  • 我如何确保深色 gtk 应用程序主题得到正确使用?

  • 我认为当自动启动发生时,某些设置未加载,因此出现故障。是否有某种“服务”那些应用程序需要等待?

  • 我应该尝试增加延迟吗?

答案1

是什么让它成功

为自动启动桌面文件添加了 1 秒的启动延迟(在~/.config/autostart/):

[Desktop Entry]
...
X-GNOME-Autostart-Delay=1

这使得应用程序在登录后 X 会话正确初始化后启动。无需其他操作(初始设置除外)。

笔记

  • QT 配置工具(在qt5ctapt 包中提供)是可行但不是必需的。

    • 如果已安装,它会添加一个 X 会话配置/etc/X11/Xsession.d/99qt5ct,如果未设置则设置QT_QPA_PLATFORMTHEMEqt5ct
    • 它支持更广泛的 Qt 主题配置。我使用了最少的~/.config/qt5ct/qt5ct.conf
    [Appearance]
    icon_theme=Numix-Circle
    standard_dialogs=gtk2
    style=gtk2
    
  • 为了调试应用程序的环境,可以使用此 shell 命令检查(注意,我使用 fish 而不是 bash):strings /proc/(pidof keepassxc)/environ | grep QT

  • 要调查环境变量的设置位置,可以使用以下命令:

    # system wide - this was quick
    grep QT_QPA_PLATFORMTHEME --recursive /etc/*
    # per user - this was super slow on my system (*khm* steam *khm*)
    grep QT_QPA_PLATFORMTHEME --recursive ~/*
    
  • 资料来源:

答案2

在 Xubuntu 20.04 LTS 上

首先,使用以下工具安装 Qt5 配置工具

$ sudo apt install qt5ct

/etc/X11/Xsession.d/56xubuntu-session然后,通过在前面插入井号来注释掉以下行:

sudo nano /etc/X11/Xsession.d/56xubuntu-session
    # QT5 apps to use GTK style
    #export QT_QPA_PLATFORMTHEME=gtk2

现在,注销并重新登录。使用MenuSettings→所做的更改Qt5 Settings将立即生效。

相关内容