Всем добра использую Арч с гиперландом пытаюсь сделать автоматическую смены темы в Ghostty в зависимости от состояния суток вычитал что для этого используют Darkman установил его так же установил xdg-desktop-portal-gtk не могу написать скрипт рабочий для сменны (через ИИ) ни черта они не могут выдают какую то не рабочую ерунду
Помогите пожалуйста дайте рабочий скрипт
#!/bin/sh
case "$1" in
dark) value=1 ;;
light) value=2 ;;
*) echo "Usage: $0 [dark|light]" >&2; exit 1 ;;
esac
if xsettings set org.freedesktop.appearance color-scheme "$value"; then
echo "Color scheme set to $1"
else
echo "Failed to set color scheme" >&2
fi
получаю такую ошибку
~/.local/share/darkman> ./gtk-theme.sh dark
/home/mitai/.local/share/darkman/gtk-theme.sh: строка 9: xsettings: command not found
Failed to set color scheme
#!/bin/sh
case "$1" in
dark) value=true ;;
light) value=false ;;
*) echo "Usage: $0 [dark|light]" >&2; exit 1 ;;
esac
if gsettings set gtk-application-prefer-dark-theme = value; then
echo "Color scheme set to $1"
else
echo "Failed to set color scheme" >&2
fi
получил
~/.local/share/darkman> ./gtk-theme.sh dark
Схема «gtk-application-prefer-dark-theme» не существует
Failed to set color scheme
gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
то все работает как нужно и терминал меняет тему осталось разобраться как это засунуть в скрипт)) пробую так
#!/bin/sh
case "$1" in
dark) value=prefer-dark ;;
light) value=prefer-light ;;
*) echo "Usage: $0 [dark|light]" >&2; exit 1 ;;
esac
if gsettings set org.gnome.desktop.interface color-scheme=$value; then
echo "Color scheme set to $1"
else
echo "Failed to set color scheme" >&2
fi
получаю ошибку
~/.local/share/darkman> ./gtk-theme.sh dark
Использование:
gsettings [--schemadir КАТАЛОГ_СХЕМ] set СХЕМА[:ПУТЬ] КЛЮЧ ЗНАЧЕНИЕ
Указать значение КЛЮЧА как ЗНАЧЕНИЕ
Аргументы:
КАТАЛОГ_СХЕМ Каталог для поиска дополнительных схем
СХЕМА Идентификатор схемы
ПУТЬ Путь, для перемещаемых схем
КЛЮЧ Ключ в схеме
ЗНАЧЕНИЕ Присваиваемое значение
Failed to set color scheme
Не совсем понятно почему из терминала работает а из скрипта нет...
Поправил скрипт на такой
#!/bin/sh
case "$1" in
dark) value=prefer-dark ;;
light) value=prefer-light ;;
*) echo "Usage: $0 [dark|light]" >&2; exit 1 ;;
esac
if gsettings set org.gnome.desktop.interface color-scheme $value; then
echo "Color scheme set to $1"
else
echo "Failed to set color scheme" >&2
fi
все работает осталось проверить автоматически ли он будет срабатывать