試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

端末の中で仮想端末を管理するtmux(GNU screenの代替)について(全体の設定例)

端末の中で仮想端末を管理する tmux(GNU screenの代替)について(ステータス行のカスタマイズと特殊な記法について)」に続く内容として、ここでは、これまでのtmuxについての設定に関するメモ(最後の関連記事を参照)を踏まえた上でのtmuxの設定例を扱う。
この中ではウィンドウごとに固有の設定は行っていないが、「端末の中で仮想端末を管理する tmux(GNU screenの代替)について(カスタマイズ時の記述と幾つかの設定項目について)」に書いている通りにセッションを作りウィンドウを作成していく流れの後でset-window-optionを記述したり、split-windowで分割をしたりselect-layoutでレイアウトを指定したりといった流れを記述するなどによって、それぞれの使い方に応じた理想の「初期状態」が作れるようになっている。
以下の内容は設定「例」なので、好みに応じて書き換える。

  1. ステータス行以外の設定例
  2. ステータス行の設定例
    1. 例1
    2. 例2(256色rxvt-unicode向け)
    3. メモ用コメント

ステータス行以外の設定例

詳しくは「端末の中で仮想端末を管理する tmux(GNU screenの代替)について(カスタマイズ時の記述と幾つかの設定項目について)」を参照。
[一部]ファイル名: ~/.tmux.conf

## UTF-8を用いるかどうかはロケールから自動検出される(必要のある場合のみ指定)
#set-window-option -g utf8 on
#set-option -g status-utf8 on

## 既定のPrefixキー(Ctrl+b)の割り当てを解除
unbind-key C-b
## Ctrl+tをPrefixキーにする
set-option -g prefix C-t
bind-key C-t send-prefix

## 既定の割り当てとして「Prefix - c」でウィンドウが作成できるが
## Prefix - Ctrl+cでも作成できるようにする
unbind ^C
bind ^C new-window

## Prefix - Ctrl+wでウィンドウ一覧選択を表示
unbind ^W
bind ^W choose-window

## Prefix - Ctrl+tで先ほどアクティブだったウィンドウを表示
unbind ^T
bind ^T last-window

## Prefix - [Ctrl+t(もしくはCtrl+Tab)とCtrl+y]でペイン切り替え
unbind C-o
bind ^R down-pane
bind ^Y up-pane
bind Tab down-pane

## ウィンドウ番号を1から開始
set-option -g base-index 1

## マウスクリックでペイン選択
set-option -g mouse-select-pane on

## メッセージ表示時間(既定値は1000?)
set-option -g display-time 2000

## バッファ上限数(既定値は9で0番-8番)
set-option -g buffer-limit 32

## 後方スクロール行数(既定値は2000)
#set-option -g history-limit 2000

## コピーモードでvi風の操作にしたい場合(既定値はemacs)
#set-window-option -g mode-keys vi

ステータス行の設定例

例1

xtermの他、GNOME端末LXTerminalなどのVTEライブラリによる端末エミュレータなどでも動作を確認している。
メッセージ/コマンドプロンプトの表示は

のような色になる。

[一部]ファイル名: ~/.tmux.conf

## ここからステータス行(最下行)の設定

## 既定の属性
# 「xxx-fg」「xxx-bg」は色、「xxx-attr」は属性
# 透明にしたい場合、端末によっては
# status-bgを「default」にすると256色パレット色の表示が部分的におかしくなる?
# 背景色は端末エミュレータの背景色に近いものを設定すると良いかも
set-option -g status-fg   default
set-option -g status-bg   colour239
set-option -g status-attr default

set-option -g status-left-fg   default
set-option -g status-left-bg   colour24
set-option -g status-left-attr default

set-option -g status-right-fg   colour115
set-option -g status-right-bg   colour22
set-option -g status-right-attr bold

## ウィンドウ一覧部における現在非アクティブなウィンドウの項目の表示
set-window-option -g window-status-fg   white
set-window-option -g window-status-bg   default
set-window-option -g window-status-attr default

## ウィンドウ一覧部における現在アクティブなウィンドウの項目の表示
## 端末によっては256色の色を用いると正常に表示されない?
set-window-option -g window-status-current-fg   white
set-window-option -g window-status-current-bg   colour125
set-window-option -g window-status-current-attr bold

## メッセージ/プロンプト
set-option -g message-fg   colour115
set-option -g message-bg   colour24
set-option -g message-attr bright

## スクロールの右上やコピーモード選択範囲のスタイル
set-window-option -g mode-fg   colour146
# 256色パレットの色を付けると表示が変になる?(reverseすると回避可能?)
set-window-option -g mode-bg   colour62
set-window-option -g mode-attr reverse,bold

## 左ステータス(現在時刻を表示)
## 日付/時刻部分はstrftime()と同様の書式
set-option -g status-left "#[fg=colour211,bold]%m#[default,fg=colour212]/#[fg=colour218,bold]%d #[fg=colour81]%H#[default,blink,fg=colour45]:#[default,fg=colour75,bold]%M#[default]"
set-option -g status-left-length 11  # 既定値は10

## 右ステータス(タイトルを表示)
set-option -g status-right "#T"
#set-option -g status-right-length 99  # 右ステータスも長さ制限可

## ウィンドウマネージャ向けのタイトル
set-option -g set-titles on
set-option -g set-titles-string "[tmux]#T \"#W\"(#I/#P) @ #H"

## ステータス行更新間隔(1で毎秒更新・既定値15)
set-option -g status-interval 5

例2(256色rxvt-unicode向け)

この例は256色rxvt-unicodeでのみ動作を確認している。時刻表示の「:」の点滅やウィンドウ一覧の透明背景が他の端末エミュレータではうまく動かないことがある。
メッセージ/コマンドプロンプトの色については上の例と同じ。
[一部]ファイル名: ~/.tmux.conf

## ここからステータス行(最下行)の設定

## 既定の属性
# 「xxx-fg」「xxx-bg」は色、「xxx-attr」は属性
# 透明にしたい場合、端末によっては
# status-bgを「default」にすると256色パレット色の表示が部分的におかしくなる?
# 背景色は端末エミュレータの背景色に近いものを設定すると良いかも
set-option -g status-fg   default
set-option -g status-bg   default
set-option -g status-attr default

# status-left-* と status-right-* の設定はおすすめしない
# status-leftやstatus-rightの中で記述したほうが良い
#set-option -g status-left-fg   default
#set-option -g status-left-bg   default
#set-option -g status-left-attr default

#set-option -g status-right-fg   default
#set-option -g status-right-bg   default
#set-option -g status-right-attr default

## ウィンドウ一覧部における現在非アクティブなウィンドウの項目の表示
set-window-option -g window-status-fg   colour115
set-window-option -g window-status-bg   default
set-window-option -g window-status-attr bold

## ウィンドウ一覧部における現在アクティブなウィンドウの項目の表示
## 端末によっては256色の色を用いると正常に表示されない?
set-window-option -g window-status-current-fg   colour253
set-window-option -g window-status-current-bg   colour125
set-window-option -g window-status-current-attr bold

## メッセージ/プロンプト
set-option -g message-fg   colour115
set-option -g message-bg   colour24
set-option -g message-attr bright

## スクロールの右上やコピーモード選択範囲のスタイル
set-window-option -g mode-fg   colour218
# 256色パレットの色を付けると表示が変になる?(reverseすると回避可能?)
set-window-option -g mode-bg   colour125
set-window-option -g mode-attr reverse,bold

## 左ステータス(現在時刻を表示)
## 日付/時刻部分はstrftime()と同様の書式
# rxvt-unicode上のblinkはbgを設定すると利かない?
set-option -g status-left "#[fg=colour211,bold]%m#[default,fg=colour212]/#[fg=colour218,bold]%d #[fg=colour81]%H#[default,blink,fg=colour45]:#[default,fg=colour75,bold]%M#[default]"
set-option -g status-left-length 11  # 既定値は10

## 右ステータス(タイトルを表示)
set-option -g status-right "#[fg=colour79,bold,hidden]#T#[default]"
#set-option -g status-right-length 99  # 右ステータスも長さ制限可

## ウィンドウマネージャ向けのタイトル
set-option -g set-titles on
set-option -g set-titles-string "[tmux]#T \"#W\"(#I/#P) @ #H"

## ステータス行更新間隔(1で毎秒更新・既定値15)
set-option -g status-interval 5

メモ用コメント
[一部]ファイル名: ~/.tmux.conf

## ステータス行の書式
  #(コマンド行)     コマンド出力の最初の行
  #[属性]           色/属性の変更(例:#[fg=cyan,bright])
  #H                ホスト名
  #I                ウィンドウ番号
  #P                ペイン番号
  #S                セッション名
  #T                ウィンドウタイトル
  #W                ウィンドウ名
  ##                「#」の文字
# コマンドは繰り返し実行される (更新頻度はstatus-intervalによる・既定値は15秒)
# 指定可能な色は
# black red green yellow blue magenta cyan white
# の他、256色パレット上のcolour0,colour1, ... colour255が利用可能
# 指定可能な属性は
#   bright(bold)[明るい(太字)], dim[暗い], underscore[下線], blink[点滅],
#   reverse[反転], hidden[非表示], italics[イタリック], default[書式のクリア]
#   (端末によっては効果がないものもある)

使用したバージョン:

  • tmux 1.1