elsa in mac

zsh, powerlevel10k 프롬프트 사용 시, 터미널 창 resize에 따라 화면이 깨지는 현상 방지법 본문

Mac(OS X)/Terminal

zsh, powerlevel10k 프롬프트 사용 시, 터미널 창 resize에 따라 화면이 깨지는 현상 방지법

elsa in mac 2024. 9. 9. 23:01

터미널 에뮬레이터를 사용하는 분들 중 많은 수가 zsh 에 powerlevel10k 프롬프트를 사용합니다. 
유용한 정보를 프롬프트에 표시할 수 있는 것은 물론, 미학적인 측면에서도 상당히 탁월한 기능을 지원하기 때문이지요.

헌데, 사용하는 터미널 에뮬레이터에 따라서는 윈도우의 크기를 변경하면 위의 스샷처럼 프롬프트가 깨져서 화면을 엉망으로 만드는 것을 경함한 분들이 많이 있을 것 입니다.  prompt reflow problem이라고들 하죠. 

최근 버전업된 kitty나 wezterm 등에서는 이 문제가 잡혔지만, foot 터미널을 사용하거나, 기타 다른 터미널을 사용하는 분들은 이런 문제를 겪게 됩니다. 그 원인이 zsh의 버그라는 말도 있고, p10k 에 문제가 있다고 하는 사람들도 있는데.. 이 문제가 이슈화된  것이 꽤 오래전 임에도 불구하고 아직 개선이 되지 않고 있다는 것이 신기하기도 합니다. 

일종의 workaround 즉, 우회하는 방법을 간단히 소개 합니다. 

우선, p10k의 설정을 실행합니다. 

> p10k configure

설정 단계 중에 아래와 같이 Prompt Connection 항목에서 1. Disconnected를 선택해 줍니다.  나머지는 원하는 옵션으로 진행하면 됩니다. 

다음으로, ~/.p10k.zsh 파일을 열어 줍니다. 

위의 스샷에서 보듯이, POWERLEVEL9K_RIGHT_ELEMENTS 설정 부분을 찾고..

typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
:
:
 )

의 ( ) 안의 항목들을 전부 주석 처리해 줍니다.  즉, 터미널 창의 오른쪽에 표시할 정보를 모두 비 활성화 시키는 것입니다. 

저장을 하고, 터미널을 종료한 후 다시 실행해서 터미널 창의 크기를 가변해 보면, 이제 프롬프트가 깨지지 않는 것을 확인할 수 있을 것 입니다.  만일 오른쪽에 표시하던 것이 있다면, 해당 항목을 POWERLEVEL9K_LEFT_PROMPT_ELEMENTS로 옮기면 됩니다. 

공유하기 링크
Comments