# Работа над этим расширением ## Никогда не писать в dconf живой сессии **Запрещено** выполнять `gsettings set`, `gsettings reset`, `dconf write` и `dconf reset` из bash этой сессии — ни голыми, ни с префиксом `XDG_CONFIG_HOME=...`. Почему префикс не помогает: базу выбирает не клиент, а `dconf-service`, поднятый шиной живой сессии, и берёт он её из **своего** окружения. Любая запись уходит в `~/.config/dconf/user` Антона. Чем это кончалось (дважды): затёрт `org.gnome.shell enabled-extensions` — во второй раз, 9 и 10 августа 2026, на работающем shell, отчего у него мгновенно отвалились dock, ding, appindicators и tiling-assistant. Прежний список dconf не хранит, восстановить его точно нельзя, только реконструировать. Что делать вместо: - нужно поменять настройку в **живой** сессии — отдать Антону команду, он выполнит её сам через `! <команда>`; - нужна настройка для **вложенного** shell — экспортировать `XDG_CONFIG_HOME` до форка шины и звать `gsettings` уже внутри этой шины (см. рецепт ниже); - читать (`dconf read`, `gsettings get`) можно свободно. ## Проверка изменений — только во вложенном shell Живую сессию не трогаем вообще: расширение включает и перезагружает shell Антон сам. У него несколько сессий Claude Code в zellij внутри gnome-terminal, и падение gnome-shell унесёт весь его рабочий набор. Рецепт для проверок только на чтение (GNOME 46, проверен 10.08.2026): ```sh XDG_STATE_HOME=$TMP/state timeout 50 dbus-run-session -- \ gnome-shell --nested --wayland > $TMP/nested.log 2>&1 ``` Подставные файлы сессий обязаны нести `event_ts` (плюс `since`, `started`): без него `SessionStore` считает их древними и **удаляет** до первой отрисовки. Скриншот из вложенного shell снять нельзя. Чтобы увидеть, что он нарисовал, добавляем временный `log()` в код, читаем его из `nested.log` — и убираем инструментацию перед коммитом. ## Коммиты Без трейлера `Co-Authored-By`.