오 마이포시에게는 놀라운 타기 였지만 시간이 걸렸습니다. 요즘 개발자는 더 이상 하나의 쉘/언어를 고수하지 않으며 특정 문제를 해결하는 데 사용하는 도구입니다. 오 마이 포쉬에게도 마찬가지입니다. 그 철학에 적응할 때입니다.
그렇기 때문에이 버전의 Oh My Posh가 V3를 문 밖으로 꺼내기 위해 열심히 노력하는 동안 유지 보수 모드에 들어가는 이유입니다. V3가 후드에서 완전히 다르다는 점을 감안할 때, 지금은 별도로 호스팅되고 있습니다. 사용자의 관점에서 볼 때, 그것은 동일한 경험을 상자 밖으로 제공해야하며, 사용자 정의 테마가 일류, 코드 시민이 아니라는 이점이 추가됩니다.
Install-Module oh - my - posh - Scope CurrentUser - AllowPrerelease지난 몇 년 동안이 ReadMe 보다 더 나은 경험을 제공하는 문서도 제공됩니다. :-)
기능을 추가하려는 개발자라면 V3를 살펴보고 이미 존재하는지 확인하십시오. 그렇지 않다면 V3에서 문제 또는 PR을 자유롭게 만들 수 있습니다. 지금부터 V2에서 버그 수정 만 수락합니다 .
PS-Config에서 Chris Benti가 수행 한 작업에서 영감을 얻은 PowerShell의 테마 엔진과 OSX 및 Linux (따라서 이름)의 OH-My-Zsh가 수행 한 작업에서 영감을 얻었습니다.
내가 이것을 만든 이유에 대한 자세한 내용은 내 블로그에서 찾을 수 있습니다.

특징:
Conemu, Alacritty, Terminus, Hyper, Fluentterminal 또는 공식 Windows 터미널과 같은 최신 콘솔 호스트를 사용하여 Windows에서 훌륭한 터미널 경험을 제공해야합니다.
Microsoft Store, Github Repo 또는 아래 명령 선 방법에서 Windows 터미널을 획득하는 방법에는 여러 가지가 있습니다.
winget을 통해 (Windows의 공식 패키지 관리자) :
winget install -- id = Microsoft.WindowsTerminal - e초콜릿을 통해 :
choco install microsoft - windows - terminal특종을 통해 :
scoop install windows - terminal 내가 사용하는 글꼴은 파워 라인 글꼴이며,이를 포함하는 훌륭한 저장소가 있습니다. 나는 Conemu 설정에서 맞춤형 색상과 함께 Meslo LG M Regular for Powerline Nerd Font 사용합니다. 여기에서 내 테마를 찾을 수 있습니다.
선택한 글꼴을 설치 한 후 이상한 글리프를 발견 한 경우 글리프를 사용할 수 있는지 확인하십시오 (아마도 글꼴에 다른 위치가있을 수 있습니다. 그렇다면 올바른 $ThemeSettings 아이콘을 조정하십시오). 원하는 캐릭터가 지원되지 않는 경우 다른 글꼴을 선택하십시오.
PowerShell 갤러리를 사용하여 OH-MY-POSH를 설치해야합니다.
Posh-Git 및 Oh-My-Posh를 설치하십시오.
Install-Module posh - git - Scope CurrentUser
Install-Module oh - my - posh - Scope CurrentUser프롬프트 활성화 :
# Start the default settings
Set-Prompt
# Alternatively set the desired theme:
Set-Theme Agnoster PS Core 에서이 실행을 실행하는 경우 PSReadLine 의 2.0.0-BETA1 버전을 설치하십시오.
Install-Module - Name PSReadLine - AllowPrerelease - Scope CurrentUser - Force - SkipPublisherCheck엔진을 활성화하려면 PowerShell 프로필을 편집하십시오.
if ( ! ( Test-Path - Path $PROFILE )) { New-Item - Type File - Path $PROFILE - Force }
notepad $PROFILEPowerShell 프로필에 다음 줄을 추가하십시오.
Import-Module posh - git
Import-Module oh - my - posh
Set-Theme Paradox마지막 명령은 콘솔 테마를 설정합니다. 아래에 사용 가능한 테마 목록을 확인하십시오.
현재 구성 목록 :
$ThemeSettings 
$ThemeSettings 조작하여 설정을 조정할 수 있습니다. 이 예제는 유니 코드 문자를 사용하여 분기 기호를 조정할 수 있습니다.
$ThemeSettings .GitSymbols.BranchSymbol = [ char ]::ConvertFromUtf32( 0xE0A0 )또한 포쉬 게이트 설정 자체를 잊지 마십시오 (예 : 보관함 표시를 활성화) :
$GitPromptSettings Agnoster, Fish, Honukai, Paradox 및 Sorin 테마의 가상 머신에 있지 않을 때 username@domain 숨기십시오.
$DefaultUser = ' yourUsernameHere ' Set-Theme : 테마 디렉토리에서 테마를 설정합니다. 일치가 발견되지 않으면 변경되지 않습니다. AutoComplete는 사용 가능한 테마를 나열하고 완료 할 수 있습니다.
Set-Theme paradox Show-ThemeColors : 테마에서 사용되는 색상을 표시하십시오

Show-Colors : Conemu에서 구성된 디스플레이 색상

















테마를 만들려면 $ThemeSettings.MyThemesLocation 에 표시된 폴더에 mytheme.psm1 파일을 추가하여 쉽게 수행 할 수 있습니다 (폴더 기본값은 ~DocumentsWindowsPowerShellPoshThemes
유일한 필요한 기능은 Write-Theme 입니다. 다음 템플릿을 사용하여 시작할 수 있습니다.
# requires -Version 2 -Modules posh -git
function Write-Theme
{
param (
[ bool ]
$lastCommandFailed ,
[ string ]
$with
)
# enter your prompt building logic here
}
$sl = $ global :ThemeSettings # local settings 공개 도우미 기능 Get-VCSStatus , Get-VcsInfo , Get-FormattedRootLocation , Get-ShortPath , Set-CursorForRightBlockWrite , Set-CursorUp , Set-Newline 또는 자신의 논리를 완전히 사용하십시오.
Conemu의 출력을 테스트하려면 테마로 전환하십시오.
Set-Theme mytheme당신이 당신의 테마를 OH-my-posh에 포함시키려면, 나에게 PR을 보내 주시면 최대한 빨리 피드백을 주려고 노력할 것입니다.
행복한 테마!
푸시드/POPD를 사용할 때 스택 정보에 액세스하는 것은 테마 내에서 불가능한 일종의 미션이 불가능한 것으로 보이므로 Jonathan Leech-Pepin이 제안한 해결 방법을 사용할 수 있습니다. $PROFILE 에서 스택 컨텍스트를 가져 오기 위해 올바르게 범위를 둔 포인터 역할을하는 변수를 추가하십시오.
$getStackContext = { Get-Location - Stack}다음으로 사용자 정의 테마에서 표시하려는 정보에 액세스하십시오.
$stackCount = ( & $getStackContext ).count 이는 ConsoleTitle 기능으로 인해 발생합니다. Andrew Stanton-Nurse가 설명한 것처럼 Terminals가 OSC 코드와의 작동 방식과 연결되어 있습니다. 수정은 ITERM2에서 다음 스 니펫을 $PROFILE 에 추가하여 ConsoleTitle 기능을 비활성화하는 것입니다.
if ( $ env: LC_TERMINAL -eq " iTerm2 " ) {
$ThemeSettings .Options.ConsoleTitle = $false
}