Este repositório contém o código-fonte para:
Terminal do Windows
Visualização do Terminal do Windows
O host do console do Windows ( conhost.exe
)
Componentes compartilhados entre os dois projetos
ColorTool
Exemplos de projetos que mostram como consumir as APIs do Console do Windows
Os repositórios relacionados incluem:
Documentação do Terminal do Windows (Repo: Contribuir com a documentação)
Documentação da API do console
Fonte do código Cascadia
Observação
Terminal do Windows requer Windows 10 2004 (compilação 19041) ou posterior
Instale o Terminal do Windows da Microsoft Store. Isso permite que você esteja sempre com a versão mais recente quando lançarmos novas compilações com atualizações automáticas.
Este é o nosso método preferido.
Para usuários que não conseguem instalar o Windows Terminal da Microsoft Store, as compilações lançadas podem ser baixadas manualmente na página Versões deste repositório.
Baixe o arquivo Microsoft.WindowsTerminal_
na seção Ativos . Para instalar o aplicativo, basta clicar duas vezes no arquivo .msixbundle
e o instalador do aplicativo deverá ser executado automaticamente. Se isso falhar por algum motivo, você pode tentar o seguinte comando em um prompt do PowerShell:
# NOTA: Se você estiver usando o PowerShell 7+, execute# Import-Module Appx -UseWindowsPowerShell# antes de usar Add-AppxPackage.Add-AppxPackage Microsoft.WindowsTerminal_.msixbundle
Observação
Se você instalar o Terminal manualmente:
Pode ser necessário instalar o pacote VC++ v14 Desktop Framework. Isso só deve ser necessário em versões mais antigas do Windows 10 e somente se você receber um erro sobre pacotes de estrutura ausentes.
O Terminal não será atualizado automaticamente quando novas compilações forem lançadas, então você precisará instalar regularmente a versão mais recente do Terminal para receber todas as correções e melhorias mais recentes!
Os usuários do winget podem baixar e instalar a versão mais recente do Terminal instalando o pacote Microsoft.WindowsTerminal
:
winget instalar --id Microsoft.WindowsTerminal -e
Observação
O suporte a dependências está disponível no WinGet versão 1.6.2631 ou posterior. Para instalar a versão estável 1.18 ou posterior do Terminal, certifique-se de ter a versão atualizada do cliente WinGet.
Os usuários do Chocolatey podem baixar e instalar a versão mais recente do Terminal instalando o pacote microsoft-windows-terminal
:
choco instalar microsoft-windows-terminal
Para atualizar o Terminal do Windows usando Chocolatey, execute o seguinte:
choco atualizar microsoft-windows-terminal
Se você tiver algum problema ao instalar/atualizar o pacote, vá para a página do pacote do Windows Terminal e siga o processo de triagem do Chocolatey
Os usuários do Scoop podem baixar e instalar a versão mais recente do Terminal instalando o pacote windows-terminal
:
balde de colher adicionar extras colher instalar windows-terminal
Para atualizar o Terminal do Windows usando Scoop, execute o seguinte:
colher atualização do windows-terminal
Se você tiver algum problema ao instalar/atualizar o pacote, pesquise ou relate o mesmo na página de problemas do repositório de buckets Scoop Extras.
Windows Terminal Canary é uma versão noturna do Windows Terminal. Esta compilação possui o código mais recente de nossa ramificação main
, dando a você a oportunidade de experimentar os recursos antes que eles cheguem ao Windows Terminal Preview.
O Windows Terminal Canary é nossa oferta menos estável, então você pode descobrir bugs antes que possamos encontrá-los.
O Windows Terminal Canary está disponível como uma distribuição App Installer e uma distribuição Portable ZIP.
A distribuição do App Installer oferece suporte a atualizações automáticas. Devido às limitações da plataforma, este instalador só funciona no Windows 11.
A distribuição Portable ZIP é um aplicativo portátil. Ele não será atualizado automaticamente e não verificará atualizações automaticamente. Esta distribuição ZIP portátil funciona no Windows 10 (19041+) e no Windows 11.
Distribuição | Arquitetura | Link |
---|---|---|
Instalador de aplicativos | x64, braço64, x86 | download |
ZIP portátil | x64 | download |
ZIP portátil | ARM64 | download |
ZIP portátil | x86 | download |
Saiba mais sobre os tipos de distribuições do Terminal do Windows.
O plano para o Terminal Windows é descrito aqui e será atualizado à medida que o projeto avança.
Reserve alguns minutos para revisar a visão geral abaixo antes de mergulhar no código:
O Windows Terminal é um aplicativo de terminal novo, moderno, produtivo e rico em recursos para usuários de linha de comando. Inclui muitos dos recursos solicitados com mais frequência pela comunidade de linha de comando do Windows, incluindo suporte para guias, rich text, globalização, configurabilidade, temas e estilos e muito mais.
O Terminal também precisará cumprir nossos objetivos e medidas para garantir que permaneça rápido e eficiente e não consuma grandes quantidades de memória ou energia.
O host do Console do Windows, conhost.exe
, é a experiência original do usuário de linha de comando do Windows. Ele também hospeda a infraestrutura de linha de comando do Windows e o servidor API do console do Windows, mecanismo de entrada, mecanismo de renderização, preferências do usuário, etc. O código host do console neste repositório é a fonte real a partir da qual o conhost.exe
no próprio Windows é construído.
Desde que assumiu a propriedade da linha de comando do Windows em 2014, a equipe adicionou vários novos recursos ao Console, incluindo transparência de fundo, seleção baseada em linha, suporte para sequências ANSI/Terminal Virtual, cores de 24 bits, um Pseudoconsole ("ConPTY" ) e muito mais.
No entanto, como o objetivo principal do Windows Console é manter a compatibilidade com versões anteriores, não conseguimos adicionar muitos dos recursos que a comunidade (e a equipe) desejavam nos últimos anos, incluindo guias, texto Unicode e emoji.
Essas limitações nos levaram a criar o novo Terminal Windows.
Você pode ler mais sobre a evolução da linha de comando em geral e da linha de comando do Windows especificamente nesta série de postagens no blog da equipe da linha de comando.
Ao revisar o Windows Console, modernizamos consideravelmente sua base de código, separando de forma clara as entidades lógicas em módulos e classes, introduzimos alguns pontos importantes de extensibilidade, substituímos várias coleções e contêineres antigos e desenvolvidos internamente por contêineres STL mais seguros e eficientes, e tornamos o código mais simples e mais seguro usando as Bibliotecas de Implementação do Windows da Microsoft - WIL.
Essa revisão resultou na disponibilização de vários componentes principais do Console para reutilização em qualquer implementação de terminal no Windows. Esses componentes incluem um novo layout de texto baseado em DirectWrite e mecanismo de renderização, um buffer de texto capaz de armazenar UTF-16 e UTF-8, um analisador/emissor VT e muito mais.
Quando começamos a planejar o novo aplicativo Windows Terminal, exploramos e avaliamos diversas abordagens e pilhas de tecnologia. No final das contas, decidimos que nossos objetivos seriam melhor alcançados se continuassemos nosso investimento em nossa base de código C++, o que nos permitiria reutilizar vários dos componentes modernizados mencionados acima, tanto no Console existente quanto no novo Terminal. Além disso, percebemos que isso nos permitiria construir grande parte do núcleo do Terminal como um controle de UI reutilizável que outros podem incorporar em seus próprios aplicativos.
O resultado deste trabalho está contido neste repositório e entregue como o aplicativo Terminal do Windows que você pode baixar na Microsoft Store ou diretamente nas versões deste repositório.
Para obter mais informações sobre o Terminal do Windows, você pode achar alguns destes recursos úteis e interessantes:
Blog de linha de comando
Série de blogs de background de linha de comando
Lançamento do Terminal do Windows: Terminal “Sizzle Video”
Lançamento do Terminal do Windows: Sessão Build 2019
Run As Radio: Show 645 - Terminal Windows com Richard Turner
Podcast Azure Devops: Episódio 54 - Kayla Cinnamon e Rich Turner em DevOps no Terminal Windows
Sessão Microsoft Ignite 2019: A linha de comando moderna do Windows: Terminal do Windows - BRK3321
Causa: você está iniciando a solução incorreta no Visual Studio.
Solução: certifique-se de criar e implantar o projeto CascadiaPackage
no Visual Studio.
Observação
OpenConsole.exe
é apenas um conhost.exe
construído localmente, o console clássico do Windows que hospeda a infraestrutura de linha de comando do Windows. OpenConsole é usado pelo Windows Terminal para conectar-se e comunicar-se com aplicativos de linha de comando (via ConPty).
Toda a documentação do projeto está localizada em aka.ms/terminal-docs. Se você quiser contribuir com a documentação, envie uma solicitação pull no repositório de documentação do Windows Terminal.
Estamos entusiasmados em trabalhar ao lado de vocês, nossa incrível comunidade, para construir e aprimorar o Windows Terminal!
ANTES de começar a trabalhar em um recurso/correção , leia e siga nosso Guia do Colaborador para ajudar a evitar qualquer esforço desperdiçado ou duplicado.
A maneira mais fácil de se comunicar com a equipe é por meio de problemas no GitHub.
Registre novos problemas, solicitações de recursos e sugestões, mas pesquise problemas pré-existentes abertos/fechados semelhantes antes de criar um novo problema.
Se você quiser fazer uma pergunta que acha que não justifica um problema (ainda), entre em contato conosco pelo Twitter:
Christopher Nguyen, gerente de produto: @nguyen_dows
Dustin Howett, líder de engenharia: @dhowett
Mike Griese, desenvolvedor sênior: @[email protected]
Carlos Zamora, Desenvolvedor: @cazamor_msft
Pankaj Bhojwani, desenvolvedor
Leonard Hecker, desenvolvedor: @LeonardHecker
Você deve estar executando o Windows 10 2004 (build >= 10.0.19041.0) ou posterior para executar o Windows Terminal
Você deve ativar o modo de desenvolvedor no aplicativo Configurações do Windows para instalar e executar localmente o Terminal do Windows
Você deve ter o PowerShell 7 ou posterior instalado
Você deve ter o SDK do Windows 11 (10.0.22621.0) instalado
Você deve ter pelo menos o VS 2022 instalado
Você deve instalar as seguintes cargas de trabalho por meio do instalador do VS. Nota: Abrir a solução no VS 2022 solicitará que você instale automaticamente os componentes ausentes:
C++ (v143) Ferramentas Universais da Plataforma Windows
Desenvolvimento Desktop com C++
Desenvolvimento de plataforma universal do Windows
Os seguintes componentes individuais
Você deve instalar o .NET Framework Targeting Pack para criar projetos de teste
Este repositório usa submódulos git para algumas de suas dependências. Para garantir que os submódulos sejam restaurados ou atualizados, execute o seguinte antes da construção:
atualização do submódulo git --init --recursive
OpenConsole.sln pode ser criado no Visual Studio ou na linha de comando usando um conjunto de scripts e ferramentas convenientes no diretório /tools :
Módulo de importação .toolsOpenConsole.psm1Set-MsBuildDevEnvironmentInvoke-OpenConsoleBuild
.ferramentasrazzle.cmd porque
Para depurar o Terminal Windows no VS, clique com o botão direito em CascadiaPackage
(no Solution Explorer) e vá em propriedades. No menu Depurar, altere "Processo de aplicativo" e "Processo de tarefa em segundo plano" para "Somente nativo".
Você poderá então construir e depurar o projeto Terminal pressionando F5 . Certifique-se de selecionar a plataforma "x64" ou "x86" - o Terminal não é compilado para "Qualquer CPU" (porque o Terminal é um aplicativo C++, não C#).
? Você não poderá iniciar o Terminal diretamente executando o WindowsTerminal.exe. Para obter mais detalhes sobre o porquê, consulte #926, #4043
Revise estes breves documentos abaixo sobre nossas práticas de codificação.
? Se você encontrar algo faltando nesses documentos, sinta-se à vontade para contribuir com qualquer um de nossos arquivos de documentação em qualquer lugar do repositório (ou escreva alguns novos!)
Este é um trabalho em andamento à medida que aprendemos o que precisaremos fornecer às pessoas para que possamos contribuir efetivamente para o nosso projeto.
Estilo de codificação
Organização do Código
Exceções em nossa base de código herdada
Ponteiros e macros inteligentes úteis para interface com o Windows em WIL
Este projeto adotou o Código de Conduta de Código Aberto da Microsoft. Para obter mais informações, consulte as Perguntas frequentes sobre o Código de Conduta ou entre em contato com [email protected] com perguntas ou comentários adicionais.