tmux 마우스 복사 설정
음 원래 linux mate terminal에서는 select로 복사가 되었는데 tmux 안에서는 그게 안되네
맞습니다. 기본적으로 MATE Terminal에서는 마우스로 텍스트를 선택(select)하면 자동으로 클립보드(정확히는 primary
selection)에 복사됩니다. 하지만 tmux 안에서는 이 기능이 제대로 작동하지 않는 경우가 많습니다. 이유와 해결책을 차례대로
설명드리겠습니다.
✅ 원인
tmux는 자체적으로 터미널 입출력을 가로채고 리렌더링하기 때문에, 마우스로 텍스트를 선택할 때 예상한 대로 복사되지 않는 경우가
있습니다. 특히 마우스 모드가 활성화되어 있으면 텍스트 선택이 tmux의 내부 명령으로 처리되어 기본 터미널 동작과 충돌합니다.
🔧 해결 방법
1. tmux에서 마우스 모드를 끄기
~/.tmux.conf에 다음을 비활성화 하십시오:
# set -g mouse on
또는 실행 중인 세션에서 일시적으로 비활성화하려면:
tmux set -g mouse off
이렇게 하면 터미널이 tmux 내부에서도 마우스를 직접 처리할 수 있어서 텍스트 선택 및 복사가 정상 작동합니다.
단점: tmux에서 마우스로 패널 리사이징이나 스크롤 등은 사용할 수 없게 됩니다.
2. 터미널의 마우스 복사 기능을 tmux에 연동
tmux의 copy-mode를 활용하여 복사하려면 다음 단계를 따르십시오:
-
tmux안에서Ctrl + b누르고[ -
방향키나 마우스로 텍스트 선택
-
선택 후
Enter누르면 복사됨 -
붙여넣기는
Ctrl + b누르고]
이 방식은
tmux자체의 버퍼에 복사되며 시스템 클립보드와는 별개입니다.
3. tmux와 시스템 클립보드 연동 (선택 사항)
만약 xclip이나 xsel 같은 도구를 설치해 두셨다면 tmux 복사를 시스템 클립보드에 직접 보내도록 설정할 수도 있습니다.
예시:
# ~/.tmux.conf
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -sel clip -i"
🔍 결론
-
단순히 마우스로 복사하려면
tmux mouse off가 필요합니다. -
마우스 모드가 꼭 필요하면 tmux copy-mode + 클립보드 연동 을 설정하십시오.
-
tmux는 기본 터미널과 입력 체계가 다르기 때문에, 복사/붙여넣기 방식도 달라지는 것이 자연스럽습니다.
필요하시면 .tmux.conf 설정 파일 예시도 드릴 수 있습니다.
off 를 하니 마우스 휠로 이전을 볼 수가 없네
맞습니다. tmux set -g mouse off를 하면 마우스 휠이 기본 터미널에 전달되어 버려서, tmux의 스크롤 기능
(copy-mode 기반 스크롤)이 작동하지 않게 됩니다.
즉:
-
mouse on→tmux안에서 마우스 휠 스크롤 가능 (하지만 마우스 복사 안 됨) -
mouse off→ 마우스로 복사 가능 (하지만tmux스크롤 안 됨)
이건 근본적으로 tmux가 마우스 입력을 탈취 하느냐 안 하느냐의 문제입니다. 둘 다 완벽하게 만족시키려면 우회가 필요합니다.
🛠 가능한 해결 방법: 마우스는 on 유지하면서 복사도 되게 하기
1. MATE Terminal의 “마우스 드래그 복사”를 포기하고tmux copy-mode + 클립보드 연동 사용
가장 깔끔한 방식입니다. 아래처럼 설정하면 tmux 안에서 vi copy-mode로 복사한 내용이 시스템 클립보드로 바로 복사
됩니다.
# ~/.tmux.conf
set -g mouse on
bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel "xclip -sel clip -i"
사용 방법:
-
Ctrl + b누르고[ -
방향키나 마우스로 텍스트 선택
-
y누르면 시스템 클립보드에 복사됨
이렇게 하면 mouse on 유지하면서도 복사가 가능합니다.
xclip이 없다면xsel로 바꾸면 됩니다:"xsel --clipboard --input"
2. 마우스로 텍스트 선택할 때는tmux 빠져나와서 복사
즉, 복사할 때만 tmux를 빠져나와서 복사하고, 다시 돌아옵니다. 불편하지만 그냥 tmux 쓰면서 가끔 복사하는 정도면 감수할 수
있는 방법입니다.
3. 터미널에서 “override mouse handling” 기능 지원하는 경우 (매우 일부 터미널만)
일부 고급 터미널(MobaXterm, iTerm2, etc)은 tmux가 마우스를 장악하고 있어도 강제로 텍스트 선택하게 해주는 기능이
있습니다. MATE Terminal에는 없습니다.
🔚 결론
-
마우스 스크롤과 복사를 동시에 편하게 하고 싶다면:
mouse on유지하고,tmux copy-mode+xclip설정하는 것이 가장 합리적입니다.
-
단순히 마우스로 드래그해서 복사하려면
mouse off밖에 답이 없지만, 이 경우 스크롤은 안 됩니다.
선택지가 불편한 건 사실입니다. tmux 구조상 어쩔 수 없는 트레이드오프입니다.
필요하시면 ~/.tmux.conf 전체 예제도 드리겠습니다.
Ctrl + b [ 모드 끄는 법
Ctrl + b [는 tmux의 copy-mode 진입 명령입니다. 이 모드는 기본적으로 스크롤 및 텍스트 선택을 위한
모드이며, 수동으로 빠져나와야 합니다.
✅ copy-mode에서 나오는 방법
아래 중 하나를 누르시면 됩니다:
| 키 | 설명 |
|---|---|
q |
그냥 나가기 (선택 취소) |
Esc |
동일하게 copy-mode 종료 |
Enter |
선택 완료 + 복사 (단, copy-pipe가 설정되지 않으면 tmux buffer에만 저장됨) |
즉, 상황별로 정리하면:
-
그냥 나오고 싶다 →
q또는Esc -
선택 완료하고 복사도 하고 싶다 →
Enter
(단, 시스템 클립보드에 붙이려면xclip연동 필요)
🧠 참고: copy-mode 안에 있다는 표시
copy-mode에 들어가면 커서가 생기고 방향키로 움직일 수 있습니다. 이 상태는 일반 명령 입력 상태가 아니기 때문에, Ctrl +
b 단축키도 일시적으로 동작하지 않습니다. 먼저 copy-mode에서 빠져나와야 정상 작동합니다.
필요하시면 copy-mode를 vim처럼 커스터마이징하거나, 자동으로 특정 키 누르면 copy-mode 진입/복사/종료까지 한 번에 처리하는 스크립트도 도와드릴 수 있습니다.
복사를 한 걸 붙여넣고 싶으면?
tmux 안에서 복사한 내용을 붙여넣는 방식은 어떻게 복사했느냐 에 따라 달라집니다. 세 가지 상황으로 나눠서 설명드리겠습니다.
✅ 1. copy-mode로 복사만 한 경우 (Ctrl + b [, 선택, Enter)
이 경우 복사된 내용은 tmux 내부 buffer 에만 들어갑니다.
🔹 붙여넣기 방법:
Ctrl + b ]
즉, ]는 tmux 내부 buffer에서 붙여넣기입니다.
하지만 이건 시스템 클립보드와는 전혀 관련이 없습니다.
✅ 2. copy-pipe를 통해 시스템 클립보드에 복사한 경우
예: tmux.conf에 이런 설정이 있는 경우:
bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel "xclip -sel clip -i"
이렇게 하면 y를 눌러 복사한 내용이 시스템 클립보드 로 들어갑니다.
🔹 붙여넣기 방법:
-
Ctrl + Shift + V(MATE Terminal에서 시스템 클립보드 붙여넣기) -
또는
마우스 오른쪽 클릭 → Paste
이건 tmux가 아니라 터미널이 처리합니다.
✅ 3. 마우스로 드래그해서 복사한 경우
이건 tmux와 상관없이 터미널이 클립보드에 복사한 것이므로,
🔹 붙여넣기 방법:
-
동일하게
Ctrl + Shift + V -
마우스 우클릭 → Paste
🔒 요약
| 복사 방법 | 붙여넣기 방법 | 설명 |
|---|---|---|
tmux copy-mode + Enter |
Ctrl + b ] |
tmux 내부 버퍼에서 붙여넣음 |
| copy-pipe로 시스템 클립보드에 복사 | Ctrl + Shift + V |
터미널 붙여넣기 |
| 마우스로 복사 | Ctrl + Shift + V |
일반 복사/붙여넣기 |
필요하시면 copy-pipe 설정 전체 예시도 드릴 수 있습니다. xclip, xsel, wl-copy 등 어떤 환경인지
알려주시면 더 구체적으로 도와드릴 수 있습니다.
tmux mouse mode on/off 하면서 쓰는건 어때
좋은 질문입니다.
결론부터 말하면 "mouse mode on/off를 상황에 따라 수동으로 토글하며 사용하는 건 가능하지만 불편하고 비효율적입니다."
왜 그런지 단계적으로 설명드리겠습니다.
✅ 장점: 명확함
-
mouse on: 스크롤, 패널 리사이즈, 클릭으로 창 전환 등tmux기능에 최적화 -
mouse off: 마우스 드래그 복사 가능, 텍스트 편하게 선택
필요할 때만 mouse 모드를 껐다 켜는 건 명시적인 컨트롤 이라는 면에서 장점이 있습니다.
즉, 당신이 정확히 무엇을 원하는지 알고 있고, 그 순간에 따라 tmux 동작을 바꿀 수 있다는 뜻입니다.
❌ 단점: 번거롭고 흐름 끊김
-
tmux set -g mouse on/off를 매번 치는 건 너무 번거로움 -
tmux.conf수정 → 재적용하려면tmux source-file ~/.tmux.conf까지 필요 -
복사하려고 모드 끄고, 끝나면 다시 켜고… 이 흐름이 반복되면 집중력 깨짐
🛠 대안: 토글 단축키 만들기
그래도 이 방식을 쓰고 싶다면 단축키로 mouse 모드 토글 하는 방법이 있습니다:
# ~/.tmux.conf에 추가
bind m run-shell 'tmux show -g mouse | grep -q on && tmux set -g mouse off || tmux set -g mouse on'
이렇게 하면 Ctrl + b m을 누를 때마다 mouse 모드가 on/off 전환됩니다.
(원한다면 m 대신 다른 키로 바꿔도 됩니다)
🧠 추천 전략
당신이 복사/스크롤을 자주 번갈아 사용 한다면, 다음 중 하나가 현실적인 선택입니다:
📌 옵션 1: mouse on 유지 + copy-mode + copy-pipe 연동
→ 복사도 되고 스크롤도 되는 현실적 절충안
→ 마우스 드래그는 포기, 대신 Ctrl + b [ + y로 복사
📌 옵션 2: 마우스 드래그 복사가 중요하면
→ mouse off로 상시 유지하고, Ctrl + b 기반 기능은 최소화
→ 하지만 이건 tmux의 장점을 많이 포기하는 것
📌 옵션 3: 위에 설정한 Ctrl + b m 으로 토글
→ 선택적이고 통제 가능한 절충안, 귀찮지만 통제 가능
🔚 결론
“tmux mouse 모드를 상황에 따라 껐다 켰다 하는 전략”은 기능적으로는 가능하지만, 불편함이 큽니다.
이 전략을 쓸 거라면 단축키 토글 설정은 필수 입니다.
개인적으로는 mouse on + copy-pipe 전략을 추천드립니다. 이게 가장 일관되고 반복 없이 사용할 수 있는 방식입니다.
필요하시면 .tmux.conf 예제 전체 드릴게요.
근데 copy 모드에서 특정 부분만 copy 하는 법 뭐야?
좋은 질문입니다. tmux copy-mode에서는 단순히 마우스로 드래그하는 방식이 아니라, 키보드나 마우스로 시작과 끝을 정확히
선택해서 복사 하는 식입니다.
아래는 특정 부분만 정확하게 복사하는 방법 에 대한 구체적인 설명입니다.
✅ 기본 전제
tmux설정에서vi mode가 켜져 있다고 가정합니다:
setw -g mode-keys vi
이걸 켜면 Vim 스타일로 텍스트 선택이 가능합니다. (기본적으로 많은 사용자 설정에 포함됨)
✅ 특정 부분 복사: 키보드 사용 (vim 스타일)
- copy-mode 진입
nginx Ctrl + b [ -
커서 이동
-
방향키, 또는
h,j,k,l로 이동 -
w,b등 Vim처럼 단어 단위 이동 가능
-
- 선택 시작
mathematica Space
→ 이걸 누르면 선택 시작 위치가 설정됨 (시각적 표시 없음)
-
선택 범위 이동
- 원하는 끝 지점까지 커서를 이동시킴
-
복사 실행
mathematica Enter
→ 복사 완료됨 (내부 tmux buffer 또는 copy-pipe 설정된 클립보드로)
✅ 마우스로 특정 부분만 복사 (mouse on인 경우)
mouse on이면 마우스로도 selection이 가능하지만 선택 방식은 직사각형(blockwise)입니다.
즉, 마우스로 선택하면 Vim에서 Ctrl-v로 blockwise 선택한 것처럼 됩니다.
이건 코드나 로그처럼 열 정렬된 텍스트 에선 유용하지만, 자유로운 줄/문장 선택에는 불편합니다.
✅ 줄 전체 말고 "특정 단어 또는 문장만" 복사하려면?
Vim 스타일로 텍스트 범위를 미세 조정 해야 합니다:
예:
# 이동해서 커서를 단어 앞에 두고
Space # 선택 시작
w w w... # 단어 단위로 커서 이동
Enter # 복사
필요하면 v로 시각 모드 진입하는 방법도 tmux에서 구현할 수 있지만, 기본은 위 방식입니다.
✅ 참고: 선택한 걸 시스템 클립보드로 보내려면?
복사 이후 tmux.conf에 아래처럼 설정된 경우에만 xclip을 통해 시스템 클립보드로 복사됩니다:
bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel "xclip -sel clip -i"
→ 이 경우 마지막 복사 키는 Enter가 아니라 y입니다.
🔚 정리
| 동작 | 키 |
|---|---|
| copy-mode 진입 | Ctrl + b [ |
| 커서 이동 | 화살표, 또는 h/j/k/l |
| 선택 시작 | Space |
| 선택 종료 + 복사 | Enter 또는 y (copy-pipe 있을 때) |
| copy-mode 종료 | q, Esc |
필요하시면 "단어 단위로만 선택", "blockwise 비활성화", "시각적 표시 추가" 같은 고급 커스터마이징도 알려드릴 수 있습니다.
아 마우스 모드 켜고 드래그해서 highlighting된 상태로 enter를 치니 tmux clip buffer에 복사되는 듯
맞습니다. 정확히 보셨습니다.
요약하자면 tmux에서 mouse mode가on 상태일 때, 마우스로 드래그해서 텍스트 하이라이트한 후 Enter를 누르면, 그
선택 영역이 tmux의 copy-mode buffer로 복사됩니다.
🔍 왜 그런가?
mouse mode가 on이면 마우스 드래그 자체가 터미널 수준이 아니라 tmux의 copy-mode 동작으로 처리됩니다.
즉, tmux가 하이라이팅된 영역을 내부적으로 감지하고 복사 가능한 상태로 만든 것입니다.
-
마우스로 드래그 → 내부적으로 copy-mode 진입 + blockwise selection 발생
-
하이라이팅 상태에서
Enter누르면 → 복사 완료됨 (tmuxbuffer에 저장) -
이후
Ctrl + b ]로 붙여넣기 가능
🧠 참고: 이것도 blockwise임
단, 이 방식은 linewise가 아닌 blockwise (직사각형 형태) 복사입니다.
예시:
[INFO] Something happened
[WARN] Something else
위 두 줄에서 중간 단어만 마우스로 선택하면:
pgsql
INFO]
WARN]
이렇게 잘릴 수 있습니다. 일반적인 줄 선택이 아님 에 주의하십시오.
✅ 팁: copy-pipe 연동 시에도 동작함
만약 tmux.conf에 아래처럼 copy-pipe 설정이 되어 있다면:
bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel "xclip -sel clip -i"
이 경우 마우스로 드래그 후 y를 누르면, 선택 영역이 시스템 클립보드로 복사됩니다.
🔚 결론
-
mouse mode
on일 때 마우스 드래그 +Enter=tmuxinternal copy -
Ctrl + b ]로 붙여넣기 가능 -
blockwise 선택이라 예쁘게 잘리진 않을 수 있음
-
copy-pipe연동하면y로 시스템 클립보드 복사도 가능
궁금한 점 더 있으시면 copy-pipe 설정 예시나 mouse selection 모양 바꾸는 것도 도와드릴 수 있습니다.
마우스 휠 클릭했을 때 tmux에 붙여넣기가 되게 할 순 없어?
핵심부터 말하자면:
마우스 휠 클릭 (middle click)으로
tmux안에 붙여넣기 하려면, 복사한 내용이 “X11의 primary selection”에 들어 있어야 하고,tmuxmouse mode가 꺼져 있어야 정상 동작합니다.
근데 상황에 따라 다르게 작동할 수 있어서, 그 조건과 제한 사항 을 정리해드리겠습니다.
✅ 전제: 마우스 중간 버튼은 "primary selection" 붙여넣기
Linux에서는 마우스 중간 클릭은 일반적으로 X11의 primary selection 을 붙여넣는 동작입니다.
이건 Ctrl+C로 복사한 게 아니라, 마우스로 드래그만 한 텍스트가 들어가는 버퍼입니다.
→ xclip -selection primary -o로 확인 가능
✅ tmux가 이걸 받으려면 필요한 조건
1. tmux mouse mode 꺼짐
tmux set -g mouse off
-
그래야 터미널이 직접 마우스 클릭 이벤트를 처리하고, 중간 클릭도 원래대로 작동 함
-
mouse on이면tmux가 클릭 이벤트를 가로채서 붙여넣기가 안 됨
2. 터미널이 붙여넣기를 지원해야 함
-
MATE Terminal 같은 대부분의 리눅스 터미널에서는 중간 클릭 붙여넣기를 지원함
-
Wayland 환경에서는 clipboard와 primary selection 동작이 미묘하게 다를 수 있음
3. 붙여넣을 위치가 쉘 prompt여야 함
-
vim,less같은 풀스크린 애플리케이션 안에서는 중간 클릭으로 붙여넣기 안 됨 -
셸에서 입력 대기 상태일 때만 가능
❌ mouse on 상태에서는 왜 안 되나?
tmux set -g mouse on 상태에선 모든 마우스 이벤트(클릭, 휠, 드래그 등)를 tmux가 직접 처리합니다.
따라서 중간 버튼 클릭 이벤트가 원래 의도대로 터미널로 전달되지 않음.
즉, middle click은 그냥 무시되거나 이상하게 작동합니다.
🛠 대안: 마우스 모드 켜진 상태에서도 붙여넣기 하고 싶다면?
중간 클릭 말고:
-
Ctrl + Shift + V(터미널에서 클립보드 붙여넣기) -
tmux자체 붙여넣기 (Ctrl + b ]) -
또는
xclip -o를 tmux에서 실행해서 수동 붙여넣기
🔚 결론
| 조건 | 중간 클릭 붙여넣기 가능 여부 |
|---|---|
mouse off, 쉘 prompt |
✅ 됨 |
mouse on 상태 |
❌ 안 됨 |
vim, less 등 풀스크린 앱 |
❌ 안 됨 |
| Wayland + 일부 터미널 조합 | ❌ 불안정 가능 |
그래서 현실적인 전략은:
-
마우스 복사/붙여넣기 위주라면
mouse off유지 -
tmux기능 위주면mouse on+copy-pipe기반 키보드 복사/붙여넣기
궁금하신 환경이 X11인지 Wayland인지, 또는 MATE Terminal 외의 것인지 알려주시면 좀 더 구체적인 대안도 드릴 수 있습니다.
그러면 clipboard의 것을 tmux에 붙여넣을 방법은 없어?
좋은 질문입니다.
결론부터 말하면:"시스템 클립보드의 내용을 tmux 안으로 붙여넣는 방법은 있다."
하지만 직접적으로tmux가 클립보드를 읽어오는 기능은 없다는 걸 전제로 해야 합니다.
✅ 방법 1: 터미널 붙여넣기 (가장 직관적)
▶ Ctrl + Shift + V (MATE Terminal 기준)
-
클립보드에 있는 내용이
tmux세션 안으로 바로 입력됩니다 -
단,
tmux가 mouse mode를 잡고 있어도 이건 됩니다 -
단점 : 풀스크린 앱 (ex.
vim,less) 안에서는 안 됨
✅ 방법 2: 마우스 중간 클릭 (앞서 말한 primary selection)
-
마우스로 드래그한 텍스트는 primary selection 으로 들어감
-
이건
mouse off상태에서만middle click으로 붙여넣기 가능 -
클립보드(Ctrl+C)와는 별개라 헷갈릴 수 있음
✅ 방법 3: 명시적으로 xclip or xsel을 써서 붙여넣기
예시 (bash prompt에서):
xclip -sel clip -o | tmux load-buffer -
tmux paste-buffer
또는 한 줄로:
tmux set-buffer "$(xclip -sel clip -o)" \; paste-buffer
이렇게 하면 시스템 클립보드 → tmux buffer → 붙여넣기 로 연결됩니다.
▶ 만약 wl-copy / wl-paste (Wayland) 환경이라면:
tmux set-buffer "$(wl-paste)" \; paste-buffer
✅ 방법 4: .tmux.conf에 붙여넣기 단축키 정의 (선택 사항)
tmux
bind-key P run-shell "tmux set-buffer \"\$(xclip -sel clip -o)\" \; paste-buffer"
→ 이제 Ctrl + b P 누르면 시스템 클립보드가 붙여넣어짐
⚠️ 한계 및 주의점
-
xclip,xsel,wl-paste같은 도구가 로컬에서 실행 가능한 환경 이어야 함- SSH 환경에서는 서버에 클립보드 없음 → 안 됨
-
터미널의 붙여넣기는 단순하게 shell에 입력하는 방식
-
vim등 프로그램 안에서는 동작이 다름
🔚 결론
| 방법 | 설명 | 장점 | 단점 |
|---|---|---|---|
| Ctrl+Shift+V | 터미널 자체 붙여넣기 | 간단함 | 풀스크린 앱에선 제한 |
| middle click | primary selection 붙여넣기 | 빠름 | mouse off 필요 |
tmux set-buffer + paste-buffer |
명령어로 붙여넣기 | 확실함 | 도구 필요 |
| tmux 단축키 바인딩 | 자동화 가능 | 편리 | 설정 필요 |
필요하시면 SSH 원격 환경에서의 클립보드 붙여넣기 같은 특수 상황도 안내해 드릴 수 있습니다.
현재 사용 중인 환경 (X11 vs Wayland, 로컬 vs SSH 등) 알려주시면 더 구체적으로 도와드리겠습니다.