Monday, June 30, 2025

tmux 상태표시줄, 나만의 스타일로 완성하기

터미널 작업을 자주 하는 개발자, 시스템 엔지니어에게 tmux는 선택이 아닌 필수 도구입니다. 여러 세션과 창, 패널을 효율적으로 관리하게 해주어 작업 능률을 극적으로 끌어올려 주죠. 하지만 매일 마주하는 tmux의 기본 화면, 특히 하단의 상태표시줄(Status Bar)이 조금은 밋밋하게 느껴지지 않으셨나요? 이 글에서는 tmux의 상태표시줄을 단순한 정보 표시줄을 넘어, 나만의 개성이 담긴 강력한 대시보드로 만드는 방법을 단계별로 상세히 알아보겠습니다.

단순히 색상을 바꾸는 것부터 시작해 시스템 정보, Git 브랜치, 현재 시간 등 원하는 모든 정보를 담아내는 과정 전체를 다룹니다. 이 가이드를 끝까지 따라오시면, 여러분의 터미널 환경은 이전과는 비교할 수 없을 정도로 다채롭고 유용해질 것입니다.

시작하기: .tmux.conf 파일 설정

tmux의 모든 커스터마이징은 홈 디렉터리에 위치한 .tmux.conf 설정 파일에서 시작됩니다. 만약 이 파일이 없다면 직접 생성해야 합니다.

# 홈 디렉터리로 이동
cd ~

# .tmux.conf 파일 생성 (없는 경우)
touch .tmux.conf

이제 텍스트 편집기로 이 파일을 열어 설정을 추가할 수 있습니다. 중요한 점은, .tmux.conf 파일을 수정한 후에는 변경 사항을 적용하기 위해 tmux를 재시작하거나, 이미 실행 중인 tmux 세션 내에서 설정을 다시 불러와야 한다는 것입니다.

설정을 다시 불러오는 가장 일반적인 방법은 tmux의 명령어 모드를 사용하는 것입니다. 기본적으로 Ctrl+b를 누른 후 :를 입력하면 명령어 프롬프트가 나타납니다. 여기에 다음 명령어를 입력하고 엔터를 누르세요.

source-file ~/.tmux.conf

매번 이 명령어를 입력하는 것이 번거롭다면, .tmux.conf 파일에 단축키를 지정해두는 것이 좋습니다. 예를 들어, Ctrl+b를 누른 후 r 키를 눌러 설정을 바로 리로드하게 만들 수 있습니다.

# .tmux.conf 파일에 다음 내용을 추가하세요.
# prefix(Ctrl+b) + r 키로 설정 리로드
bind r source-file ~/.tmux.conf \; display-message "Config reloaded."

이제 준비가 끝났습니다. 본격적으로 상태표시줄을 꾸며보겠습니다.

상태표시줄 기본 스타일링: 색상과 위치

가장 먼저 상태표시줄의 전체적인 분위기를 결정하는 배경색과 글자색을 바꿔보겠습니다. status-style 옵션을 사용합니다.

# .tmux.conf

# 상태표시줄의 기본 스타일 설정
# fg: 글자색(foreground), bg: 배경색(background)
set -g status-style "fg=white,bg=black"

사용 가능한 색상은 black, red, green, yellow, blue, magenta, cyan, white 등이 있습니다. 터미널이 256색을 지원한다면 colour0부터 colour255까지, 또는 #RRGGBB 형식의 Hex 코드도 사용할 수 있습니다.

상태표시줄의 위치를 기본값인 하단이 아닌 상단으로 옮기고 싶다면 status-position 옵션을 사용하세요.

# .tmux.conf

# 상태표시줄 위치를 상단으로 변경
set -g status-position top

이제 상태표시줄의 왼쪽(status-left)과 오른쪽(status-right)에 어떤 정보를 표시할지 정의해 보겠습니다.

상태표시줄 내용 채우기: status-leftstatus-right

tmux는 상태표시줄에 동적인 정보를 표시하기 위한 다양한 특수 문자열(포맷)을 제공합니다. 이 포맷들을 조합하여 status-leftstatus-right 옵션에 원하는 내용을 채울 수 있습니다.

주요 포맷 문자열

  • #S: 세션 이름
  • #I: 윈도우 인덱스
  • #W: 윈도우 이름
  • #F: 윈도우 플래그 (예: *는 현재 윈도우, -는 마지막 윈도우, Z는 줌 상태)
  • #P: 패널(pane) 인덱스
  • #H: 호스트 이름 (짧게)
  • #h: 호스트 이름 (전체)
  • %Y-%m-%d: 년-월-일
  • %H:%M:%S: 시:분:초
  • #(shell-command): 쉘 명령어의 실행 결과를 출력 (가장 강력한 기능!)

1. 왼쪽(status-left) 꾸미기: 세션과 윈도우 정보

왼쪽에는 주로 현재 작업 중인 세션과 윈도우 정보를 표시합니다. 가독성을 위해 각 정보 사이에 구분자를 넣어주는 것이 좋습니다.

# .tmux.conf

# 왼쪽 상태표시줄 길이 설정
set -g status-left-length 40

# [세션이름] | 윈도우이름 형식으로 표시
set -g status-left "[#S] | #W"

여기에 색상을 입혀 좀 더 보기 좋게 만들 수 있습니다. #[fg=색상,bg=색상] 구문을 사용합니다.

# .tmux.conf

# 세션 이름은 노란색 배경에 검은 글씨로 강조
set -g status-left "#[fg=black,bg=yellow] #S #[fg=white,bg=black] | #W"

2. 오른쪽(status-right) 꾸미기: 시스템 정보와 시간

오른쪽에는 자주 확인하는 시스템 정보나 현재 시간을 넣는 것이 일반적입니다. #(shell-command)를 활용하면 거의 모든 정보를 표시할 수 있습니다.

예를 들어, 현재 날짜와 시간을 표시해 보겠습니다.

# .tmux.conf

# 오른쪽 상태표시줄 길이 설정
set -g status-right-length 60

# "네트워크 | 날짜 | 시간" 형식으로 표시
# #(ifconfig en0 | grep 'inet ' | awk '{print $2}') 부분은 사용자의 환경에 맞게 수정해야 합니다. (예: Linux에서는 ip addr)
set -g status-right "#(ifconfig en0 | grep 'inet ' | awk '{print $2}') | %Y-%m-%d | %H:%M"

macOS 사용자를 위한 CPU 사용량 및 배터리 표시 예제:

# .tmux.conf

# CPU 사용량 (macOS)
set -g status-right "CPU: #(top -l 1 | grep -E \"^CPU\" | cut -d' ' -f3) | %Y-%m-%d %H:%M"

# 배터리 잔량 (macOS)
set -g status-right "BAT: #(pmset -g batt | grep -o '[0-9]*%' | tr -d '%')% | %Y-%m-%d %H:%M"

Linux 사용자를 위한 CPU 사용량 및 배터리 표시 예제:

# .tmux.conf

# CPU 사용량 (Linux)
set -g status-right "CPU: #(grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage \"%\"}') | %Y-%m-%d %H:%M"

# 배터리 잔량 (Linux, 경로 확인 필요)
set -g status-right "BAT: #(cat /sys/class/power_supply/BAT0/capacity)% | %Y-%m-%d %H:%M"

이처럼 쉘 스크립트를 활용하면 Git 브랜치 이름, 현재 재생 중인 음악 정보 등 상상할 수 있는 모든 것을 상태표시줄에 담을 수 있습니다.

가운데 정렬: 윈도우 목록 스타일링

상태표시줄의 가운데 부분은 기본적으로 윈도우 목록을 표시합니다. 이 부분의 스타일도 변경할 수 있습니다.

# .tmux.conf

# 가운데 정렬 설정
set -g status-justify centre

# 현재 윈도우의 스타일
setw -g window-status-current-style "fg=black,bg=green,bold"
# 현재 윈도우의 포맷 (인덱스와 이름을 함께 표시)
setw -g window-status-current-format " #I:#W#F "

# 다른 윈도우의 스타일
setw -g window-status-style "fg=gray,bg=default"
# 다른 윈도우의 포맷
setw -g window-status-format " #I:#W#F "

#F 포맷은 윈도우의 상태(현재, 마지막, 줌 등)를 나타내는 플래그를 표시해주어 유용합니다.

고급 기술: Powerline 스타일과 플러그인 활용

직접 모든 것을 설정하는 것이 강력하지만, 때로는 더 쉽고 미려한 결과물을 원할 수 있습니다. 이때 플러그인이나 Powerline 스타일을 적용하는 것이 좋은 대안이 됩니다.

1. Powerline 스타일 직접 만들기

Powerline은 특수 문자를 사용하여 각 정보 조각을 화살표 모양으로 연결하는 시각적 스타일입니다. 이를 구현하려면 Powerline용으로 패치된 폰트를 터미널에 먼저 설치하고 설정해야 합니다.

폰트 설치 후, .tmux.conf에서 특수 문자(,  등)를 사용하여 스타일을 만들 수 있습니다.

# .tmux.conf (Powerline 스타일 예제)

# 필요한 특수 문자
# U+E0B0 (), U+E0B2 ()
set -g status-left-length 30
set -g status-right-length 150

# 왼쪽: 세션 정보
set -g status-left "#[fg=black,bg=green] #S #[fg=green,bg=blue,nobold]"

# 가운데: 윈도우 목록
set -g status-justify left
setw -g window-status-current-format "#[fg=black,bg=yellow] #I:#W #[fg=yellow,bg=blue]"
setw -g window-status-format "#[fg=white,bg=blue] #I:#W #[fg=blue,bg=blue]"

# 오른쪽: 시스템 정보
set -g status-right "#[fg=white,bg=blue]#[fg=black,bg=blue] #(echo 'some info') #[fg=blue,bg=cyan]#[fg=black,bg=cyan] %Y-%m-%d %H:%M "

위 코드는 Powerline 효과를 흉내 낸 간단한 예시입니다. 각 색상과 정보 조각을 (오른쪽 화살표)와 (왼쪽 화살표) 문자로 연결하여 시각적인 분리 효과를 줍니다.

2. 플러그인 매니저 TPM(Tmux Plugin Manager) 사용하기

가장 편리한 방법은 TPM을 사용하는 것입니다. TPM은 tmux 플러그인을 쉽게 설치하고 관리하게 해주는 도구입니다.

TPM 설치:

# git을 사용하여 TPM 저장소를 클론합니다.
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

.tmux.conf에 TPM 설정 추가:

파일의 맨 아래에 다음 내용을 추가해야 합니다.

# .tmux.conf

# 사용할 플러그인 목록
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible' # 기본적인 tmux 설정을 잡아주는 플러그인
set -g @plugin 'dracula/tmux' # Dracula 테마 (상태표시줄 포함)
# set -g @plugin 'catppuccin/tmux' # Catppuccin 테마
# set -g @plugin 'tmux-plugins/tmux-cpu' # CPU 정보 플러그인

# Dracula 테마 설정 (옵션)
set -g @dracula-plugins "cpu-usage ram-usage"
set -g @dracula-show-powerline true

# TPM 실행 (반드시 파일 맨 끝에 위치해야 함)
run '~/.tmux/plugins/tpm/tpm'

설정 파일을 저장한 후, tmux를 실행하고 prefix(Ctrl+b) + I (대문자 i)를 눌러 플러그인을 설치합니다. 이제 Dracula 테마가 적용된 멋진 상태표시줄을 바로 확인할 수 있습니다. 다른 테마나 기능 플러그인을 사용하고 싶다면, 위 목록에 추가하고 prefix + I로 설치하면 됩니다.

마치며

지금까지 tmux 상태표시줄을 개인의 취향과 필요에 맞게 꾸미는 다양한 방법을 살펴보았습니다. 간단한 색상 변경부터 시작해, 쉘 스크립트를 이용한 동적 정보 표시, 그리고 TPM 플러그인을 활용한 손쉬운 테마 적용까지, 선택지는 무궁무진합니다.

오늘 배운 내용을 바탕으로 여러분만의 .tmux.conf 파일을 만들어보세요. 잘 꾸며진 상태표시줄은 단순히 보기 좋은 것을 넘어, 터미널 작업의 효율성과 즐거움을 한 단계 끌어올려 주는 훌륭한 파트너가 될 것입니다.


0 개의 댓글:

Post a Comment