语境:
当我在 Ubuntu 的“设置”>“外观”>“样式”中选择“深色”或“浅色”时,gedit 会检测到此更改,并相应地将其内部主题切换为 Yaru 深色或 Yaru 浅色。我真的很喜欢这个功能!但我更希望 gedit 使用 Builder 和 Builder 深色主题(它们与 markdown 语法高亮的交互效果更好,符合我的目的)而不是 Yaru。
问题:
是否可以配置 gedit,以便当它从 Ubuntu/GNOME 收到切换到深色或浅色风格的消息时,它会选择一个特定的主题而不是默认的 Yaru 变体?
有关的:
我发现这个答案切换gsettings
GNOME 主题很有趣,因为我很想能够通过外部工具热键在 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 捕获该主题更改,都会在稍微延迟后执行。