tmux를 쓰세요? 이제 그럴 필요 없습니다.
WezTerm은 멀티플렉서가 내장된 GPU 가속 터미널 에뮬레이터다. Rust로 작성되었고, Linux, macOS, Windows에서 모두 작동한다.
WezTerm이 특별한 이유
대부분의 터미널은 “그냥 터미널”이다. 탭 정도는 있지만, 진짜 멀티플렉싱은 tmux나 screen에 의존해야 한다.
WezTerm은 다르다. 멀티플렉서가 내장되어 있다.
| 기능 | 다른 터미널 | WezTerm |
|---|---|---|
| 탭 | ✅ | ✅ |
| 페인 분할 | ❌ (tmux 필요) | ✅ 내장 |
| 세션 저장/복원 | ❌ (tmux 필요) | ✅ 내장 |
| 원격 멀티플렉싱 | ❌ | ✅ SSH/TLS |
| GPU 가속 | 일부만 | ✅ 기본 |
핵심 기능
1. GPU 가속 렌더링
- 부드러운 스크롤
- 리거처(Ligatures) 지원
- 컬러 이모지
- 트루 컬러
- 동적 컬러 스킴
2. 내장 멀티플렉서
tmux 없이도:
| 기능 | 단축키 |
|---|---|
| 탭 열기 | Super-T |
| 수평 분할 | Ctrl-Shift-Alt-% |
| 수직 분할 | Ctrl-Shift-Alt-” |
| 페인 이동 | Ctrl-Shift-화살표 |
| 탭 전환 | Super-Shift-[ / ] |
| 워크스페이스 | tmux 세션처럼 |
3. Lua 기반 설정
모든 것이 Lua로 설정 가능:
-- ~/.wezterm.lua
local wezterm = require 'wezterm'
return {
font = wezterm.font 'JetBrains Mono',
color_scheme = 'Tokyo Night',
enable_tab_bar = true,
hide_tab_bar_if_only_one_tab = false,
}
핫 리로드: 설정 변경 시 즉시 반영. 재시작 불필요.
4. SSH 클라이언트 통합
wezterm ssh user@host
원격에서도 로컬처럼 탭, 페인, 워크스페이스 사용 가능.
5. 이미지 프로토콜 지원
| 프로토콜 | 상태 |
|---|---|
| iTerm2 | ✅ |
| Kitty | ✅ |
| Sixel | ✅ (실험적) |
imgcat 명령어로 터미널에 이미지 표시.
6. 시리얼 포트 연결
임베디드/Arduino 작업용:
wezterm serial /dev/ttyUSB0
지원 플랫폼
| 플랫폼 | 지원 |
|---|---|
| Linux | ✅ |
| macOS | ✅ |
| Windows 10+ | ✅ |
| FreeBSD | ✅ |
| NetBSD | ✅ |
tmux에서 WezTerm으로 마이그레이션
| tmux | WezTerm |
|---|---|
| 세션 | 워크스페이스 |
| 윈도우 | 탭 |
| 페인 | 페인 |
prefix % | Ctrl-Shift-Alt-% |
prefix " | Ctrl-Shift-Alt-" |
.tmux.conf | .wezterm.lua |
설치
macOS
brew install --cask wezterm
Linux
# Ubuntu/Debian
curl -fsSL https://apt.fury.io/wez/gpg.key | sudo gpg --yes --dearmor -o /usr/share/keyrings/wezterm-fury.gpg
echo 'deb [signed-by=/usr/share/keyrings/wezterm-fury.gpg] https://apt.fury.io/wez/ * *' | sudo tee /etc/apt/sources.list.d/wezterm.list
sudo apt update
sudo apt install wezterm
Windows
winget install wez.wezterm
설정 예시
local wezterm = require 'wezterm'
local act = wezterm.action
return {
-- 폰트
font = wezterm.font 'Fira Code',
font_size = 14,
-- 색상
color_scheme = 'Catppuccin Mocha',
-- 탭 바
enable_tab_bar = true,
tab_bar_at_bottom = true,
-- 단축키
keys = {
{ key = 'd', mods = 'CMD', action = act.SplitHorizontal },
{ key = 'd', mods = 'CMD|SHIFT', action = act.SplitVertical },
},
}
다른 터미널과의 비교
| 터미널 | 언어 | GPU | 멀티플렉서 | 설정 |
|---|---|---|---|---|
| WezTerm | Rust | ✅ | ✅ 내장 | Lua |
| Alacritty | Rust | ✅ | ❌ | YAML |
| Kitty | Python/C | ✅ | ❌ | conf |
| iTerm2 | Obj-C | ❌ | ❌ | GUI |
| Ghostty | Zig | ✅ | ❌ | YAML |
의미
1. tmux 의존 종료
이제 터미널 + tmux 조합이 필요 없다. WezTerm 하나면 충분.
2. 일관된 경험
로컬이든 원격이든 같은 단축키, 같은 설정, 같은 동작.
3. Lua의 힘
정적인 설정 파일이 아니라, 프로그래밍 가능한 설정. 조건부 로직, 동적 색상, 커스텀 이벤트 모두 가능.
마치며: tmux 없는 삶
WezTerm은 “터미널 + tmux”를 하나로 합쳤다. 그 결과:
- 설정 파일 하나
- 의존성 없음
- 일관된 경험
- GPU 가속
tmux를 쓰고 있다면, WezTerm을 시도해 보라. tmux 없는 삶이 생각보다 꽤 괜찮다.
# 설치
brew install --cask wezterm
# 시작
wezterm
이제 터미널이 스스로 충분하다.
🔗 관련 정보
- 공식: wezterm.org
- GitHub: wez/wezterm
- 문서: wezterm.org/config/