![当 gedit (v 41.0) 响应 Ubuntu (v 22.04 LTS) 暗/亮模式的变化时,我可以给它“首选”主题来选择吗?](https://linux22.com/image/1188091/%E5%BD%93%20gedit%20(v%2041.0)%20%E5%93%8D%E5%BA%94%20Ubuntu%20(v%2022.04%20LTS)%20%E6%9A%97%2F%E4%BA%AE%E6%A8%A1%E5%BC%8F%E7%9A%84%E5%8F%98%E5%8C%96%E6%97%B6%EF%BC%8C%E6%88%91%E5%8F%AF%E4%BB%A5%E7%BB%99%E5%AE%83%E2%80%9C%E9%A6%96%E9%80%89%E2%80%9D%E4%B8%BB%E9%A2%98%E6%9D%A5%E9%80%89%E6%8B%A9%E5%90%97%EF%BC%9F.png)
语境:
当我在 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 捕获该主题更改,都会在稍微延迟后执行。