본문 바로가기

삽질 노트

윈도우 Terminal 꾸미기 (Windows terminal theme 설정, Oh-My-Posh, 배경이미지 넣기)

작년 8월 중순부터 갑자기 연구실 컴퓨터에서 microsoft 관련 프로그램들이 모두 인증 관련 문제로 작동하지 않는 문제가 발생했다. 당시에 5시간 정도 삽질을 하고 학교 부서에 연락을 해서 문제를 해결하려고 했지만 결국 해결하지 못했고, 모든 slide 작업과 word, excel 같은 작업을 모두 mac에서 처리해야 했다. 데스크톱을 포맷해서 문제를 해결하려 했지만 당시에 논문을 쓰고 있어 시간을 내기도 귀찮았고, 파일을 백업하거나 정리하다가 논문 데이터를 날려버릴까 걱정되어서 포맷하지 못했다. 12월초에 논문도 냈고 학기도 종료되어서 코스웤 관련 자료들도 이제 대충 정리되었겠다 신년 맞이 데스크톱 포맷을 진행했고, 다행히 데이터도 잘 보존되었고 문제가 되었던 microsoft 프로그램들도 잘 작동하기 시작했다.

 

이제 귀찮은 세팅 업무들이 잔뜩 남아 있다. 본인이 작성하는 대부분의 코드들은 Python 코드들인데(사족이지만 컴퓨터 공부하는 사람으로 Python만 다루는건 부끄러운 일인 것 같다...), vscode에서 코드를 작성하고 windows terminal에서 파일을 실행하였고, 대부분의 server에서의 작업도 결국 windows terminal을 사용한다. 따라서, windows terminal의 가독성을 조금이라도 높이는 것을 선호하여 terminal을 조금 꾸며 놓는 편이다. 연구실에 처음 들어왔을 당시에 세팅했던 기억들이 가물가물하여서 다시 하려고 세팅을 하였는데 생각보다 과정에서 삽질을 좀 해서 정리를 좀 해두려 한다. 이러자고 블로그를 시작한 것이 아닌가.

 

1. 우선 microsoft store에서 windows terminal 프로그램을 설치하자.

windows terminal은 대충 명령 프롬포트, powershell, WSL(Windows Subsystem Linux) 등을 통합하여 다룰 수 있도록 해주는 프로그램이라고 이해하고 있다. 뭐 꽤나 괜찮은 기능들(이번 논문을 쓰면서 창을 쪼개는 기능을 참 잘 사용했다.)을 제공하여서 프로그램을 많이 다루는 입장에서는 굳이 사용하지 않을 이유가 없어 보인다. 각설하고 다음으로 넘어가자.

기본 powershell 창
windows terminal 창

그냥 powershell을 실행을 하면 첫 이미지 같은 구리구리한 창이 뜨는데, windows terminal에서는 이미 꽤나 괜찮은 모습이다.

 

2. 컬러 세팅하기

이제 튜닝을 할시간! 설정을 눌러서 설정으로 들어간다. 

이제 저기 Json 파일 열기를 누르면 setting 관련 Json 파일이 열린다. 코드 내부를 보면 "schemes"라는 부분이 있는데, 여기에 컬러 팔레트들이 저장되어 있고 자세히 읽어보면 name이라는 element가 있는데, 적당히 default 안에 colorScheme에 할당해주면 된다. 본인은 Json으로 작업을 했는데, windows terminal에서 gui로 설정도 가능한 것으로 보인다. https://windowsterminalthemes.dev/ 에서 컬러 팔레트들을 확인 및 복사해올 수 있으니 어떤 것이 괜찮을지는 들어가서 취향에 맞는 것을 골라주자. 개인적으로 많이 튀는 색 보다는 은은하게 대비가 있는 컬러가 눈이 덜 아픈 것 같다... 일단은 The Hulk라는 녀석으로 해두었다. 

 

Windows Terminal Themes

 

windowsterminalthemes.dev

 요정도가 기본적인 세팅이고, 좀 더 삐까뻔쩍 하게 꾸미는 방법이 있는데, linux나 mac에서는 oh-my-zsh이라고 해서 shell을 이쁘게 꾸며주는 패키지? 프로그램?이 있다. 하지만 windows OS는 이를 지원하지 않는다. 대신 이를 windows powershell에서 이와 비슷한 기능을 제공해주는 oh-my-posh라는 녀석이 있다. 이 녀석을 통해 terminal을 예쁘게 꾸며보자

 

3. oh-my-posh 세팅하기

우선 oh-my-posh를 설치해줘야 한다. winget을 사용해서 설치를 해주면 된다. 아래의 command를 powershell teminal에 입력해주자

winget install oh-my-posh

예전에는 이렇게 바로 설치가 잘 되었는데, 아래와 같은 에러("입력 조건과 일치하는 패키지가 여러 개 있습니다. 입력을 구체화하십시오.")가 발생한다.

결국 oh-my-posh가 버전이 여러개 있어서 정확하게 무엇인지 명시화 하라는 것으로 보인다. 아마 첫 녀석이 microsoft store에서 제공하는 버전인 것 같은데, 최신 버전은 아래 녀석인 것으로 보여서 아래쪽으로 설치해주었다. 설치하는 명령어는 다음과 같다. install 명령어 다음을 장치 ID로 명시해주면 된다고 한다.

winget install JanDeDobbeleer.OhMyPosh

oh-my-posh get shell

위의 명령어를 입력해보면 powershell 혹은 pwsh라고 나오면 잘 설치된 것이다. 만약 oh-my-posh라는 명령어가 없다고 나오는 경우, 이는 환경 변수에 oh-my-posh.exe가 있는 위치가 없는 것이기 때문에 이를 추가해주면 된다. 환경 변수 추가 정도는 적당히 알아서(https://rootblog.tistory.com/206) 해보도록 하자...

 

생각보다 인터넷에 올라와 있는 자료들과 현재 버전 사이에 괴리가 조금 있더라. 우선 powershell에서 module을 import 해서 사용하는 방식은 모두 deprecated되어 다른 방식을 사용해주어야 한다더라. 

 

정상적으로 잘 설치된 경우 "C:\Users\{사용자 명}\AppData\Local\Programs\oh-my-posh\themes"폴더에 이런저런 theme에 대한 json file들이 들어 있는 것을 확인할 수 있다. 뭐 안들어 있어도 상관은 없다. 파일 명에 적혀있는 것들이 결국 우리가 사용하고자 하는 theme인데, 여기 적힌 것만 보아서는 뭐가 어떤 것인지 알 수 없으니 https://ohmyposh.dev/docs/themes에 접속하여서 본인이 마음에 드는 theme을 적당히 골라주자. 본인은 전에도 사용하였던 것으로 기억하는 atomic을 사용한다.

 

 

 

Themes | Oh My Posh

Oh My Posh comes with many themes included out-of-the-box. Below are some screenshots of the more common themes.

ohmyposh.dev

본인이 사용하고자 하는 theme을 골랐다면 다시 터미널로 돌아와서 다음 명령어를 입력해주겠다.

cd ~
notepad .mytheme.omp.json

명령어 두 줄을 입력하면 가장 기본 디렉토리에서 '.mytheme.omp.json'이라는 파일이 메모장에서 열리게 되는데, 이 메모장에 본인이 마음에 드는 theme json을 복사해서 붙여 넣어주면 된다. "C:\Users\{사용자 명}\AppData\Local\Programs\oh-my-posh\themes"에 있는 json을 직접 사용해도 괜찮을 것 같은데, 본인은 사용자 명이 한글이라 그런지 자꾸 오류가 발생하여서 해당 방법을 사용하였다.

 

이제 oh-my-posh를 통해 이를 적용해보자 다음의 명령어를 powershell terminal에 입력해보자

oh-my-posh init powershell --config ~/.mytheme.omp.json | Invoke-Expression

본인은 한글로 된 사용자명으로 인해 아래와 같은 문제가 계속해서 발생하였다. (사용자명을 영어로 바꾸는 것이 현명한 방식인 것 같으나, 학교 계정이라 이름을 바꿀 수 없단다 ㅋㅋ...

이 경우 아래의 명령어를 입력해준 다음 다시 위의 명령어를 입력해주자

[System.Console]::OutputEncoding = [System.Text.Encoding]::UTF8

야호! 드디어 우리가 원했던 예쁜 터미널이 나왔다! 그런데 해당 방식은 터미널을 껐다 키면 다시 앞서 입력했던 명령어를 다시 또 입력해줘야 하는 문제가 있다. 해당 명령어들을 터미널을 킬 때마다 자동으로 입력되도록 만들어 줘야 한다. 아래의 명령어를 입력해주자

cd ~
notepad $PROFILE

또 하나의 메모장이 열릴 것인데, 여기다 써주는 명령어들은 powershell이 실행되는 경우 자동적으로 수행되는 명령어들이라고 봐주면 된다. oh-my-zsh에서도 .zshrc 같은거 설정하는거랑 비슷한 것 같다. 암튼 여기에다가 아까 앞에 입력했던 명령어를 복사 붙여넣기 하고 저장해주면 끝이다! 

 

4. 배경 이미지 설정하기

예쁘게 나오니 됐다! 나는 여기다가 뇌절 하나만 더 할려고 한다. 보통 터미널 배경은 단색으로 채워져있기 마련인데, 본인은 여기에 사진이나 영상을 집어 넣는걸 선호한다. 사진은 심심하니 영상으로 넣어보자. 영상은 너무 화려하지 않은 차분한 움짤을 넣어주자. 아까 windows terminal 설정에서 좌측의 기본값 -> 모양을 선택해주자

모양에 들어가보면 배경이미지 라는 항목이 있다. 여기서 배경 이미지 경로를 본인이 원하는 이미지로 설정해주면 1단계는 끝이다

여기까지만 해도 예쁘다. 본인은 여기에 투명도를 살짝 주는 것을 선호하는데, 이유는 서버+로컬 환경으로 적게는 2개 많을 땐 최대 4~6개의 창을 띄우다보니 지금 포커스가 가있는 터미널이 무엇인지 한 눈에 알 수 있어지기 때문이다. 뒤에 밑의 투명도를 적당히 설정해주면 되고, 뒤가 완전히 뚫려 보이는 것이 싫은 사람들은 배경 투명도에 아크릴 재질 사용하기도 사용해주자.

아크릴 재질 사용 X
아크릴재질 사용 O

사실 뭐 아크릴 재질을 사용하지 않는 것이 예쁘다고 느끼실 수 있지만 현실적으로 뒤에 있는 놈이 잘보이면 내가 볼려는 친구가 잘 안보인다... 뭐 적절히 조절해주도록 하자! 이러면 최종적으로 이쁜 배경 완성이다! 

 

뭐 이런거도 가능하긴 하다만...? 화려한건 오히려 눈만 아프다... 배경은 심플한 걸로 하자...~

 

그리고 터미널 꾸밀 시간에 코딩이나 열심히 하자 ㅋㅋ 사실 세팅 안하려다가 너무 일 하기 싫어서 한 김에 정리도 했다. 앞으로 한 해라도 좀 고장 없이 잘 버텨주렴 데톱아...