tmuxのPane/Window移動を少し便利にする

| | Linux

以下のブログで紹介されている、tmuxのお勧め設定の中の「Alt+矢印でpane移動して、端まで行ったら隣のwindowへ飛ぶ」がとても良いと思ったのですが、自分の環境(Ubuntu Linux 24.04)では動かなかったので別の方法で実現しています。このブログに「みなさんもぜひ自分のおすすめ設定を教えてください。」とあるので、私の方法を書きます。

https://blog.nishimu.land/entry/2026/02/10/001806

以下エントリに書いたように、最近GreenCloudという格安VPSを借りたことをきっかけにLinux上に開発環境を整備しなおしているのですが、そのなかでtmuxの設定も上記アイデアをもとに少し更新しました。

https://portablecode.info/2025/12/27/vps-greencloud-review/

私が実現したかったのは以下の動作です。

  • ALT - 左右矢印キーでPaneを移動する

  • Paneの左端までいった時、右端までいった時には次のWindowに移動する(ループする)

OpenCodeに以下のようなスクリプトを書いてもらって、 ~/.conf/tmux/smart_pane_move.shとして保存し、chmod +xで実行権限をつけます。

https://gist.github.com/simosako/c1d73cbfe2dbd59b9e97335eeed600ef

あとは、これを.tmux.conf等の設定ファイルでキーバインドするだけです。

`# Alt+左右矢印でpane移動(端まで行ったら隣のwindowへ循環)
bind -n M-Left run-shell "~/.config/tmux/smart_pane_move.sh left"
bind -n M-Right run-shell "~/.config/tmux/smart_pane_move.sh right"`

この他には、あまり凝ったtmuxの設定はしていません。あえて言うならGit管理のTUIであるLazyGitをいつでも呼び出せるようにpopup設定している部分でしょうか。

`## prefix - C-g でpopupでlazygitがオープン
bind C-g popup -E -d "#{pane_current_path}" -w 90% -h 90% "lazygit"
bind C-s popup -E -w 90% -h 90% "nvim ~/scratchpad.txt"`

上記のように書いておくことで、Prefix (私の場合はCtrl-z) -> C-g と押すことで、Window内部にLazyGitがポップアップで現れ、操作を終えたらすぐ元のWindowに戻れますので、お勧めです。

参考までに、以下に.tmux.conf全体を記載します。多くの部分は https://github.com/hendrikmi/dotfiles/blob/main/tmux/tmux.conf で公開されているものを参考にしています。

https://gist.github.com/simosako/317f496b44409ff20259d4e4e0061f83