Вопрос или проблема
Я только что установил WSL2 с Ubuntu 20.04 на своем компьютере с Windows 10 и также установил терминальный эмулятор Alacritty для Windows. Мне интересно, есть ли способ сделать так, чтобы WSL по умолчанию использовал терминал Alacritty вместо стандартного? Если да, то есть ли идеи, как это осуществить? На GitHub Alacritty не сказано много о WSL (https://github.com/alacritty/alacritty).
Краткий ответ: в настоящее время нет способа изменить терминал по умолчанию, который запускается (WSL, PowerShell, CMD и т.д.), на Alacritty.
Вашим лучшим вариантом было бы создать небольшой .ps1
или .cmd
скрипт, который запускал бы Alacritty с WSL. Затем вы могли бы добавить его как ярлык в меню Пуск для быстрого доступа. Закрепление его на Пуске или панели задач также было бы возможностью.
Дополнительная информация:
Когда этот вопрос был первоначально задан, только что стало возможным настроить Windows Terminal (Preview) в Windows 10 сборки 21390 (Insider/Preview). Вы могли выбрать между старой консолью Windows (которая была по умолчанию) и новой Windows Terminal.
В конечном итоге сборки Insider Windows 10 с того времени стали Windows 11. Большинство новых функций не были возвращены в Windows 10 21H2, включая эту функцию.
Это возможно для других терминальных приложений зарегистрироваться как заменяющие терминалы, но это не легко. Чтобы процитировать из проблемы Alacritty #6036, которая отслеживает этот запрос функции:
Если это возьмет то, что описал Кристиан Парпарт в вопросе контуров, я сомневаюсь, что это когда-либо будет объединено в Alacritty. Но если есть какие-то более минимальные решения, не стесняйтесь отправить патч.
Это требует создания и регистрации COM-сервера для терминального приложения, что может быть немного утерянным искусством (преувеличение, но это определенно не то, что обычно делают в наши дни).
Тем не менее, Windows Terminal является открытым исходным кодом, поэтому есть возможность изучить, как он там реализован. Соответствующий код, я полагаю, в Windows Terminal PR #7489.
измените раздел оболочки в alacritty.yml следующим образом:
# Shell
#
# Вы можете установить `shell.program` на путь к вашей любимой оболочке, например,
# `/bin/fish`. Параметры в `shell.args` передаются без изменений в качестве аргументов
# оболочке.
#
# По умолчанию:
# - (macOS) /bin/bash --login
# - (Linux/BSD) пользовательская оболочка входа
# - (Windows) powershell
shell:
program: ubuntu
# args:
# - --login
По крайней мере, для меня ответ заключается в добавлении следующего фрагмента в alacritty.yml
shell:
program: wsl
или следующего в файл alacritty.toml (если вы уже мигрировали):
[shell]
program = "wsl"
Что отличается от другого ответа, где говорится ubuntu
для программы.
Похоже на решение Пата Стюарта, но выбирает дистрибуцию, пользователя и домашнее расположение внутри WSL:
"C:\Program Files\Alacritty\alacritty.exe" --command "wsl -d Ubuntu-24.04 -u d --cd /home/d"
Ответ или решение
Установка Alacritty в качестве терминала по умолчанию для WSL2
На сегодняшний день, когда вы установили WSL2 с Ubuntu 20.04 на своем компьютере с Windows 10 и добавили терминал Alacritty, вы можете задаться вопросом, как настроить Alacritty в качестве терминала по умолчанию для WSL2. К сожалению, встроенных средств или простых способов для достижения этой цели не существует, однако можно использовать несколько обходных путей.
1. Создание скрипта для запуска Alacritty с WSL
Самый простой и эффективный способ — создать скрипт, который будет запускать Alacritty с WSL. Вы можете использовать либо скрипт PowerShell (.ps1), либо командный файл (.cmd). Ниже приведен пример на обоих языках.
Пример скрипта PowerShell (open-wsl.ps1):
Start-Process "C:\path\to\alacritty\alacritty.exe" -ArgumentList "--command wsl"
Пример командного файла (open-wsl.cmd):
start "Alacritty" "C:\path\to\alacritty\alacritty.exe" --command wsl
Вы можете добавить этот скрипт в меню «Пуск» или закрепить его на панеле задач для быстрого доступа.
2. Настройка конфигурационного файла Alacritty
После того, как вы запустили Alacritty, вам нужно будет настроить конфигурационный файл alacritty.yml
или alacritty.toml
, чтобы указать, какой конкретно шелл нужно использовать.
Пример для файла alacritty.yml:
# Shell
shell:
program: wsl
Пример для файла alacritty.toml:
[shell]
program = "wsl"
Это позволит Alacritty запускать WSL в качестве вашего терминала, но не изменит терминал по умолчанию для всей системы.
3. Пользовательские настройки запуска и параметры
Если вам необходимо запустить конкретное дистрибутив или пользовательскую учетную запись внутри WSL, вы можете изменить команду в скрипте следующим образом:
"C:\Program Files\Alacritty\alacritty.exe" --command "wsl -d Ubuntu-20.04 -u username --cd /home/username"
Где Ubuntu-20.04
— это название дистрибутива, а username
— ваша учетная запись.
Заключение
На данный момент Alacritty не поддерживает возможность установки в качестве терминала по умолчанию для WSL через стандартные параметры Windows. Однако описанные выше методы позволяют легко интегрировать Alacritty с WSL и использовать его для вашего рабочего процесса. Регулярно проверяйте обновления Alacritty, так как в будущем могут появиться новые функции, которые упростят эту задачу.
Не забудьте протестировать ваши настройки и изменения, чтобы убедиться, что они работают так, как вы планировали. Удачи в вашем использовании WSL и Alacritty!