macOS에서 tmux와 시스템 클립보드 통합 설정하기

macOS tmux 클립보드 문제 해결

macOS 환경에서 tmux를 사용할 때 시스템 클립보드 접근에 문제가 발생하는 경우가 많습니다. 이는 tmux 프로세스가 기본적으로 root 부트스트랩 네임스페이스에서 실행되는 반면, macOS 클립보드 서비스는 사용자 네임스페이스에서만 접근 가능하기 때문입니다. reattach-to-user-namespace 도구를 사용하면 이 문제를 해결할 수 있습니다.

필수 도구 설치

설치를 시작하기 전에 다음 도구들이 시스템에 설치되어 있는지 확인하세요:

  • Xcode 명령줄 도구
  • Git
  • tmux

Xcode 명령줄 도구가 설치되지 않은 경우 다음 명령으로 설치할 수 있습니다:

xcode-select --install

소스 코드 컴파일 설치

1. 저장소 클론

git clone https://gitcode.com/gh_mirrors/tm/tmux-MacOSX-pasteboard
cd tmux-MacOSX-pasteboard

2. 소스 코드 빌드

make reattach-to-user-namespace

3. 실행 파일 설치

mkdir -p ~/local/bin
cp reattach-to-user-namespace ~/local/bin
echo 'export PATH="$HOME/local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

패키지 관리자를 통한 설치

Homebrew 사용자의 경우:

brew install reattach-to-user-namespace

MacPorts 사용자의 경우:

sudo port install tmux-pasteboard

tmux 설정

기본 설정

~/.tmux.conf 파일에 다음 내용을 추가합니다:

set -g default-shell-command "reattach-to-user-namespace -l $SHELL"

플랫폼별 조건부 설정

if-shell '[ "$(uname)" = "Darwin" ]' \
    "set -g default-shell-command 'reattach-to-user-namespace -l $SHELL'"

명령어별 세부 설정

# tmux 버퍼를 시스템 클립보드로 복사
bind C-y run "tmux save-buffer - | reattach-to-user-namespace pbcopy"

# 시스템 클립보드 내용을 tmux에 붙여넣기
bind C-p run "reattach-to-user-namespace pbpaste | tmux load-buffer - ; paste-buffer"

설정 적용

tmux kill-server
tmux

설치 확인

echo "클립보드 테스트" | reattach-to-user-namespace pbcopy
reattach-to-user-namespace pbpaste

문제 해결

"command not found" 오류: 실행 파일 경로가 PATH에 포함되어 있는지 확인하세요.

설정이 적용되지 않음: tmux 설정 파일 경로와 문법을 확인하고 서비스를 재시작하세요.

nohup 명령어 문제:

reattach-to-user-namespace nohup your-program &

참고 사항

tmux 2.6 이상 버전에는 유사한 기능이 내장되어 있습니다. 최신 버전을 사용 중이라면 이 도구 없이도 클립보드 통합이 가능할 수 있습니다.

태그: tmux macOS reattach-to-user-namespace 클립보드 시스템통합

9월 23일 14:07에 게시됨