我希望系统在用户更改当前主题时运行的命令是
wallch --changetheme
我怎样才能做到这一点?
答案1
用于dconf watch
监视您感兴趣的设置路径的变化
#!/bin/bash
while read -r line; do
[[ -n $line ]] || echo "Change in theme setting detected"
done < <(dconf watch /org/gnome/desktop/interface/gtk-theme)
[[ -n $line ]]
是否有解决方法,因为dconf watch
每次检测到更改时都会在其输出中触发 3 行
答案2
很酷的问题!
据我所知没有简单的方法。但是,您可以设置一个运行以下命令的脚本:
gsettings get org.gnome.desktop.interface gtk-theme
将返回当前主题:
'Adwaita'
(我在 GNOME 上)。
脚本如下:
#! /bin/bash
pretheme="$(gsettings get org.gnome.desktop.interface gtk-theme)"
while :
do
ctheme="$(gsettings get org.gnome.desktop.interface gtk-theme)"
if [ "$ctheme" = "$pretheme" ]
then
echo "nochange"
else
wallch --changetheme
fi
pretheme="$(gsettings get org.gnome.desktop.interface gtk-theme)"
sleep 10
done