dirdi Asked: 2025-03-11 06:28:32 +0800 CST2025-03-11 06:28:32 +0800 CST 2025-03-11 06:28:32 +0800 CST LibreOffice 忽略外观模式,但观察 GTK_THEME 环境变量 772 无论我在选项对话框中选择哪种外观模式,LibreOffice 始终都会在浅色模式下运行: 但是,当我将GTK_THEME环境变量设置为 时Adwaita:dark,LibreOffice 将以暗黑模式运行(GTK_THEME=Adwaita:dark libreoffice): 似乎某些内容优先于选项对话框中的外观模式设置,但GTK_THEME环境变量又优先于此。 尽管外观模式已设置为 ,但什么原因导致 LibreOffice 以浅色模式运行Dark? 这是在全新Debian测试/ Wayland / GNOME安装上启用了暗黑模式。 debian 1 个回答 Voted Best Answer wbob 2025-03-14T07:45:44+08:002025-03-14T07:45:44+08:00 如果为旧版(GTK 3)应用程序设置了深色主题,我可以重现 LibreOffice 不实施主题偏好的情况。 要检查它是否导致了此问题,请参见: gsettings get org.gnome.desktop.interface gtk-theme 如果设置为“Adwaita-dark”,则设置一个空值或“Adwaita”: gsettings set org.gnome.desktop.interface gtk-theme 'Adwaita' 然后,LibreOffice(在Debian Unstable / GNOME 48中的 25.2+/25.8alpha 中测试)至少会在其自行重启后显示为制定设置的主题(或者在 Adwaita light 的情况下,恢复到设置的 gtk-theme 值)。 我无法回答是什么导致了 LibreOffice 源代码中的行为(我猜是在vcl/unx/gtk3/custom-theme.cxx中)gtk_css_provider_new(),该问题已在bug#153841中跟踪并得到其他用户的确认。 当 GTK 4 应用程序的亮度模式读数为 gsettings get org.gnome.desktop.interface color-scheme (prefer-light/unset 或 prefer-dark) 与 gtk-theme 以及 LibreOffice 在“[x] system”下将实施的措施相矛盾。我认为 LibreOffice 应该强制执行其自己的首选项设置,在未选择“system”时忽略任何主机端值。 作为最后的手段,可以永久覆盖启动器;这是一个带有一些预防措施的双行命令(在 sed 中,选择“Adwaita”或“Adwaita:dark”): mkdir -p ~/.local/share/applications rm -f ~/.local/share/applications/libreoffice-* find /usr/share/applications/ -iname '*libreoffice*' -exec cp {} ~/.local/share/applications/ \; for f in ~/.local/share/applications/libreoffice-*; do sed -i 's|Exec=libreoffice|Exec=env GTK_THEME=Adwaita libreoffice|g' $f; done
如果为旧版(GTK 3)应用程序设置了深色主题,我可以重现 LibreOffice 不实施主题偏好的情况。
要检查它是否导致了此问题,请参见:
如果设置为“Adwaita-dark”,则设置一个空值或“Adwaita”:
然后,LibreOffice(在Debian Unstable / GNOME 48中的 25.2+/25.8alpha 中测试)至少会在其自行重启后显示为制定设置的主题(或者在 Adwaita light 的情况下,恢复到设置的 gtk-theme 值)。
我无法回答是什么导致了 LibreOffice 源代码中的行为(我猜是在vcl/unx/gtk3/custom-theme.cxx中)
gtk_css_provider_new()
,该问题已在bug#153841中跟踪并得到其他用户的确认。当 GTK 4 应用程序的亮度模式读数为
(prefer-light/unset 或 prefer-dark) 与 gtk-theme 以及 LibreOffice 在“[x] system”下将实施的措施相矛盾。我认为 LibreOffice 应该强制执行其自己的首选项设置,在未选择“system”时忽略任何主机端值。
作为最后的手段,可以永久覆盖启动器;这是一个带有一些预防措施的双行命令(在 sed 中,选择“Adwaita”或“Adwaita:dark”):