当 gedit (v 41.0) 响应 Ubuntu (v 22.04 LTS) 暗/亮模式的变化时,我可以给它“首选”主题来选择吗?

当 gedit (v 41.0) 响应 Ubuntu (v 22.04 LTS) 暗/亮模式的变化时,我可以给它“首选”主题来选择吗?

语境:

当我在 Ubuntu 的“设置”>“外观”>“样式”中选择“深色”或“浅色”时,gedit 会检测到此更改,并相应地将其内部主题切换为 Yaru 深色或 Yaru 浅色。我真的很喜欢这个功能!但我更希望 gedit 使用 Builder 和 Builder 深色主题(它们与 markdown 语法高亮的交互效果更好,符合我的目的)而不是 Yaru。

问题:

是否可以配置 gedit,以便当它从 Ubuntu/GNOME 收到切换到深色或浅色风格的消息时,它会选择一个特定的主题而不是默认的 Yaru 变体?

有关的:

我发现这个答案切换gsettingsGNOME 主题很有趣,因为我很想能够通过外部工具热键在 gedit 中切换暗/亮模式。我注意到以这种方式切换桌面主题不是触发 gedit 切换其内部主题,也不会改变在设置 > 外观 > 样式中选择的是深色还是浅色。

答案1

这是一个解决方法,改编自这个答案在命令行暗/亮切换。我现在只需通过自定义键盘快捷键运行此脚本,即可在暗模式和亮模式之间切换。

#!/usr/bin/env sh
set -euo

if test "$(gsettings get org.gnome.desktop.interface color-scheme)" = "'prefer-light'"; then
  gsettings set org.gnome.desktop.interface color-scheme prefer-dark
  gsettings set org.gnome.desktop.interface gtk-theme 'Yaru-dark'
  sleep 1
  gsettings set org.gnome.gedit.preferences.editor scheme 'builder-dark'
else
  gsettings set org.gnome.desktop.interface color-scheme prefer-light
  gsettings set org.gnome.desktop.interface gtk-theme 'Yaru'
  sleep 1
  gsettings set org.gnome.gedit.preferences.editor scheme 'builder'
fi

sleep 1是必要的,因为仅当“设置”应用程序打开时,Ubuntu/GNOME 才会为 GTK 主题之间的切换制作动画 - 因此,无论处理程序 gedit 捕获该主题更改,都会在稍微延迟后执行。

相关内容