언제부터인지 Ubuntu 업그레이드 이후 Gnome Terminal에서 Powerline 폰트가 이상하게 나오는 문제를 발견했습니다. 폰트의 높이가 위아래로 늘어나는 현상인데, 이로 인해 폰트가 깨져서 보였습니다. 이 현상의 원인을 찾아보려고 여러 방법을 시도했지만, 결국에는 해결하지 못하고 Ubuntu 20.04로 시스템을 복구하였습니다.

gnome-terminal-cjk.png

하지만 Ubuntu 22.04를 사용하면서 다시 이 문제가 발생하였고, 여러 시도와 검색 끝에 문제의 원인을 찾아냈습니다. 원인은 바로 Gnome Terminal에서 사용되는 VTE Terminal Widget Library였습니다.

VTE Library는 사용자의 환경이 CJK(Chinese, Japanese, Korean)인 경우, 폰트의 높이 값을 무시하고 강제적으로 높이를 높게 설정합니다. 이는 CJK 문자의 경우 알파벳보다 높이를 높게 설정하는 것이 가독성에 유리하기 때문으로 보입니다만, Powerline이나 Nerd Font 같은 특수 폰트에는 부정적인 영향을 주어 폰트가 깨지는 문제를 유발합니다.

이 문제를 해결하기 위해서는 VTE Library 코드를 수정한 후에, Gnome Terminal을 다시 컴파일해야 합니다. 하지만 매번 패치 후 컴파일을 하는 건 번거로우므로 그다지 편리한 해결방법이라고 볼 수 없습니다.

그래서 다른 간단한 방법을 찾아보았고, 시스템의 locale 설정을 변경함으로써 문제를 해결하였습니다. 바로 LANG 환경 변수를 en_US.UTF-8로 설정하는 것입니다. 이 방법은 VTE가 폰트 높이를 강제적으로 변경하지 않도록 만들어, Powerline 폰트가 깨지는 문제를 방지합니다.

아래는 이 방법을 적용하는 방법입니다.

  1. sudo 권한으로 /etc/default/locale 파일을 열습니다.

    1
    
    sudo nano /etc/default/locale
    
  2. LANG 변수를 en_US.UTF-8로 설정한 후 파일을 저장하고 종료합니다.

    1
    
    LANG=en_US.UTF-8
    
  3. 리부팅합니다.

gnome-terminal-en.png

이제 터미널에서 Powerline 폰트를 사용하면서도 깨짐 현상 없이 편안하게 작업할 수 있습니다. 물론 이 방법은 한글 환경에서 행의 높이를 줄이는 방법이므로 가독성이 조금 떨어질 수 있습니다. 하지만 터미널 환경에서는 대부분 알파벳을 읽기 때문에 크게 불편한 점을 느끼진 못 했습니다.