tmux 3.7 플로팅 페인 완전 정복 — 띄우는 법부터 한계까지

이번 포스팅에서는 tmux 3.7에서 새로 들어온 플로팅 페인(floating panes)을 정리하고자 한다. tmux는 20년 가까이 타일링 방식만 고수해 왔다. 화면을 위아래·좌우로 쪼개는 구조라, 잠깐 다른 명령을 확인하려고 페인을 하나 열면 기존 레이아웃이 통째로 밀리는 게 늘 불편했다. 2026년 6월 8일 나온 tmux 3.7은 이 오래된 제약을 처음으로 깼다. 여기서는 tmux 플로팅 페인을 띄우는 법부터 이동·리사이즈, 기존 display-popup 팝업과 뭐가 다른지, 3.7 시점의 한계, 그리고 설치·버전 확인까지 차례로 다룬다.

tmux 3.7, 뭐가 달라졌나

tmux 3.7의 헤드라인은 플로팅 페인이다. 기존 레이아웃 위에 떠 있는 비모달 페인으로, 타일처럼 화면을 쪼개지 않고 다른 페인 위에 겹쳐 놓을 수 있다. 2026년 6월 8일 정식 릴리스됐고, 최신 패치는 8월 17일의 3.7c다. Michael Grant가 대부분을 작성했으며, 아직 초기 단계라 기능이 제한적이다(tmux 3.7 릴리스).

플로팅 페인 외에도 실무에 바로 와닿는 변화가 여럿이다. copy 모드에 줄 번호 표시가 생겼고, 세션·윈도우 목록을 보는 choose-tree에서 x·X 키로 바로 죽일 수 있게 됐다. systemd 환경에서는 페인을 별도 cgroup으로 띄우는 것도 가능해졌다. 이번 글은 헤드라인인 플로팅 페인에 초점을 맞추되, 놓치기 아까운 나머지 변화도 뒤에서 표로 정리한다.

# 현재 버전 확인 — 3.7 이상이어야 플로팅 페인을 쓸 수 있다
tmux -V
# tmux 3.7c
ShellScript

위 명령으로 설치된 tmux 버전을 확인한다. 플로팅 페인은 3.7부터 들어왔으므로, 출력이 3.6 이하라면 먼저 업그레이드해야 한다. 버전 문자열 뒤의 a·b·c는 버그 픽스 패치를 뜻하고, 기능 자체는 3.7 계열에서 동일하다.

tmux 3.7 설치와 업그레이드

tmux 플로팅 페인을 쓰려면 먼저 3.7 이상으로 올려야 한다. macOS는 Homebrew로, 리눅스는 패키지 매니저 버전이 낡았을 때 소스로 빌드하는 것이 가장 확실하다. 배포판 저장소의 tmux는 3.6 이하에 머물러 있는 경우가 많아, 플로팅 페인이 안 보이면 십중팔구 버전 문제다.

# macOS — Homebrew
brew install tmux      # 신규 설치
brew upgrade tmux      # 기존 사용자 업그레이드

# 리눅스 — 소스 빌드 (배포판 패키지가 낡았을 때)
sudo apt install -y libevent-dev ncurses-dev build-essential bison
curl -LO https://github.com/tmux/tmux/releases/download/3.7/tmux-3.7.tar.gz
tar xzf tmux-3.7.tar.gz && cd tmux-3.7
./configure && make
sudo make install
ShellScript

Homebrew는 최신 안정 버전을 받으므로 brew upgrade tmux 한 줄이면 3.7c까지 올라간다. 리눅스에서 aptdnf가 오래된 버전만 준다면, 위처럼 릴리스 tarball을 받아 ./configure && make로 빌드한다. libeventncurses 개발 헤더가 빌드 전제 조건이라, 없으면 configure 단계에서 에러가 난다. 설치 후 tmux kill-server로 기존 서버를 종료해야 새 바이너리가 반영된다는 점도 놓치기 쉽다.

tmux 플로팅 페인을 띄우는 법

tmux 플로팅 페인은 prefix 뒤에 *를 눌러 띄운다. 기본 바인딩은 C-b *(Ctrl+b 다음 별표)이고, 내부적으로는 새로 추가된 new-pane 명령에 연결돼 있다. 실행하면 현재 레이아웃 위에 떠 있는 페인이 하나 생기는데, 타일 페인과 달리 기존 페인들을 밀어내지 않는다.

# 명령 프롬프트(C-b :)에서 직접 실행할 수도 있다
:new-pane

# 플로팅 페인에서 특정 명령을 바로 실행
:new-pane htop
ShellScript

C-b *가 가장 빠른 방법이고, 세밀하게 제어하고 싶으면 C-b :로 명령 프롬프트를 열어 new-pane을 직접 입력한다. new-pane 뒤에 명령을 붙이면 그 명령이 실행되는 플로팅 페인이 뜬다. 로그를 잠깐 tail로 보거나 htop을 띄워 두는 용도로 쓰기 좋다. 띄운 페인은 일반 페인과 똑같이 이스케이프 시퀀스를 처리하므로, vim이든 REPL이든 그 안에서 정상적으로 돌아간다.

빨간 표시가 플로팅 페인 화면에서 눈여겨볼 지점이다. 은 떠 있는 플로팅 페인 자체로, 밝은 테두리로 아래 타일과 구분된다. pane-border-status를 켰을 때 나타나는 컨트롤 바인데, 마우스로 닫기(✕)나 확대(⤢)를 누른다. 은 플로팅 페인에 가려지지 않은 아래 타일로, 팝업과 달리 레이아웃이 밀리거나 사라지지 않고 그대로 살아 있다. 는 tmux 상태 줄이며, 플로팅 페인을 띄워도 세션 구성 자체는 바뀌지 않는다.

크기와 위치를 정확히 잡고 싶으면 new-pane에 플래그를 붙인다. C-b : 명령 프롬프트에서 아래처럼 입력하면 마우스 없이도 원하는 자리에 원하는 크기로 띄울 수 있다.

# 46x10 칸 크기로, (열 34, 행 9) 위치에 top을 실행하는 플로팅 페인
:new-pane -x 46 -y 10 -X 34 -Y 9 top
ShellScript
tmux new-pane 명령의 크기·위치 플래그 주석 — -x -y로 크기, -X -Y로 위치, 뒤에 실행할 명령을 지정한다
tmux new-pane 명령의 크기·위치 플래그 주석 — -x -y로 크기, -X -Y로 위치, 뒤에 실행할 명령을 지정한다

명령을 뜯어보면 이렇다. new-pane은 플로팅 페인을 만드는 명령으로 C-b *와 같다. -x·-y는 페인 크기를 칸 단위로(가로 46 × 세로 10) 정하고, -X·-Y는 좌상단 위치를(열 34, 행 9) 지정한다. 맨 뒤의 top은 그 페인에서 실행할 명령이고, 생략하면 셸이 열린다. 이렇게 생성하는 순간에는 플래그로 크기·위치를 잡을 수 있지만, 일단 뜬 뒤에 옮기거나 크기를 바꾸는 건 3.7에서는 여전히 마우스로만 된다.

플로팅 페인 다루기 — 이동·리사이즈와 3.7의 한계

3.7 시점의 플로팅 페인은 마우스로만 이동·리사이즈할 수 있고, 키보드 단축키는 아직 없다. 페인 테두리를 드래그해 옮기고 모서리를 끌어 크기를 바꾼다. pane-border-statustop이나 bottom으로 켜 두면 페인 상단/하단에 닫기·확대 토글 같은 컨트롤이 표시된다. 초기 릴리스라 빠진 기능이 꽤 있다는 점을 감안하고 써야 한다.

가장 크게 걸리는 한계는 플로팅 페인과 타일 페인을 서로 바꾸지 못한다는 것이다. break-pane·join-pane·move-pane이 아직 플로팅 페인을 지원하지 않아, 떠 있는 페인을 레이아웃에 붙이거나 반대로 타일 페인을 띄우는 변환이 안 된다. swap-paneresize-pane(키보드)도 미지원이고, 커스텀 레이아웃·숨기기/보이기·SIXEL 이미지도 빠져 있다. 이 항목들은 floating_panes 브랜치에서 개발 중이며 3.8을 목표로 채워지고 있다(플로팅 페인 논의).

그래서 3.7의 플로팅 페인은 “마우스로 띄우고 옮기는 임시 오버레이”에 가깝다. 키보드 중심으로 페인을 촘촘히 제어하던 워크플로우를 통째로 대체하기에는 이르고, 잠깐 띄웠다 닫는 보조 창으로 쓰기에 적당하다.

플로팅 페인을 내 손에 맞게 — 키바인딩과 닫기

기본 C-b *가 손에 안 맞으면 .tmux.conf에서 원하는 키로 다시 묶을 수 있고, 페인 테두리에 컨트롤을 띄우거나 닫는 동작도 설정으로 다듬을 수 있다. 플로팅 페인도 속을 들여다보면 하나의 페인이라, 기존 tmux 설정 문법을 그대로 쓴다.

# ~/.tmux.conf

# C-b f 로 플로팅 페인 띄우기 (기본 C-b * 대체)
bind f new-pane

# 플로팅 페인 상단에 닫기·확대 컨트롤 표시
set -g pane-border-status top

# 마우스 조작(이동·리사이즈) 활성화 — 3.7 플로팅 페인엔 사실상 필수
set -g mouse on
ShellScript

bind f new-pane은 prefix 뒤 f에 플로팅 페인 띄우기를 새로 묶는다. pane-border-status top을 켜면 떠 있는 페인 위쪽에 닫기·확대 토글이 나타나 마우스로 바로 조작할 수 있다. mouse on은 3.7 플로팅 페인에서 사실상 필수인데, 이동과 리사이즈가 마우스로만 되기 때문이다. 설정을 바꾼 뒤에는 tmux source-file ~/.tmux.conf로 다시 읽어들이거나 실행 중인 세션에서 C-b :source-file ~/.tmux.conf를 입력하면 재접속 없이 반영된다. 세션·복사 모드 등 기본 키바인딩 전반은 tmux 명령어·단축키 치트시트에 정리해 두었으니 함께 참고하면 된다.

떠 있는 페인을 닫는 방법은 일반 페인과 같다. 페인 안에서 exit을 입력하거나 C-d를 누르면 셸이 종료되며 페인이 사라지고, 컨트롤 바의 닫기 버튼을 마우스로 눌러도 된다.

플로팅 페인은 언제 쓰나 — 실전 활용 3가지

플로팅 페인이 가장 빛나는 건 본 작업을 가리지 않고 잠깐 띄워 두는 보조 창 역할이다. 타일로 쪼개면 편집 중인 코드 영역이 좁아지지만, 플로팅 페인은 위에 겹쳐 뜨므로 필요할 때만 올렸다 내리면 된다. 실무에서 자주 쓰는 세 가지 패턴을 꼽으면 이렇다.

첫째는 로그 모니터링이다. 배포 중 kubectl logs -f나 애플리케이션 로그를 tail -f로 플로팅 페인에 띄워 두고, 아래 타일에서 코드를 고치며 로그가 실시간으로 흐르는 걸 곁눈질한다. 로그를 다 봤으면 페인만 닫으면 되고 편집 레이아웃은 흐트러지지 않는다.

둘째는 scratch 터미널이다. 긴 명령을 조립하거나 정규식을 시험할 때, 메인 셸을 어지럽히지 않고 플로팅 페인에서 먼저 던져 본다. 의도대로 도는 걸 확인한 뒤 본 셸로 옮기면 명령 히스토리도 깔끔하게 유지된다.

셋째는 참조 창이다. API 문서나 man 페이지, 사내 위키를 플로팅 페인에 띄워 두고 곁눈질하며 작업한다. 3페인을 상시 띄워 두는 Zellij 방식과 달리, tmux 플로팅 페인은 필요할 때만 잠깐 겹쳐 올렸다 내리는 감각에 가깝다. 세 패턴 모두 상시로 화면을 차지하지 않기 때문에, 편집 공간을 넓게 쓰면서도 보조 정보를 즉석에서 불러올 수 있다.

플로팅 페인 vs display-popup, 뭐가 다른가

tmux를 좀 써본 사람은 3.2부터 있던 display-popup을 떠올릴 텐데, 플로팅 페인은 그것과 결이 다르다. 핵심 차이는 모달 여부다. display-popup은 모달 오버레이라 팝업이 떠 있는 동안 세션의 다른 부분을 조작할 수 없고, 명령이 끝나면 사라진다. 반면 플로팅 페인은 비모달이라 떠 있는 상태에서도 아래 페인들과 자유롭게 오가며 작업할 수 있고, 세션에 계속 남는다.

구분플로팅 페인 (3.7)display-popup (3.2+)일반 타일 페인
성격비모달 오버레이모달 오버레이레이아웃 분할
다른 페인 조작가능 (떠 있는 채로)불가 (팝업 닫아야)가능
지속성세션에 남음명령 끝나면 사라짐세션에 남음
띄우기C-b * / new-panedisplay-popup -EC-b % / C-b "
이동·리사이즈마우스만 (3.7)옵션으로 위치 지정키보드·마우스

display-popup은 “명령 하나 실행하고 닫는 일회성 창”에, 플로팅 페인은 “띄워 두고 계속 참조하는 보조 페인”에 맞는다. 예를 들어 fzf로 파일을 고르는 순간적인 작업은 여전히 팝업이 낫고, 배포 로그를 옆에 띄워 두고 본 작업을 이어가는 상황은 플로팅 페인이 낫다. 둘은 대체 관계가 아니라 용도가 갈린다.

플로팅 페인 말고도 챙길 3.7 변화

플로팅 페인이 헤드라인이지만, tmux 3.7에는 매일 쓰는 조작을 편하게 만드는 변화가 함께 들어왔다. 특히 copy 모드 줄 번호와 choose-tree의 즉시 삭제는 알아 두면 바로 손에 붙는다. 아래는 3.7 CHANGES 문서에서 눈여겨볼 나머지 변화를 정리한 것이다.

변화내용
copy 모드 줄 번호copy-mode-line-numbers 옵션으로 off·absolute·relative·hybrid 표시
choose-tree 삭제세션/윈도우 목록(C-b s·C-b w)에서 x·X로 즉시 kill
focus-follows-mouse마우스를 올린 페인으로 포커스 자동 이동
systemd cgroup 페인페인을 별도 cgroup으로 띄워 리소스 격리
pane_unseen_changes모드 진입 중 아직 안 본 변경이 있는지 포맷으로 표시

copy-mode-line-numbershybrid로 두면 현재 줄은 절대 번호, 나머지는 상대 번호로 보여 vim의 relativenumber처럼 스크롤·이동이 편해진다. choose-tree의 x/X는 그동안 세션을 지우려고 kill-session을 타이핑하던 수고를 없앤다. focus-follows-mouse는 마우스만 올려도 해당 페인이 활성화되므로, 여러 페인을 오가며 붙여 넣는 작업에서 클릭 한 번을 아낀다.

자주 묻는 질문 (FAQ)

tmux 플로팅 페인은 어떤 버전부터 쓸 수 있나?

tmux 3.7부터다. 2026년 6월 8일 릴리스됐고 최신 패치는 3.7c(8월 17일)다. tmux -V로 확인해 3.6 이하면 brew upgrade tmux나 소스 빌드로 올려야 한다. 배포판 패키지가 낡아 3.6에 머물러 있는 경우가 많으니 버전부터 확인하는 게 먼저다.

플로팅 페인을 키보드로 옮길 수 있나?

3.7에서는 안 된다. 이동과 리사이즈 모두 마우스 드래그로만 가능하고, 키보드 단축키는 아직 구현되지 않았다. 키보드 제어는 floating_panes 브랜치에서 개발 중이라 3.8 이후에 들어올 가능성이 크다.

플로팅 페인과 display-popup은 뭐가 다른가?

display-popup은 모달이라 팝업이 떠 있으면 다른 페인을 못 만지고 명령이 끝나면 닫힌다. 플로팅 페인은 비모달이라 떠 있는 채로 아래 페인과 오갈 수 있고 세션에 계속 남는다. 일회성 명령은 팝업, 옆에 띄워 두고 참조하는 창은 플로팅 페인이 맞다.

떠 있는 플로팅 페인을 일반 페인으로 붙일 수 있나?

3.7에서는 불가능하다. break-pane·join-pane·move-pane이 아직 플로팅 페인을 지원하지 않아, 플로팅과 타일 사이의 변환이 안 된다. 이 기능도 3.8을 목표로 개발 중이다.

지금 3.7로 올릴 만한가?

플로팅 페인만 보고 급하게 올릴 필요는 없지만, copy 모드 줄 번호와 choose-tree 삭제 같은 소소한 개선이 함께 오므로 업그레이드 자체는 권할 만하다. 다만 플로팅 페인은 초기 기능이라, 이것 하나에 워크플로우를 맞추기보다 “생겼으니 필요할 때 쓰는” 정도로 접근하는 편이 현실적이다.

마치며

지금까지 tmux 3.7의 플로팅 페인을 정리해 보았다. 솔직히 처음 C-b *를 눌렀을 때는 “드디어” 싶었는데, 막상 키보드로 못 옮기는 걸 보고 살짝 김이 빠졌다. tmux를 쓰는 사람 대부분이 손을 마우스로 안 내리려고 tmux를 쓰는 건데, 정작 새 기능이 마우스 전용이라는 건 아이러니다. 그래도 배포 로그나 htop을 잠깐 띄워 두고 본 작업을 가리지 않게 겹쳐 놓는 용도로는 확실히 편하다. display-popup으로 매번 명령을 새로 띄우던 걸 페인 하나로 남겨 두게 된 것만으로도 값을 한다. 키보드 제어가 들어올 3.8이 진짜 분기점이 될 것 같은데, 그때까지는 “마우스로 띄우는 보조 창” 정도로 가볍게 써 보길 권한다.