Как изменить расположение файла settings.json в Windows Terminal

Вопрос или проблема

Мне нужно изменить папку по умолчанию, в которой терминал Windows ищет файл settings.json. С C:\Users%USER%\AppData\Local\Microsoft\Windows Terminal на мою личную c:\tools\windowsterminal. Причина в том, что c:\tools находится под версионным контролем, и я хотел бы поддерживать его в актуальном состоянии, чтобы делиться им между несколькими рабочими станциями.

Как я могу этого добиться? В качестве обходного решения, возможно, существует возможность запустить WindowsTerminal из cmd с конкретным параметром?

Обратите внимание, что я знаю, как установить начальный каталог для конкретного терминала, это не то, что я хочу.

Вы можете использовать команду mklink в командной строке.

Вы должны использовать /H, чтобы создать так называемую “жесткую ссылку”. Сначала переместите файл.

Что-то вроде этого:

mklink /H "C:\Users\Sloven\AppData\Local\Microsoft\Windows Terminal\settings.json" "C:\tools\windowsterminal\settings.json"

Замените “Sloven” на имя пользователя, которое вы используете на своем компьютере.

Для получения дополнительной информации смотрите https://en.wikipedia.org/wiki/Symbolic_link#Microsoft_Windows или гуглите “Symlink windows”

Аргументы командной строки для Windows Terminal можно найти здесь: https://docs.microsoft.com/en-us/windows/terminal/command-line-arguments?tabs=windows

Оставляю это здесь, чтобы сэкономить кому-то время на гугление решения для Powershell

New-Item -ItemType HardLink -Path "C:\Users\Sloven\AppData\Local\Microsoft\Windows Terminal\settings.json" -Target "C:\tools\windowsterminal\settings.json"

Итог

mklink /d для директории LocalState сработал!

  1. Закройте Windows Terminal, затем переместите всю папку LocalState из:

    %LocalAppData%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState
    

    в желаемое место, например C:\backup\LocalState.

  2. Щелкните правой кнопкой мыши на Командной строке > Запустить от имени администратора, затем:

    mklink /d %LocalAppData%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState C:\backup\LocalState
    
  3. Отличный успех! Ваши настройки теперь находятся в желаемом месте.

    Вывод должен быть:

    символическая ссылка создана для C:\Users\xxx\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState <<===>> C:\backup\LocalState

    Вывод в проводнике файлов


Фон

На 2023 год многое изменилось с тех пор, как был опубликован @Gantendo’s answer.

  • Файл settings.json терминала Windows, похоже, теперь находится в C:\Users\xxx\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState (замените xxx на ваше имя пользователя) вместо старого местоположения Local\Microsoft\Windows Terminal\settings.json
  • mklink /h для меня не сработал, настройки не сохранялись должным образом между запусками терминала Windows
  • тем не менее, создание символической ссылки с mklink /d для всей папки LocalState сработало идеально!

Смотрите также:

Я обнаружил, что использование символических ссылок работает для терминала Windows. Поэтому это кажется предпочтительным способом, поскольку это делает более очевидным, где находится “официальный” файл.

Файл settings.json всегда создается, если он удален, если у вас открыт любой терминал Windows. Поэтому сложно выполнить команду mklink. Что я сделал в Windows 11 Preview, так это щелкнул правой кнопкой мыши по C:/Windows/system32/cmd.exe и запустил его от имени администратора, это позволяет вам фактически запустить устаревший cmd.exe (любопытно, что просто двойной щелчок запускает новый терминал), и вы можете выполнить mklink.

Другой (современный) вариант может быть следующим:

  • установка портативной версии терминала Windows
  • через менеджер пакетов Scoop
  • в результате, конфигурация находится в $ScoopDir\persist\windows-terminal\settings\settings.json (где $ScoopDir по умолчанию равен ~/scoop/)
  • и возможно использовать управление версиями для всех приложений, создавая репозиторий Git для папки persist

Преимущества:

  • можно расположить где угодно: запустите установщик scoop, указав -ScoopDir
  • простой процесс резервного копирования и восстановления: просто скопируйте одну папку
  • держите свои приложения актуальными: с помощью scoop update *
  • не нужно доступа в Microsoft Store: иногда это корпоративное ограничение
  • не нужны административные права: как с альтернативой chocolatey

Ответ или решение

Для изменения расположения файла settings.json в Windows Terminal и переноса его из стандартной директории C:\Users\%USER%\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState в вашу личную папку C:\tools\windowsterminal, существует несколько подходов. В этой статье мы рассмотрим наиболее эффективный метод с использованием символических ссылок, а также альтернативные варианты.

Шаги по созданию символической ссылки

  1. Закройте Windows Terminal: Перед выполнением команд убедитесь, что Windows Terminal полностью закрыт, так как файл settings.json может быть заблокирован в открытом приложении.

  2. Переместите папку LocalState:

    • Откройте проводник Windows и перейдите к следующему пути:
      %LocalAppData%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState
    • Скопируйте папку LocalState и вставьте её в новое местоположение, например, C:\tools\windowsterminal.
  3. Создайте символическую ссылку:

    • Откройте командную строку с правами администратора. Для этого нажмите правой кнопкой мыши на cmd.exe и выберите "Запуск от имени администратора".
    • Выполните следующую команду:
      mklink /d "%LocalAppData%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState" "C:\tools\windowsterminal\LocalState"
    • После выполнения команды должно появиться сообщение, подтверждающее создание символической ссылки, например:
      символическая ссылка создана для C:\Users\xxx\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState <<===>> C:\tools\windowsterminal\LocalState

Альтернативные варианты

Помимо метода с использованием символических ссылок, существуют и другие способы конфигурации Windows Terminal:

  1. Использование Portable-версии Windows Terminal:

    • Вы можете установить портативную версию Windows Terminal, которая не требует установки и позволяет хранить конфигурацию в удобном для вас месте. Подробности доступны на странице официальной документации.
  2. Управление через Scoop:

    • Установите Scoop, который является менеджером пакетов для Windows. С помощью него можно контролировать версии приложений и хранить их конфигурации в папке ~/scoop/persist/windows-terminal/settings.

Заключение

Переход на новое расположение файла settings.json в Windows Terminal можно осуществить через создание символической ссылки с помощью команды mklink. Вы также можете рассмотреть использование портативной версии или менеджера пакетов Scoop для упрощения и автоматизации процесса управления конфигурацией. Эти методы позволят вам легко поддерживать актуальность конфигураций на нескольких рабочих станциях и упростят их синхронизацию.

Оцените материал
Добавить комментарий

Капча загружается...