Ubuntu初心者がROSを使うときにおすすめのターミナル「terminator」

はじめに

ROSを使っていると、ターミナルを大量に立ち上げ、同時に表示したくなることがあると思います。例えばあるノードを起動して、そのノードのROS_INFOを見つつ、複数のトピックをrostopic echoで監視したい時などがあります。
しかしUbuntu標準のgnome-terminalではタブ分割しかできず、複数の画面を同時に表示するには新しくWindowを立ち上げる必要があります。しかしそうなるとウインドウの配置&切り替えが面倒です。

そこで、簡単に画面切り替えができるTerminatorを紹介したいと思います。

f:id:cryborg:20160904002525p:plain:w400

環境

Ubuntu 16.04 LTS

Terminatorとは

画面分割やコマンドの自動実行など様々な拡張機能がついたターミナル(端末)ソフトウェアです。
この手のターミナルソフトはtmuxやscreen等が有名ですが、いくつか使ってみたところ、Ubuntu初心者の私がROS用途で一番使いやすかったのがTerminatorでした。

使いやすかった理由は、単純に 画面分割・移動が簡単なキーバインディングでできる からです。
後で書きますが、Alt+上下左右矢印キーで上下左右の分割画面に移動できるような手軽さが、今までWindowsしか使ったことがなかったlinux初心者にとっては嬉しいです。
vimemacsも使ったことがない人間には、tmuxで使われるCtrl+bを押した後別のキーを押す、といった組み合わせに慣れていないのです。。。

Terminatorのインストール

簡単です。apt-getでできます。

  • sudo apt-get install terminator

一度インストールするとCtrl+Shift+tで起動するのはデフォルトのgnome-terminalではなくterminatorになります。
コマンドで起動したい場合はterminatorで起動します。

ROS向けの使い方

画面分割・移動

下記keybindingsでできます(デフォルト設定)

  • Ctrl+Shift+o : 画面を上下に分割
  • Ctrl+Shift+e : 画面を左右に分割
  • Alt+上下左右矢印キー : 上下左右の画面に移動

文字列検索

grepと下記の検索機能を使い分けています。

  • Ctrl+Shift+f : ターミナルのログから文字列検索(ESCキーで終了)
  • Ctrl+Shift+g : ターミナルのログを全消去

例えばビルドログから文字列を抽出したいときなど、grepコマンドで抽出するよりも、
Ctrl+Shift+gでログを全消去 → ビルド → Ctrl+Shift+fで文字列検索
とやったほうが他のビルドログが残っていて便利だったりします。

コマンドを全ターミナルにbroadcast

他にも、source ~/.bashrcや、環境変数の設定を分割した全ターミナルに反映させたいときは下記が役立ちます。デフォルトではkeybindingが無効になっているので、自分で適当なキーを割り当ててください。

  • broadcast_all : 全ターミナルにコマンド入力
  • brodcast_group : 現在のターミナルのみにコマンド入力

カスタマイズ

右クリック→設定から設定ウインドウが立ち上がります。
設定を変更した後、設定ウインドウを閉じると変更が反映されます。
設定は~/.config/terminator/config に保存されており、このファイルをコピーすることでterminatorの設定をそっくりそのまま別環境に移すことが可能です。

画面レイアウトの保存・起動

Terminatorを起動する度に画面を分割しまくっていては面倒なので、よく使う画面レイアウトは保存しましょう。
まず一度好みのレイアウトに分割します。
そこの状態で設定ウインドウを開き、レイアウト->追加 で新しいレイアウトの名前を決めて保存します。
以後、Terminatorを起動するときに、terminator -l <レイアウト名>というコマンドにすると、そのレイアウトでTerminatorが起動します。

私は、4行x2列=8画面レイアウトを"ros"というレイアウト名で保存し、.bashrcに下記のaliasを登録しています。

  • alias rosterminator='terminator -l ros&exit'

こうすることで、PCを起動した後、下記コマンドでROS向けのレイアウトが立ち上がります。

  • Ctrl+Shift+tでデフォルトレイアウトの1画面terminatorを起動する
  • rosterminatorコマンドでカスタムレイアウトのterminatorを起動&現在の1画面terminatorを終了

f:id:cryborg:20160904003938p:plain:w400

フォント

gnome-terminalと同じフォントにしたい場合は、Profiles->Fontを"Ubuntu Mono"にしましょう。

カーソル形状の変更

テキスト入力カーソルのこと。マウスカーソルではありません。
通常ターミナルでは1文字全体を覆う四角形だが、縦線一本にしたい場合は、
Profiles->General->Cursor shapeをI-Beamに変更。

テーマカラーの変更

Profiles->Colors->Built-in schemesをAmbienceに変更すると、 背景が真っ黒だったのがGnome Terminalと同じ濃い紫になる。

コマンドの自動実行

他にも、「このレイアウトを起動したらこのターミナルでこのコマンドを実行する」といった設定もできるので、roscoreや各種ノードを、terminatorを起動しただけで立ち上げることができたりします。
設定方法はこちらのページが参考になります。
http://tclip.blog.fc2.com/blog-entry-96.html

おわりに

他のROSユーザー数名にterminatorを紹介したらみんな使い始めてくれたので、多分ROS用途では使いやすいんだと思います。
ROSを使っていて、便利なターミナルソフトを探している方はぜひterminatorを試してみてください。