当主题改变时运行命令

当主题改变时运行命令

我希望系统在用户更改当前主题时运行的命令是

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

相关内容