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 이상 버전에는 유사한 기능이 내장되어 있습니다. 최신 버전을 사용 중이라면 이 도구 없이도 클립보드 통합이 가능할 수 있습니다.