tmux
Cygwin
mintty

Cygwin (mintty) でサーバ上で実行しているtmuxからマウス選択範囲をコピー

More than 1 year has passed since last update.

結論

mintty >= 2.6.1 (2016/09/20 リリース) を利用して、

  • /etc/minttyrc
  • $APPDATA/mintty/config
  • ~/.config/mintty/config
  • ~/.minttyrc

のどれかに

AllowSetSelection=yes

を記載する (Win7 + mintty 2.7.6 で動作)

背景

ローカルマシン (Cygwin(mintty)) から ssh で作業用&踏み台サーバにアクセス
→ tmux を起動し各種サーバへログインしている環境で、
表示されている内容をマウスで選択 (or 選択モードで選択) してクリップポードに入れたいと常々思っていました。

検索すると、 ローカルマシンで tmux を実行している場合は putclip とかを tmux の copy-pipe に渡す等の解決策がたくさん見つかりました。 しかし、 サーバで実行している場合はXの機能を使ったりやローカルマシンで tcp で待ち受けしているサーバプログラムを立ち上げて ssh 経由で流し込んでクリップポードに.. 等の中々環境が一般的でなかったり、 大変そうな方法で解決されていました。 (日本語で検索する限り)

OSC 52 というターミナルエミュレータの制御コードに対応していれば簡単にやりたいことが実現できるようです。 mintty >= 2.6.1 であれば、 AllowSetSelection=yes を設定することができるようになっています。
前述した記事は2016/09以前に書かれていたもので、 かつ AllowSetSelection mintty 等で調べても日本語の記事が見つからなかった(2017/10現在)のでこの記事を書いています。

https://mintty.github.io/mintty.1.html

Allow control sequence to set selection (AllowSetSelection=false)
If enabled, the terminal control sequence OSC 52 is allowed to set the clipboard selection for pasting (using base64-encoded contents, like xterm).

このコンフィグはGUIの設定項目には無く、 コンフィグファイルに記載する必要があります。 (デフォルトは false )

コンフィグファイルを変更すると、 マウスで選択するだけで、 ペインをまたがる事もなくローカルマシンのクリップポードに内容が反映されました。

良い Cygwin ライフを!


:thinking: .。o(私は今だいぶ歓喜しているのですが、 実はみなさんこれ特に困ってないんですかね??何か私が見落としている...??)