tmuxでアクティブpaneかどうかでの色分けをpane_synchronizedに応じて切り替える

普段あまりtmuxを使っていないのだけど、tmux.confの設定でアクティブなpaneかどうかで色を分けるといった対応をしていたりする。 ↓こんな感じ。

で、pane_synchronizedかどうかに応じてこのアクティブなpaneだけ色を変えるのをtmux.confで変更したいということがあったので、その備忘。 対処方法だが、ちょうど自分がpane_synchronizedの切り替えをショートカットキーでトグル切り替えで処理していたので、以下のようにtmux.confに記述することで対処した(自分のtmux.confから抜粋)。

#-----------------------...

最近、 ローカルにおいてあるtmux.confをリモートサーバで利用する ことが多いのだけど、その時にリモートサーバのtmuxのバージョンが古いとうまく動かないことがある。 そのため、特定の設定についてtmux.conf側でバージョンに応じて読み込みをさせる必要がでてきた。

調べて知ったのだが、実はtmuxではShellのコマンドを叩くことができるようで、以下の様に一度tmuxのバージョンを変数に代入したりして、それを参照させて分岐させることができるようだ。


tmuxを使ってssh接続先ごとにターミナルの背景色を変更する

サーバへの設定の際、当たり前の話ではあるのだがsshで接続して色々と操作をする。 この際、"このターミナルは今操作中だよ"というのが視覚的にわかりやすいよう、ターミナルの背景色等を自動的に切り替えさせたい事がある。で、なんかいい方法ないかなーと調べてみたところ、tmuxを利用すればできそうだということがわかった。

tmuxでは、以下のようにコマンドを実行することで現在アクティブになっているpaneの背景色等を変える事ができる。


tmuxでアクティブ・非アクティブなPaneの色を変化させる

tmuxでPaneを使う際、アクティブ・非アクティブなPaneで色が同じで、今どのPaneを操作しているのかわかりにくい事がある。 で、tmuxではtmux.confに設定を記述することで、アクティブ・非アクティブなPaneの色を変更できる機能があるらしい。borderで太字の文字についても色を指定できる。 以下、設定例。


tmuxでpaneの色(文字色・背景色)を変更する

時折、ターミナルの背景色や文字の色などを環境や状況に応じて静的・動的に簡単に変更できたりしないかなーと考えたりする。 で、なんか方法あるのかなと調べてみたところ、tmuxの2.1からならpaneごとに背景色などを変更できるらしい。もちろんtmuxなので、デフォルト設定しておけば静的にもできるし、使用中でもpaneの色が変更できる。

動的にpaneの色を変更する場合は、プレフィックスキーの入力後、以下のようにコマンドを実行する。 「-t:.n」にはpaneの番号を入れる。

:select-pane -t:.0 -P 'fg=cyan,bg=black'

tmuxの恩恵(セッションの保持とか)は受けたいけど、tmuxに慣れておらずうまく使えない。 個人ではなく、チームで使う場合とかだとなおさらそういった事があるので、踏み台サーバでssh接続時にセッションがあったら選択画面を、そうでない場合は新規セッションを開始するようなスクリプトを作ってみる。

鍵認証だと仮定して、以下のようなスクリプトをauthorized_keysのcommandで指定してやることで、接続時にセッションの有無を確認して再接続or新規セッション作成を選択させることができる。 (一応、こっちにも残してる)

#!/bin/bash

function usage {...

Teraterm + screenコマンド(tmux)でマウススクロールを有効にする

Teratermでscreenコマンドやtmuxコマンドのような、仮想端末ウィンドウを分割出来るコマンドを実行すると、マウスホイールでのスクロールが効かず、上下キーと同じ動作(Linuxなどでは、コマンドの履歴が表示される)がされてしまう。
Ctrlキーを押下しながらホイールすることで画面のスクロールはされるのだけど、通常の状態と同じように、Ctrlキー無しでスクロールさせるにはどうすればよいのか?
そもそも、なぜCtrlキーを押下しながらだと正常にスクロールされるのか?

これは、screenコマンドやtmuxコマンドの実行時は、『アプリケーションカーソルモード』という状態に移行す...