이 저장소에는 다음에 대한 소스 코드가 포함되어 있습니다.
윈도우 터미널
Windows 터미널 미리보기
Windows 콘솔 호스트( conhost.exe
)
두 프로젝트 간에 공유되는 구성 요소
컬러툴
Windows 콘솔 API를 사용하는 방법을 보여주는 샘플 프로젝트
관련 저장소는 다음과 같습니다.
Windows 터미널 문서(저장소: 문서에 기여)
콘솔 API 문서
Cascadia 코드 글꼴
메모
Windows 터미널에는 Windows 10 2004(빌드 19041) 이상이 필요합니다.
Microsoft Store에서 Windows 터미널을 설치합니다. 이를 통해 자동 업그레이드가 포함된 새 빌드를 출시할 때 항상 최신 버전을 유지할 수 있습니다.
이것이 우리가 선호하는 방법입니다.
Microsoft Store에서 Windows 터미널을 설치할 수 없는 사용자의 경우 릴리스된 빌드를 이 리포지토리의 릴리스 페이지에서 수동으로 다운로드할 수 있습니다.
자산 섹션에서 Microsoft.WindowsTerminal_
파일을 다운로드합니다. 앱을 설치하려면 .msixbundle
파일을 두 번 클릭하기만 하면 앱 설치 프로그램이 자동으로 실행됩니다. 어떤 이유로든 실패할 경우 PowerShell 프롬프트에서 다음 명령을 시도해 볼 수 있습니다.
# 참고: PowerShell 7+를 사용하는 경우 Add-AppxPackage.Add-AppxPackage Microsoft.WindowsTerminal_.msixbundle을 사용하기 전에# Import-Module Appx -UseWindowsPowerShell#을 실행하세요.
메모
터미널을 수동으로 설치하는 경우:
VC++ v14 데스크톱 프레임워크 패키지를 설치해야 할 수도 있습니다. 이는 Windows 10의 이전 빌드에서만 필요하며 프레임워크 패키지 누락에 대한 오류가 발생하는 경우에만 필요합니다.
터미널은 새 빌드가 출시될 때 자동으로 업데이트되지 않으므로 최신 수정 사항과 개선 사항을 모두 받으려면 정기적으로 최신 터미널 릴리스를 설치해야 합니다!
Winget 사용자는 Microsoft.WindowsTerminal
패키지를 설치하여 최신 터미널 릴리스를 다운로드하고 설치할 수 있습니다.
Winget 설치 --id Microsoft.WindowsTerminal -e
메모
종속성 지원은 WinGet 버전 1.6.2631 이상에서 사용할 수 있습니다. 터미널 안정 릴리스 1.18 이상을 설치하려면 WinGet 클라이언트의 업데이트된 버전이 있는지 확인하십시오.
Chocolatey 사용자는 microsoft-windows-terminal
패키지를 설치하여 최신 터미널 릴리스를 다운로드하고 설치할 수 있습니다.
초코 설치 microsoft-windows-terminal
Chocolatey를 사용하여 Windows 터미널을 업그레이드하려면 다음을 실행하세요.
초코 업그레이드 microsoft-windows-terminal
패키지를 설치/업그레이드할 때 문제가 있는 경우 Windows 터미널 패키지 페이지로 이동하여 Chocolatey 분류 프로세스를 따르세요.
Scoop 사용자는 windows-terminal
패키지를 설치하여 최신 터미널 릴리스를 다운로드하고 설치할 수 있습니다.
국자 버킷 추가 항목 추가 스쿠프 설치 윈도우 터미널
Scoop을 사용하여 Windows 터미널을 업데이트하려면 다음을 실행합니다.
특종 업데이트 Windows 터미널
패키지 설치/업데이트 시 문제가 있는 경우 Scoop Extras 버킷 저장소의 문제 페이지에서 해당 문제를 검색하거나 신고해 주세요.
Windows Terminal Canary는 Windows 터미널의 야간 빌드입니다. 이 빌드에는 main
브랜치의 최신 코드가 포함되어 있어 Windows Terminal Preview에 기능을 적용하기 전에 기능을 사용해 볼 수 있는 기회를 제공합니다.
Windows Terminal Canary는 안정성이 가장 낮은 제품이므로 우리가 버그를 발견하기도 전에 버그를 발견할 수 있습니다.
Windows Terminal Canary는 앱 설치 프로그램 배포 및 휴대용 ZIP 배포로 제공됩니다.
앱 설치 프로그램 배포는 자동 업데이트를 지원합니다. 플랫폼 제한으로 인해 이 설치 프로그램은 Windows 11에서만 작동합니다.
Portable ZIP 배포판은 휴대용 애플리케이션입니다. 자동으로 업데이트되지 않으며 자동으로 업데이트를 확인하지 않습니다. 이 휴대용 ZIP 배포판은 Windows 10(19041+) 및 Windows 11에서 작동합니다.
분포 | 건축학 | 링크 |
---|---|---|
앱 설치 프로그램 | x64, arm64, x86 | 다운로드 |
휴대용 ZIP | x64 | 다운로드 |
휴대용 ZIP | ARM64 | 다운로드 |
휴대용 ZIP | x86 | 다운로드 |
Windows 터미널 배포 유형에 대해 자세히 알아보세요.
Windows 터미널에 대한 계획은 여기에 설명되어 있으며 프로젝트가 진행됨에 따라 업데이트될 예정입니다.
코드를 살펴보기 전에 잠시 시간을 내어 아래 개요를 검토하세요.
Windows 터미널은 명령줄 사용자를 위한 새롭고 현대적이며 기능이 풍부한 생산적인 터미널 응용 프로그램입니다. 여기에는 탭 지원, 서식 있는 텍스트, 세계화, 구성 가능성, 테마 및 스타일 지정 등을 포함하여 Windows 명령줄 커뮤니티에서 가장 자주 요청하는 많은 기능이 포함되어 있습니다.
또한 터미널은 빠르고 효율적인 상태를 유지하고 막대한 양의 메모리나 전력을 소비하지 않도록 하기 위해 우리의 목표와 조치를 충족해야 합니다.
Windows 콘솔 호스트인 conhost.exe
Windows의 원래 명령줄 사용자 환경입니다. 또한 Windows의 명령줄 인프라와 Windows 콘솔 API 서버, 입력 엔진, 렌더링 엔진, 사용자 기본 설정 등을 호스팅합니다. 이 저장소의 콘솔 호스트 코드는 Windows 자체의 conhost.exe
가 빌드되는 실제 소스입니다.
2014년에 Windows 명령줄의 소유권을 얻은 이후 팀은 배경 투명도, 줄 기반 선택, ANSI/가상 터미널 시퀀스 지원, 24비트 색상, 의사 콘솔("ConPTY")을 포함하여 몇 가지 새로운 기능을 콘솔에 추가했습니다. ) 등이 있습니다.
그러나 Windows 콘솔의 주요 목표는 이전 버전과의 호환성을 유지하는 것이기 때문에 탭, 유니코드 텍스트, 이모티콘을 포함하여 커뮤니티(및 팀)가 지난 몇 년 동안 원했던 많은 기능을 추가할 수 없었습니다.
이러한 제한으로 인해 우리는 새로운 Windows 터미널을 만들게 되었습니다.
명령줄 팀 블로그의 이 블로그 게시물 시리즈에서 일반적인 명령줄, 특히 Windows 명령줄의 발전에 대해 자세히 알아볼 수 있습니다.
Windows 콘솔을 점검하는 동안 우리는 코드베이스를 상당히 현대화하여 논리적 엔터티를 모듈과 클래스로 명확하게 분리하고 몇 가지 주요 확장성 포인트를 도입했으며 기존의 자체 개발 컬렉션과 컨테이너를 더 안전하고 효율적인 STL 컨테이너로 교체했으며 코드를 더 간단하고 효율적으로 만들었습니다. Microsoft의 Windows 구현 라이브러리(WIL)를 사용하면 더욱 안전합니다.
이러한 점검으로 인해 Windows의 모든 터미널 구현에서 콘솔의 주요 구성 요소 중 일부를 재사용할 수 있게 되었습니다. 이러한 구성 요소에는 새로운 DirectWrite 기반 텍스트 레이아웃 및 렌더링 엔진, UTF-16 및 UTF-8을 모두 저장할 수 있는 텍스트 버퍼, VT 파서/이미터 등이 포함됩니다.
새로운 Windows 터미널 응용 프로그램을 계획하기 시작했을 때 몇 가지 접근 방식과 기술 스택을 탐색하고 평가했습니다. 우리는 궁극적으로 C++ 코드베이스에 대한 지속적인 투자를 통해 목표를 가장 잘 달성할 수 있다고 결정했습니다. 이를 통해 앞서 언급한 현대화된 구성 요소 중 일부를 기존 콘솔과 새 터미널 모두에서 재사용할 수 있게 되었습니다. 또한 이를 통해 터미널의 핵심 자체를 다른 사람들이 자신의 애플리케이션에 통합할 수 있는 재사용 가능한 UI 컨트롤로 구축할 수 있다는 것을 깨달았습니다.
이 작업의 결과는 이 리포지토리에 포함되어 있으며 Microsoft Store에서 다운로드하거나 이 리포지토리 릴리스에서 직접 다운로드할 수 있는 Windows 터미널 애플리케이션으로 제공됩니다.
Windows 터미널에 대한 자세한 내용을 보려면 다음 리소스 중 일부가 유용하고 흥미로울 수 있습니다.
명령줄 블로그
명령줄 배경 설명 블로그 시리즈
Windows 터미널 출시: 터미널 "Sizzle Video"
Windows 터미널 출시: Build 2019 세션
라디오로 실행: Show 645 - Richard Turner의 Windows 터미널
Azure Devops 팟캐스트: 에피소드 54 - Windows 터미널의 DevOps에 대한 Kayla Cinnamon 및 Rich Turner
Microsoft Ignite 2019 세션: 최신 Windows 명령줄: Windows 터미널 - BRK3321
원인: Visual Studio에서 잘못된 솔루션을 시작하고 있습니다.
해결 방법: Visual Studio에서 CascadiaPackage
프로젝트를 빌드 및 배포하고 있는지 확인하세요.
메모
OpenConsole.exe
는 Windows의 명령줄 인프라를 호스팅하는 클래식 Windows 콘솔인 로컬로 구축된 conhost.exe
입니다. OpenConsole은 Windows 터미널에서 ConPty를 통해 명령줄 응용 프로그램에 연결하고 통신하는 데 사용됩니다.
모든 프로젝트 문서는 aka.ms/terminal-docs에 있습니다. 문서에 기여하고 싶다면 Windows 터미널 문서 리포지토리에 끌어오기 요청을 제출하세요.
우리의 멋진 커뮤니티인 여러분과 함께 Windows 터미널을 구축하고 개선할 수 있게 되어 기쁘게 생각합니다!
기능/수정 작업을 시작하기 전에 , 낭비되거나 중복되는 노력을 피하는 데 도움이 되는 기여자 가이드를 읽고 따르십시오.
팀과 소통하는 가장 쉬운 방법은 GitHub 문제를 이용하는 것입니다.
새로운 이슈, 기능 요청 및 제안 사항을 제출하십시오. 단 , 새로운 이슈를 생성하기 전에 유사한 공개/폐쇄된 기존 이슈를 검색하십시오.
(아직) 문제가 발생하지 않는다고 생각되는 질문을 하고 싶다면 Twitter를 통해 문의해 주세요.
Christopher Nguyen, 제품 관리자: @nguyen_dows
Dustin Howett, 엔지니어링 리드: @dhowett
Mike Griese, 수석 개발자: @[email protected]
Carlos Zamora, 개발자: @cazamor_msft
Pankaj Bhojwani, 개발자
레너드 헤커(Leonard Hecker), 개발자: @LeonardHecker
Windows 터미널을 실행하려면 Windows 10 2004(빌드 >= 10.0.19041.0) 이상을 실행해야 합니다.
Windows 터미널을 로컬로 설치하고 실행하려면 Windows 설정 앱에서 개발자 모드를 활성화해야 합니다.
PowerShell 7 이상이 설치되어 있어야 합니다.
Windows 11(10.0.22621.0) SDK가 설치되어 있어야 합니다.
VS 2022 이상이 설치되어 있어야 합니다.
VS 설치 프로그램을 통해 다음 워크로드를 설치해야 합니다. 참고: VS 2022에서 솔루션을 열면 누락된 구성 요소를 자동으로 설치하라는 메시지가 표시됩니다.
C++(v143) 범용 Windows 플랫폼 도구
C++를 사용한 데스크탑 개발
유니버설 Windows 플랫폼 개발
다음 개별 구성요소
테스트 프로젝트를 빌드하려면 .NET Framework Targeting Pack을 설치해야 합니다.
이 저장소는 일부 종속성에 대해 git 하위 모듈을 사용합니다. 하위 모듈이 복원되거나 업데이트되었는지 확인하려면 빌드하기 전에 다음을 실행해야 합니다.
git 하위 모듈 업데이트 --init --recursive
OpenConsole.sln은 Visual Studio 내에서 또는 /tools 디렉터리에 있는 편리한 스크립트 및 도구 세트를 사용하여 명령줄에서 빌드할 수 있습니다.
가져오기 모듈 .toolsOpenConsole.psm1Set-MsBuildDevEnvironmentInvoke-OpenConsoleBuild
.toolsrazzle.cmd bcz
VS에서 Windows 터미널을 디버깅하려면 솔루션 탐색기에서 CascadiaPackage
마우스 오른쪽 버튼으로 클릭하고 속성으로 이동합니다. 디버그 메뉴에서 "응용 프로그램 프로세스" 및 "백그라운드 작업 프로세스"를 "네이티브 전용"으로 변경합니다.
그런 다음 F5 키 를 눌러 터미널 프로젝트를 빌드하고 디버그할 수 있습니다. "x64" 또는 "x86" 플랫폼을 선택해야 합니다. 터미널은 "모든 Cpu"용으로 빌드되지 않습니다(터미널은 C# 응용 프로그램이 아니라 C++ 응용 프로그램이기 때문입니다).
? WindowsTerminal.exe를 실행하여 터미널을 직접 시작할 수는 없습니다 . 자세한 이유는 #926, #4043을 참조하세요.
코딩 관행에 대한 아래의 간략한 문서를 검토하세요.
? 이 문서에서 누락된 내용을 발견하면 저장소의 모든 문서 파일에 자유롭게 기여하십시오(또는 새로운 문서를 작성하십시오!).
이는 프로젝트에 효과적으로 기여하기 위해 사람들에게 무엇을 제공해야 하는지 알아가는 진행 중인 작업입니다.
코딩 스타일
코드 구성
레거시 코드베이스의 예외
WIL에서 Windows와 인터페이스하는 데 유용한 스마트 포인터 및 매크로
이 프로젝트는 Microsoft 오픈 소스 행동 강령을 채택했습니다. 자세한 내용은 행동 강령 FAQ를 참조하거나 추가 질문이나 의견이 있는 경우 [email protected]으로 문의하세요.