# dsh-workspace-default-dir [English](README.md) · [中文](README.zh.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [Español](README.es.md) · [Português](README.pt.md) · [Русский](README.ru.md) ![Карточка настроек](assets/settings-card.png) Заставьте диалог выбора каталога рабочего пространства dsh ("Добавить рабочее пространство → Выбрать каталог рабочего пространства") открываться в **выбранном вами** каталоге — например `E:\python_project` — вместо домашнего каталога пользователя Windows. ## Установка Выберите один из трёх способов ниже и перезапустите `dsh web`: ```powershell # 1) npm-пакет (когда будет опубликован на npm) dsh plugin --profile web add dsh-workspace-default-dir # 2) Репозиторий GitHub (включает предсобранный lib/, сборка не требуется) dsh plugin --profile web add https://github.com/dragan2023/dsh-workspace-default-dir # 3) Локальная папка (разработка / самостоятельный хостинг) dsh plugin --profile web add D:\path\to\dsh-workspace-default-dir ``` После перезапуска в **Настройках** появляется пункт **Каталог рабочего пространства по умолчанию**. ## Использование Откройте **Настройки → Каталог рабочего пространства по умолчанию** (`设置 → 工作区默认目录`). Введите абсолютный путь — например `E:\python_project` — и нажмите **Сохранить** (`保存`). В следующий раз диалог выбора каталога "Добавить рабочее пространство" откроется прямо в этой папке — без перезапуска. ![Выбор каталога в E:\ComfyUI-aki-v3](assets/picker-dialog.png) На карточке всегда показан текущий активный каталог (`当前生效`). Оставьте поле пустым и сохраните, или нажмите **Очистить** (`清除`), чтобы вернуться к значению по умолчанию (домашний каталог). То же самое доступно из командной строки: ```bash dsh-workspace-default-dir set E:\python_project # задать каталог по умолчанию dsh-workspace-default-dir get # показать текущий по умолчанию dsh-workspace-default-dir clear # очистить (вернуть home) dsh-workspace-default-dir status # состояние патча и настройки ``` Карточка GUI и CLI пишут одну и ту же переменную `DSH_PICKER_INITIAL_DIR` (сохраняется через `setx`) и остаются синхронизированными. ## Поведение и ограничения - **Охвачены оба бэкенда выбора**: нативный диалог Windows (через `IFileDialog::SetFolder`) и browse-выбор (используется, когда веб-сервер привязан к не-loopback хосту, напр. LAN `0.0.0.0`). - **Резервный вариант через реестр**: исправленные выборщики сначала читают переменную окружения `DSH_PICKER_INITIAL_DIR`, затем напрямую `HKCU\Environment` — обходя проблему устаревшего окружения Explorer (перезапуск Explorer после `setx` не нужен). - **Самовосстановление**: при каждом запуске dsh плагин идемпотентно переприменяет два небольших патча бэкенда, поэтому обновление dsh, вернувшее исходные файлы, чинится автоматически. - Это плагин **патч-типа**: он изменяет два файла пакета выборщика внутри установки dsh (идемпотентно, только аддитивно). Browse-бэкенд загружает свой исправленный модуль при старте dsh, поэтому после установки/обновления нужен один перезапуск `dsh web`; нативный диалог читает свой worker при каждом открытии. - Проверено на Windows + dsh 0.1.0-rc.6. На других платформах/версиях при несовпадении пар правки выводится предупреждение и патч пропускается (dsh всё равно запускается). ## Лицензия MIT — см. [LICENSE](LICENSE).