Este repositorio contiene el código fuente de:
Terminal de Windows
Vista previa de la terminal de Windows
El host de la consola de Windows ( conhost.exe
)
Componentes compartidos entre los dos proyectos.
Herramienta de color
Proyectos de muestra que muestran cómo consumir las API de la consola de Windows
Los repositorios relacionados incluyen:
Documentación de Windows Terminal (Repositorio: contribuir a los documentos)
Documentación de la API de consola
Fuente de código Cascadia
Nota
Windows Terminal requiere Windows 10 2004 (compilación 19041) o posterior
Instale la Terminal de Windows desde Microsoft Store. Esto le permite estar siempre en la última versión cuando lanzamos nuevas compilaciones con actualizaciones automáticas.
Este es nuestro método preferido.
Para los usuarios que no pueden instalar Windows Terminal desde Microsoft Store, las versiones publicadas se pueden descargar manualmente desde la página de Versiones de este repositorio.
Descargue el archivo Microsoft.WindowsTerminal_
de la sección Activos . Para instalar la aplicación, simplemente haga doble clic en el archivo .msixbundle
y el instalador de la aplicación debería ejecutarse automáticamente. Si eso falla por algún motivo, puede probar el siguiente comando en el símbolo del sistema de PowerShell:
# NOTA: Si está utilizando PowerShell 7+, ejecute# Import-Module Appx -UseWindowsPowerShell# antes de usar Add-AppxPackage.Add-AppxPackage Microsoft.WindowsTerminal_.msixbundle
Nota
Si instala Terminal manualmente:
Es posible que necesite instalar el paquete de marco de escritorio VC++ v14. Esto sólo debería ser necesario en versiones anteriores de Windows 10 y sólo si recibe un error sobre la falta de paquetes de marco.
Terminal no se actualizará automáticamente cuando se publiquen nuevas versiones, por lo que deberá instalar periódicamente la última versión de Terminal para recibir las últimas correcciones y mejoras.
Los usuarios de Winget pueden descargar e instalar la última versión de Terminal instalando el paquete Microsoft.WindowsTerminal
:
Instalación de Winget --id Microsoft.WindowsTerminal -e
Nota
El soporte de dependencia está disponible en WinGet versión 1.6.2631 o posterior. Para instalar la versión estable de Terminal 1.18 o posterior, asegúrese de tener la versión actualizada del cliente WinGet.
Los usuarios de Chocolatey pueden descargar e instalar la última versión de Terminal instalando el paquete microsoft-windows-terminal
:
choco instala microsoft-windows-terminal
Para actualizar Windows Terminal usando Chocolatey, ejecute lo siguiente:
actualización de choco a microsoft-windows-terminal
Si tiene algún problema al instalar/actualizar el paquete, vaya a la página del paquete de Windows Terminal y siga el proceso de clasificación de Chocolatey.
Los usuarios de Scoop pueden descargar e instalar la última versión de Terminal instalando el paquete windows-terminal
:
cubo con cuchara agregar extras primicia instalar windows-terminal
Para actualizar Windows Terminal usando Scoop, ejecute lo siguiente:
Actualización exclusiva de Windows-Terminal
Si tiene algún problema al instalar/actualizar el paquete, búsquelo o infórmelo en la página de problemas del repositorio de depósitos de Scoop Extras.
Windows Terminal Canary es una versión nocturna de Windows Terminal. Esta compilación tiene el código más reciente de nuestra rama main
, lo que le brinda la oportunidad de probar funciones antes de que lleguen a Windows Terminal Preview.
Windows Terminal Canary es nuestra oferta menos estable, por lo que es posible que descubra errores antes de que nosotros tengamos la oportunidad de encontrarlos.
Windows Terminal Canary está disponible como distribución de instalador de aplicaciones y distribución ZIP portátil.
La distribución de App Installer admite actualizaciones automáticas. Debido a limitaciones de la plataforma, este instalador solo funciona en Windows 11.
La distribución Portable ZIP es una aplicación portátil. No se actualizará automáticamente ni buscará actualizaciones automáticamente. Esta distribución ZIP portátil funciona en Windows 10 (19041+) y Windows 11.
Distribución | Arquitectura | Enlace |
---|---|---|
Instalador de aplicaciones | x64, brazo64, x86 | descargar |
ZIP portátil | x64 | descargar |
ZIP portátil | ARM64 | descargar |
ZIP portátil | x86 | descargar |
Obtenga más información sobre los tipos de distribuciones de Windows Terminal.
El plan para la Terminal de Windows se describe aquí y se actualizará a medida que avance el proyecto.
Tómese unos minutos para revisar la descripción general a continuación antes de sumergirse en el código:
Windows Terminal es una aplicación de terminal nueva, moderna, rica en funciones y productiva para usuarios de línea de comandos. Incluye muchas de las funciones más solicitadas por la comunidad de línea de comandos de Windows, incluida la compatibilidad con pestañas, texto enriquecido, globalización, configurabilidad, temas y estilos, y más.
La Terminal también deberá cumplir con nuestros objetivos y medidas para garantizar que siga siendo rápida y eficiente, y que no consuma grandes cantidades de memoria o energía.
El host de la consola de Windows, conhost.exe
, es la experiencia de usuario de línea de comandos original de Windows. También aloja la infraestructura de línea de comandos de Windows y el servidor API de la consola de Windows, el motor de entrada, el motor de renderizado, las preferencias del usuario, etc. El código del host de la consola en este repositorio es la fuente real a partir de la cual se construye conhost.exe
en Windows.
Desde que tomó posesión de la línea de comandos de Windows en 2014, el equipo agregó varias características nuevas a la consola, incluida la transparencia de fondo, la selección basada en líneas, la compatibilidad con secuencias ANSI/Terminal virtual, el color de 24 bits y una pseudoconsola ("ConPTY"). ), y más.
Sin embargo, debido a que el objetivo principal de Windows Console es mantener la compatibilidad con versiones anteriores, no hemos podido agregar muchas de las características que la comunidad (y el equipo) han estado esperando durante los últimos años, incluidas pestañas, texto Unicode y emoji.
Estas limitaciones nos llevaron a crear la nueva Terminal de Windows.
Puede leer más sobre la evolución de la línea de comandos en general y de la línea de comandos de Windows específicamente en esta serie de publicaciones adjuntas en el blog del equipo de línea de comandos.
Mientras revisamos la Consola de Windows, modernizamos considerablemente su base de código, separando claramente las entidades lógicas en módulos y clases, introdujimos algunos puntos clave de extensibilidad, reemplazamos varias colecciones y contenedores antiguos y locales con contenedores STL más seguros y eficientes, y simplificamos el código. más seguro utilizando las bibliotecas de implementación de Windows de Microsoft: WIL.
Esta revisión dio como resultado que varios de los componentes clave de la consola estuvieran disponibles para su reutilización en cualquier implementación de terminal en Windows. Estos componentes incluyen un nuevo motor de representación y diseño de texto basado en DirectWrite, un búfer de texto capaz de almacenar UTF-16 y UTF-8, un analizador/emisor VT y más.
Cuando comenzamos a planificar la nueva aplicación Windows Terminal, exploramos y evaluamos varios enfoques y conjuntos de tecnología. Finalmente decidimos que la mejor manera de alcanzar nuestros objetivos sería continuar con nuestra inversión en nuestro código base C++, lo que nos permitiría reutilizar varios de los componentes modernizados antes mencionados tanto en la Consola existente como en la nueva Terminal. Además, nos dimos cuenta de que esto nos permitiría construir gran parte del núcleo de la Terminal como un control de interfaz de usuario reutilizable que otros pueden incorporar a sus propias aplicaciones.
El resultado de este trabajo está contenido en este repositorio y se entrega como la aplicación Windows Terminal que puede descargar desde Microsoft Store o directamente desde las versiones de este repositorio.
Para obtener más información sobre Windows Terminal, algunos de estos recursos pueden resultarle útiles e interesantes:
Blog de línea de comandos
Serie de blogs sobre antecedentes de la línea de comandos
Inicio de la terminal de Windows: Terminal "Sizzle Video"
Lanzamiento de la terminal de Windows: sesión de compilación 2019
Ejecutar como radio: Show 645 - Terminal de Windows con Richard Turner
Podcast de Azure Devops: Episodio 54: Kayla Cinnamon y Rich Turner sobre DevOps en la terminal de Windows
Sesión de Microsoft Ignite 2019: La línea de comandos de Windows moderna: Terminal de Windows - BRK3321
Causa: Está iniciando la solución incorrecta en Visual Studio.
Solución: asegúrese de crear e implementar el proyecto CascadiaPackage
en Visual Studio.
Nota
OpenConsole.exe
es simplemente un conhost.exe
construido localmente, la consola clásica de Windows que aloja la infraestructura de línea de comandos de Windows. OpenConsole es utilizado por Windows Terminal para conectarse y comunicarse con aplicaciones de línea de comandos (a través de ConPty).
Toda la documentación del proyecto se encuentra en aka.ms/terminal-docs. Si desea contribuir a la documentación, envíe una solicitud de extracción en el repositorio de documentación de Windows Terminal.
¡Estamos entusiasmados de trabajar junto a usted, nuestra increíble comunidad, para crear y mejorar Windows Terminal!
ANTES de comenzar a trabajar en una función/solución , lea y siga nuestra Guía del colaborador para evitar esfuerzos desperdiciados o duplicados.
La forma más sencilla de comunicarse con el equipo es a través de problemas de GitHub.
Presente nuevos problemas, solicitudes de funciones y sugerencias, pero busque problemas preexistentes abiertos o cerrados similares antes de crear un nuevo problema.
Si desea hacer una pregunta que cree que no justifica un problema (todavía), comuníquese con nosotros a través de Twitter:
Christopher Nguyen, director de producto: @nguyen_dows
Dustin Howett, jefe de ingeniería: @dhowett
Mike Griese, desarrollador sénior: @[email protected]
Carlos Zamora, Desarrollador: @cazamor_msft
Pankaj Bhojwani, desarrollador
Leonard Hecker, desarrollador: @LeonardHecker
Debe ejecutar Windows 10 2004 (compilación >= 10.0.19041.0) o posterior para ejecutar Windows Terminal
Debe habilitar el Modo de desarrollador en la aplicación Configuración de Windows para instalar y ejecutar Windows Terminal localmente
Debes tener instalado PowerShell 7 o posterior
Debes tener instalado el SDK de Windows 11 (10.0.22621.0)
Debes tener al menos VS 2022 instalado
Debe instalar las siguientes cargas de trabajo a través del instalador VS. Nota: Al abrir la solución en VS 2022, se le solicitará que instale los componentes faltantes automáticamente:
Herramientas de la plataforma universal de Windows C++ (v143)
Desarrollo de escritorio con C++
Desarrollo de plataforma universal de Windows
Los siguientes componentes individuales
Debe instalar el paquete de orientación de .NET Framework para crear proyectos de prueba.
Este repositorio utiliza submódulos de git para algunas de sus dependencias. Para asegurarse de que los submódulos se restauren o actualicen, asegúrese de ejecutar lo siguiente antes de compilar:
Actualización del submódulo git --init --recursive
OpenConsole.sln se puede compilar desde Visual Studio o desde la línea de comandos usando un conjunto de scripts y herramientas convenientes en el directorio /tools :
Importar módulo .toolsOpenConsole.psm1Set-MsBuildDevEnvironmentInvoke-OpenConsoleBuild
.herramientasrazzle.cmd bcz
Para depurar la Terminal de Windows en VS, haga clic derecho en CascadiaPackage
(en el Explorador de soluciones) y vaya a propiedades. En el menú Depurar, cambie "Proceso de aplicación" y "Proceso de tarea en segundo plano" a "Sólo nativo".
Luego debería poder compilar y depurar el proyecto Terminal presionando F5 . Asegúrese de seleccionar la plataforma "x64" o "x86": la Terminal no se compila para "Cualquier CPU" (porque la Terminal es una aplicación C++, no C#).
? No podrá iniciar la Terminal directamente ejecutando WindowsTerminal.exe. Para obtener más detalles sobre el motivo, consulte los números 926 y 4043.
Revise estos breves documentos a continuación sobre nuestras prácticas de codificación.
? Si encuentra algo que falta en estos documentos, no dude en contribuir a cualquiera de nuestros archivos de documentación en cualquier lugar del repositorio (¡o escribir algunos nuevos!)
Este es un trabajo en progreso a medida que aprendemos qué necesitaremos brindarles a las personas para que puedan contribuir de manera efectiva a nuestro proyecto.
Estilo de codificación
Organización del código
Excepciones en nuestro código base heredado
Macros y punteros inteligentes útiles para interactuar con Windows en WIL
Este proyecto ha adoptado el Código de conducta de código abierto de Microsoft. Para obtener más información, consulte las preguntas frecuentes sobre el Código de conducta o comuníquese con [email protected] si tiene alguna pregunta o comentario adicional.