Единая среда Unix для разработки программного обеспечения Wazaterm предоставляет среду Linux (Ubuntu), к которой вы можете получить доступ, если у вас есть браузер. В настоящее время существует множество устройств / ОС, поэтому вам необходимо настраивать терминал несколько раз. Используя Wazaterm, вам больше не нужно этого делать, и, более того, вам не нужно блокироваться в одной…
Примеры проектов, в которых показано, как использовать API-интерфейсы консоли Windows
Другие связанные репозитории включают в себя:
Статус сборки
Проект
Статус сборки
Терминал
Пожалуйста, уделите несколько минут просмотру приведенного ниже обзора, прежде чем углубляться в код:
Windows Terminal
Windows Terminal — это новое, современное, многофункциональное, производительное терминальное приложение для пользователей командной строки. Он включает в себя многие функции, наиболее часто запрашиваемые сообществом командной строки Windows, включая поддержку вкладок, форматированного текста, глобализации, конфигурируемости, создания тем и стилей и т. Д.
Терминал также должен будет соответствовать нашим целям и мерам, чтобы он оставался быстрым, эффективным и не потреблял огромного количества памяти или энергии.
Консольный хост Windows
Консольный хост Windows, conhost.exe представляет собой оригинальный интерфейс пользователя командной строки Windows. Он реализует инфраструктуру командной строки Windows и отвечает за размещение API консоли Windows, механизма ввода, механизма рендеринга и пользовательских настроек. Хост-код консоли в этом репозитории является фактическим источником, из которого conhost.exe собран в самой Windows.
Основная цель консоли — обеспечить обратную совместимость с существующими приложениями консольной подсистемы.
С момента вступления во владение командной строкой Windows в 2014 году команда добавила в консоль несколько новых функций, включая прозрачность окон, выбор на основе строк, поддержку последовательностей ANSI / виртуальных терминалов, 24-битный цвет, псевдоконсоль. («ConPTY») и др.
Однако, поскольку основная цель консоли — поддерживать обратную совместимость, мы не смогли добавить многие функции, о которых просило сообщество, и которые мы хотели добавить в течение последних нескольких лет — как вкладки!
Эти ограничения привели нас к созданию нового терминала Windows.
Общие компоненты
Во время капитального ремонта консоли мы значительно модернизировали ее кодовую базу. Мы четко разделили логические сущности на модули и классы, ввели некоторые ключевые точки расширения, заменили несколько старых домашних коллекций и контейнеров на более безопасные и эффективные контейнеры STL и сделали код проще и безопаснее, используя библиотеку заголовков WIL от Microsoft.
Результатом этой работы по капитальному ремонту стало создание нескольких ключевых компонентов, которые были бы полезны для любой реализации терминала в Windows, включая новый механизм разметки текста и рендеринга на основе DirectWrite, текстовый буфер, способный хранить как UTF-16, так и UTF-. 8, и анализатор / эмиттер VT.
Строительство нового терминала
Когда мы начали создавать новое терминальное приложение, мы исследовали и оценили несколько подходов и технологических стеков. В конечном итоге мы решили, что наши цели будут лучше всего достигнуты, если придерживаться C ++ и делиться вышеупомянутыми модернизированными компонентами, поместив их поверх современной платформы приложений Windows и инфраструктуры пользовательского интерфейса.
Кроме того, мы поняли, что это позволит нам создать рендер и стек ввода терминала в качестве многократно используемого элемента управления пользовательского интерфейса Windows, который другие могут включать в свои приложения.
Где я могу загрузить Windows Terminal?
Двоих файлов для загрузки пока нет.
Терминал Windows находится на очень ранней альфа-стадии и еще не готов для широкой публики. Если вы хотите начать раньше, вы можете попробовать создать его самостоятельно из исходного кода.
В противном случае вам придется подождать до середины июня, чтобы официальная предварительная сборка прекратилась.
Я построил и запустил новый терминал, но у меня просто пустое окно приложения!
Убедитесь, что вы строите для архитектуры своего компьютера. Если на вашем компьютере установлена 64-разрядная версия Windows, измените свою платформу решений на x64. Чтобы проверить архитектуру своей ОС, перейдите в «Настройки» -> «Система» -> «О программе» (или Win + X -> Система) и в разделе спецификации устройства проверка для Тип системы
Я собрал и запустил новый терминал, но он выглядит как старая консоль! Что дает?
Во-первых, убедитесь, что вы собираете и развертываете CascadiaPackage в Visual Studio, НЕ Host.EXE . OpenConsole.exe — это просто conhost.exe та же старая консоль, которую вы знаете и любите. opencon.cmd запустит openconsole.exe и, к сожалению, openterm.cmd в настоящее время не работает.
Во-вторых, попробуйте нажать Ctrl + T . Вкладки скрыты, когда у вас есть только одна вкладка по умолчанию. В будущем пользовательский интерфейс будет сильно отличаться, но на данный момент значения по умолчанию должны выглядеть как значения по умолчанию консоли.
Я попытался запустить WindowsTerminal.exe, и он вылетел!
Не пытайтесь запустить его без упаковки. Обязательно соберите и разверните CascadiaPackage из Visual Studio и запустите приложение Windows Terminal (Dev Build).
Убедитесь, что вы используете правильную версию Windows. Вам нужно быть на сборках Insider или ждать выпуска 1903 года, поскольку Windows Terminal ТРЕБУЕТ функций из последней версии Windows.
Предпосылки
Вы должны использовать Windows 1903 (сборка> = 10.0.18362.0) или выше, чтобы запустить Windows Terminal
У вас должен быть установлен 1903 SDK (сборка 10.0.18362.0)
У вас должен быть установлен по крайней мере VS 2017.
Вы должны установить следующие рабочие нагрузки через установщик VS. Если вы используете VS 2019, при открытии решения вам будет предложено автоматически установить недостающие компоненты.
Разработка рабочего стола с C ++
Разработка универсальной платформы Windows
Также установите следующий отдельный компонент:
C ++ (v141) Универсальные инструменты для платформы Windows
Вы также должны включить режим разработчика в приложении «Настройки Windows», чтобы локально установить и запустить приложение «Терминал».
Отладка
Чтобы выполнить отладку в VS, щелкните правой кнопкой мыши CascadiaPackage (из VS Solution Explorer) и перейдите в свойства, в меню «Отладка» измените «Процесс приложения» и «Процесс фоновой задачи» на «Только собственный»
Вклад
Мы рады работать вместе с вами, нашим удивительным сообществом, над созданием и улучшением Windows Terminal!
Мы просим прежде чем вы начнете работать над функцией, которую вы хотели бы добавить, пожалуйста, напишите вопрос описывающий ваши предлагаемые изменения : Мы будем рады работать с вами, чтобы выяснить наилучший подход, обеспечить руководство и наставничество в процессе разработки функций, а также избежать ненужных или дублирующих усилий.
👉 Помните! Ваш вклад может быть включен в будущие версии Windows! Из-за этого все запросы извлечения будут подвергаться тому же уровню контроля качества, стандартов кодирования, производительности, глобализации, доступности и совместимости, что и наши внутренние участники.
⚠ Примечание : Команда командной строки активно работает над этим хранилищем и будет периодически реструктурировать код, чтобы упростить понимание, навигацию, сборку, тестирование и содействие, поэтому действительно ожидают значительных изменений в компоновке кода на регулярной основе .
Документация
Вся документация находится в папке ./ doc . Если вы хотите внести свой вклад в документацию, отправьте запрос на извлечение.
Общение с командой
Самый простой способ общения с командой — через GitHub. Пожалуйста, регистрируйте новые проблемы, запросы функций и предложения, но НЕ Ищите подобные открытые / закрытые ранее существующие проблемы прежде, чем делать .
Пожалуйста, помогите нам сохранить этот репозиторий в чистоте, включительно и весело! Мы не потерпим никакого оскорбительного, грубого, неуважительного или неуместного поведения. Прочитайте наш Кодекс поведения для более подробной информации.
Если вы хотите задать вопрос, который, по вашему мнению, не является проблемой (пока), обратитесь к нам через Twitter:
Создание Кодекса
Этот репозиторий использует подмодули git для некоторых своих зависимостей. Чтобы убедиться, что подмодули восстановлены или обновлены, обязательно выполните перед сборкой следующее:
Обновление подмодуля git --init --recursive
OpenConsole.sln может быть собран из Visual Studio или из командной строки с использованием MSBuild. Для сборки из командной строки найдите вашу оболочку ниже.
Мы предоставили набор удобных сценариев, а также README в каталоге / tools чтобы помочь автоматизировать процесс создания и запуска тестов.
Руководство по кодированию
Пожалуйста, ознакомьтесь с этими краткими документами ниже, касающимися наших стандартов кодирования и т. Д.
👉 Если вы обнаружите, что чего-то не хватает в этих документах, не стесняйтесь вносить вклад в любой из наших файлов документации в любом месте репозитория (или создавать новые!)
Это незавершенная работа, поскольку мы узнаем, что нам нужно предоставить людям, чтобы они могли внести эффективный вклад в наш проект.
В этом проекте принят открытый кодекс поведения Microsoft.
Для получения дополнительной информации см. FAQ по Кодексу поведения или свяжитесь с opencode@microsoft.com с любыми дополнительными вопросами или комментариями.