Запустить команду при смене темы

Команда, которую я хочу, чтобы система запускала, когда пользователь меняет текущую тему, -

wallch --changetheme

Как я могу это сделать?

2
задан 5 December 2014 в 20:59

2 ответа

Используйте 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 строки в своем выходе каждый раз, когда изменение обнаружено

0
ответ дан 5 December 2014 в 20:59

Классный вопрос!

Нет простого способа, о котором я знаю. Однако вы можете настроить скрипт, выполняющий эту команду:

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
0
ответ дан 5 December 2014 в 20:59

Другие вопросы по тегам:

Похожие вопросы: