vhsでtmuxのペイン分割なども録画する方法
ターミナルの操作を録画できるvhsで、tmux操作も録画する方法を解説します。
簡単な方法
再現性がなくていいのであれば、Type "tmux" Enter
のようにしてtmuxを実行するだけです。ただこれだとせっかくのvhsのメリットが消えてしまいます。
カスタマイズで表示しているステータスバーなどは、録画時には逆に見づらくなるかもしれません。
再現性のある方法
公式リポジトリを見ると、examplesにtmuxを使った例がありました。こちらを見てみましょう。
Hide Type "tmux -f /dev/null -L test new-session -- bash" Enter Type "tmux split-window -d -h -- bash && \" Enter Type "tmux set status && \" Enter Type 'tmux setw pane-border-style "fg=0" && \' Enter Type 'tmux setw pane-active-border-style "fg=0"' Enter Sleep 0.5 Ctrl+L Sleep 1Show
立ち上げコマンド
tmuxの立ち上げは次のようなコマンドを使っています。
tmux -f /dev/null -L test new-session -- bash
fオプション
-f /dev/null
の指定で、設定ファイルなしで立ち上げます。普段の設定ファイルを読み込まずに最低限だけ設定することで再現性を確保する方針です。
Lオプション
-L
オプションはデフォルトのtmuxサーバーとは別のものを作成する指定です。
通常はdefault
という名前でそこにセッションを作っていきますが、それとは別の録画用のサーバーを立ち上げます。
興味のある人はvhs
で録画中に/tmp/tmux-UID/〇〇/
を見てみるともっと分かりやすいでしょう。
ls -al /tmp/tmux-501/
total 0drwx------@ 4 eetann wheel 128 Jul 17 11:42 ./drwxrwxrwt 14 root wheel 448 Jul 17 11:42 ../srwxrwx---@ 1 eetann wheel 0 Jul 15 07:42 default=srwxrwx---@ 1 eetann wheel 0 Jul 17 11:42 test=
それ以外のコマンド
立ち上げ以外は最低限の装飾設定をしています。
Type "tmux split-window -d -h -- bash && \" EnterType "tmux set status && \" EnterType 'tmux setw pane-border-style "fg=0" && \' EnterType 'tmux setw pane-active-border-style "fg=0"' Enter
履歴表示の削除
このままだとtmux
関係のコマンドの実行履歴が表示されたままであるため、キーバインドまたはclear
コマンドの実行で非表示にします。
Ctrl+L
連続キーバインドはどうやって書くのか
CtrlB+qのような連続して入力するキーバインドの実行は次のようにType
を使って書きます。
Ctrl+B Type q
実際の例
筆者がeditpromptの使い方の記事を書いた時に実際に録画したtapeファイルを掲載します。
Output tmux-split.mp4Set Shell zshSet FontSize 14Set Width 800Set Height 500Set Framerate 60Set Padding 50Set WindowBar ColorfulSet BorderRadius 10Set FontFamily "HackGen Console NF"Set Theme "Builtin Solarized Dark"
Hide Type@0 "tmux -f /dev/null -L test new-session -- zsh" Enter Type@0 "tmux set status && \" Enter Type@0 'tmux setw pane-border-style "fg=0" && \' Enter Type@0 'tmux setw pane-active-border-style "fg=0"' Enter Type@0 "tmux bind q split-window -v -l 10 -c '#{pane_current_path}' 'editprompt --editor nvim'" Enter Type@0 "clear" Enter Sleep 1Show
Type "claude" EnterSleep 1sCtrl+B Type@0 qSleep 1sType "i"Type "foo bar buz"Sleep 1sEscapeType@300ms ":wq" EnterSleep 3s# 録画終了後にclaudeをkillするのを忘れないように!
以上、vhsでtmuxの操作を録画する方法でした。tmux関係の機能や設定を紹介するときや、単純に画面分割して見せたい時に使えそうです。