🎃
Lubuntu用にtmuxを設定する
はじめに
tmux
は、複数のターミナルセッションを1つのウィンドウ内で管理できるターミナルマルチプレクサーです。これにより、作業効率を大幅に向上させることができます。
tmux.conf
は、tmux
の動作や外観をカスタマイズするための設定ファイルです。
この記事では、私が使用している設定内容を紹介します。
私の環境は、Lubuntu24.04
です。WezTerm
でtmux
を使用しています。
WezTerm
の設定は、下記の記事を参照して下さい。
tmux.confの内容
tmux.confの全体は以下のとおり。
~/.tmux.conf
###############################################################
# Emacs風キーバインド
###############################################################
setw -g mode-keys emacs
# prefix C-z でコピーモードに入る. C-Spaceで開始. C-Wでコピーする
bind-key C-z copy-mode
# prefix C-y でペーストする
bind-key C-y paste-buffer
# PageUp => 1ページ遡ってコピーモードに入る: ログを見る時など便利
bind -n Pageup copy-mode -u
unbind 1
unbind ^C
unbind &
# prefix 0 現在のペインを削除
bind 0 kill-pane
# prefix 1 ウインドウ内の現在のペインを残し、他のペインをウインドウにする
bind 1 break-pane
# prefix 2 ウインドウを横に分割
bind 2 split-window -v
# prefix 3 ウインドウを縦に分割
bind 3 split-window -h
# prefix o ペインをローテート
bind o select-pane -t :.+
# prefix k ウインドウを削除
bind k kill-window
# prefix C-k ペインを削除
bind C-k kill-pane
# prefix i
bind i display-panes
# prefix C-t
bind C-t next-window
# prefix c
bind c new-window
###############################################################
# マウス
###############################################################
# マウス操作を有効にする
set -g mouse on
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e'"
# マウスアップ時に選択完了せず、選択状態を維持し、Ctrl-cでクリップボードにコピーする
unbind -T copy-mode MouseDragEnd1Pane
#unbind -T copy-mode-vi MouseDragEnd1Pane
bind-key -T copy-mode C-c send-keys -X copy-pipe-and-cancel "xsel -bi"
#bind-key -T copy-mode-vi C-c send-keys -X copy-pipe-and-cancel "xsel -bi"
###############################################################
# 色・見た目
###############################################################
# 番号基準値を変更
set -g base-index 1
# ステータスバーをトップに配置する
set -g status-position top
# pane status bottom
set-option -g pane-border-status bottom
set -g pane-border-format " [#P][#(~/workspace/toolbin/ip.sh)][#T] "
# tmuxを 24bit color 表示できるようにする
set -g default-terminal xterm-256color
set -ga terminal-overrides ',xterm-256color:Tc'
###############################################################
# tpm
# see: https://github.com/tmux-plugins/tpm
###############################################################
# tmux-power
set -g @tmux_power_theme 'moon'
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'wfxr/tmux-power'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'
見た目は以下のとおり。画面上部のPowerlineのWindowインデックス表示部分
をマウスでクリックすると、Windowを切り替えられます。
Emacs風キーバインド
このセクションでは、tmuxのキーバインドをEmacs風に変更しています。私は、emacsを使っているため、Emacs風のキーバインドに変更しています。
-
キーバインドの変更
setw -g mode-keys emacs
- デフォルトのキーバインドをEmacs風に設定(通常はviモード)。
-
コピーモードとペースト
bind-key C-z copy-mode bind-key C-y paste-buffer
-
C-z
でコピーモードに入る。 -
C-y
でバッファからペースト(Emacsのペースト動作に対応)。
-
-
PageUpキーでコピーモード
bind -n Pageup copy-mode -u
- ページアップキーでコピーモードに入り、ログを1ページ分遡る。
-
ペインとウィンドウ管理
-
bind 0 kill-pane
:現在のペインを削除。 -
bind 2 split-window -v
:ペインを横に分割。 -
bind 3 split-window -h
:ペインを縦に分割。 -
bind o select-pane -t :.+
:ペインをローテート。 -
bind k kill-window
:現在のウィンドウを削除。
-
マウス操作の有効化
tmuxでのマウス操作を強化し、GUI 的な操作性を提供する設定です。デフォルトだと、ブラウザなどにペーストできなかったので、この設定を追加しています。
-
マウス操作の有効化
set -g mouse on
- マウスを使ってペインのリサイズ、ウィンドウ切り替え、スクロールが可能。
-
クリップボードへのコピー
bind-key -T copy-mode C-c send-keys -X copy-pipe-and-cancel "xsel -bi"
-
Ctrl-c
を押すと選択範囲をクリップボードにコピー。
-
見た目のカスタマイズ
tmuxのステータスバーやペインの見た目を変更する設定です。
-
ステータスバーの位置変更
set -g status-position top
- ステータスバーを画面の上部に配置。
-
ペインの見た目変更
set-option -g pane-border-status bottom set -g pane-border-format " [#P][#(~/workspace/toolbin/ip.sh)][#T] "
- ペインの境界に情報を表示(ペイン番号、IPアドレス、タイトルなど)。
- ip.sh は自分のIPアドレスを取得するスクリプトです。
ip.sh
#!/bin/bash ip=$(ip a | grep wlp0s20f3: -A 2 | tail -1 | awk '{print $2}') echo "$(echo -e '\uf1eb') ${ip}"
-
色の設定
set -g default-terminal xterm-256color set -ga terminal-overrides ',xterm-256color:Tc'
- 24bitカラー(TrueColor)をサポートし、色の再現性を向上。
TPM(tmux Plugin Manager)の活用
最後に、tmuxのプラグイン管理ツールであるTPMを使用しています。
TPMについては、下記URLを参照。
-
主なプラグイン
-
tmux-plugins/tmux-sensible
tmuxの便利なデフォルト設定を提供。 -
wfxr/tmux-power
ステータスバーをカスタマイズ可能にし、テーマ(例:moon
)を適用。
-
-
プラグインの初期化
run '~/.tmux/plugins/tpm/tpm'
- この行を設定ファイルの最後に追加することで、TPMがプラグインを自動的に管理。
Discussion