お伝えしたいこと
ウィンドウ分割を初めとした便利な機能を持つターミナルエミュレーターが欲しくなったので、Tilix を導入しました。
本記事では Tilix を選んだ理由、インストール手順、トラブルの回避、お気に入りのカスタマイズを紹介したいと思います。
特に以下の内容はTilix以外のターミナルエミュレーターにも応用可能ですので、興味のある部分はぜひ読んでみてください。
- gtk.cssによる見た目のカスタマイズ
- ls の色にカラースキームが反映されない不具合回避
- カラースキームNordのダウンロードと適用
- Quakeモードと通常モードの併用
- ショートカットキーのカスタマイズ
- 設定のバックアップ・リストア
- お伝えしたいこと
- Tilix を選んだ理由
- インストール手順
- 太すぎるタブバーを狭くする
- (任意) カラースキームの追加
- その他お気に入りのカスタマイズ
- 既定のターミナルを切り替える
- TilixをQuakeモードで利用する
- Tilix の設定のバックアップとリストア
- (参考) GTKのCSS編集のやり方
- (参考) DIR_COLORSの仕組み
- (参考) Quake時のウィンドウサイズを変更する
- まとめ
- Linux Desktop リンク集
Tilix を選んだ理由
目立ったバグがない が一番大きな理由です。
例えばTerminator はブロードキャスト機能がうまく動きません (ブロードキャスト対象が多くなると、正しく複製されなくなる)。
またTerminatorとGuake は Ctrl+Shift+F
によるターミナルの文字列検索がまともに機能しませんでした (検索してもヒットしない)。
その点、Tilix はどちらも問題なく動いています。
※2020年10月時点の情報です
次に、欲しい機能を持っている ことが挙げられます。
ちなみに、機能面ではTerminator とGuakeも概ね要件を満たしています。
- タブ
- ターミナル分割 (同一タブ内で画面を縦横に分割する機能 ≒ TMUX)
- ターミナルの表示/非表示の切り替えのショートカット (≒ Quake機能)
- コマンドブロードキャスト (Guakeは2020/10時点で非対応)
- コピペ時の確認ウィンドウ (≒ Teraterm)
- ショートカットキーのカスタマイズ
インストール手順
公式手順に従い、以下のコマンドを実行します。
sudo dnf install tilix
太すぎるタブバーを狭くする
好みの差が出そうですが、私としてはタブが太すぎると感じたので変更します。
StackOverflow で議論されていたスタイルシートを参考に、アレンジしました。
詳細な原理は、(参考) GTKのCSS編集のやり方で紹介します。
変更前後の比較
変更方法
~/.config/gtk-3.0/gtk.css
に以下のように記載することで修正可能です。
.tilix-background tab, .tilix-background button { padding: 0px; min-height: 0px; } .tilix-background tab button image { padding-right: 1px; }
(任意) カラースキームの追加
Tilixの設定画面 (Preferences
) を開き、左メニューのProfiles
から特定のプロファイルを選択してColor
を選択するとカラースキームを設定できます。
私は個人的にデフォルトのbase16: Twilight (dark)
を使っています。
もし他のカラースキームをカスタムで追加したくなった場合は、このセクションの手順でご対応ください。
カラースキームの追加作業は、特定のディレクトリにjsonファイルを配置するだけで完了します。
Tilix 公式サイト
jsonファイルは自分で書く必要はなく、GitHubなどで公開されたファイルをダウンロードするのが基本となります。
例: Nordの追加
今回はNordを例に具体的な手順を紹介します。
ちなみに、本文トップの画像はNordを利用しています。
まず、GitHubから nord.json
をダウンロードします。
https://github.com/arcticicestudio/nord-tilix/blob/develop/src/json/nord.json
ダウンロードした nord.json
を以下のどちらかのディレクトリに配置します。
/usr/share/tilix/schemes
→ 全ユーザーに反映~/.config/tilix/schemes/
→ 今のユーザーのみに反映
後はTilix の設定画面を開き、カラースキームからNord を選択するのみです。
具体的な手順は後述しますが、 Preferences > (プロファイル名) > Colorタブ > Color Scheme
から Nord
を選択すれば反映されます。
その他のカラースキーム
Tilix 公式サイトにもリンクが貼られていますが、以下に多数公開されていました。
その他お気に入りのカスタマイズ
Tilix を開き、右上の ≡
ボタンから Preferences
を選択することで、各種設定が可能です。
以下に私のお気に入り設定を書き出しますので、よろしければ参考にしてみてください。
Global
赤枠の部分を変更しました。
Ctrl + マウスホイール
で拡大・縮小- タイトル部分を
Ctrl + クリック
でタイトル名変更 (暴発防止のため) - 新規セッション追加時、新しいウィンドウで起動する (後述の通り、Quakeモードと通常モードを併用するための設定。Quakeを利用しない場合はSplit Right や Focus Window でも良い)
- 選択したテキストを (Shift+Ctrl+Cを押さなくても) コピーする
※他にもAlways use advanced paste dialog
のチェックを入れることで、Teratermのようなコピペの確認ウィンドウを出せます (Ctrl+Enterで確定)。今回は有効化しませんでした。
Appearance
赤枠の部分を変更しました。
- ウィンドウ上部のタイトルを 「Tilix」にする
- タブ機能を有効化する (Tilixを再起動することで反映)
Quake
特定のショートカットキー (Ctrl+@
や F12
) でターミナルの表示/非表示を行えるようにするため、私はQuakeモードを利用しています。
これにより、Tilix でもGuake のような使い勝手にできます。
Quakeで動作させるためのショートカットキーの設定方法は「TilixをQuakeモードで利用する」で紹介します。
ここでは、Quakeモード実行時の見た目の設定を行います。
赤枠の部分を変更しました。
- Quakeモードで起動した時のウィンドウの高さ、幅を100% (最大) に。位置を中央に変更 (※)
- Tilix のウィンドウから選択が外れたら、自動的にウィンドウを隠す
(※) 設定画面では高さを90%までしか設定できない ので、以下のコマンドで設定します。
# dconf write /com/gexperts/Tilix/quake-height-percent 100 と同義 gsettings set com.gexperts.Tilix.Settings quake-height-percent 100
後ほど(参考) Quake時のウィンドウサイズを変更するにて、上記Quakeの設定をコマンド一行で場面に応じて切り替える方法も紹介します。
Shortcuts
デフォルトから変更したショートカットキーを列挙します。
Application
アクション | ショートカットキー |
---|---|
Open a new session | Ctrl + T |
Open a new window | Ctrl + N |
Open preferences | Ctrl + , |
View configured shortcuts | Ctrl + . |
Session
アクション | ショートカットキー |
---|---|
Add terminal automatically | Alt + A |
Add terminal down | Alt + D |
Add terminal right | Alt + R |
Edit the session name | Shift + F2 |
Resize the terminal down | Shift + Alt + Down |
Resize the terminal left | Shift + Alt + Left |
Resize the terminal right | Shift + Alt + Right |
Resize the terminal up | Shift + Alt + Up |
Save the current session | disabled (Backspace) |
Terminal
アクション | ショートカットキー |
---|---|
Advanced paste | disabled (Backspace) |
Close terminal | Ctrl + W |
Open file browser | Alt + E |
Find | Ctrl + F |
Find next | F3 |
Find previous | Shift + F3 |
Maximize Terminal | Ctrl + Return |
Page down | Shift + Page Down |
Page up | Shift + Page Up |
Toggle read only | Ctrl + Alt + R |
Reset the terminal | disabled (Backspace) |
Reset and clear the terminal | Shift + Ctrl + L |
Save terminal contents | Shift + Ctrl + S |
Scroll down | Shift + Down |
Scroll up | Shift + Up |
Profile
+
のアイコンからオリジナルのプロファイルを作成し、GeneralタブとColorタブの以下赤枠部分のみ変更しました。
カラースキームを Nord に設定して、透明度を少し上げるととってもおしゃれになりますよ。
既定のターミナルを切り替える
Cinnamon デスクトップの場合、Menu (またはSystem Settings) から Preferred Applications
を検索し、Terminal の部分を Tilix
に設定します。
TilixをQuakeモードで利用する
やりたいこと
tilix --quake
のように --quake
オプションをつけて実行すると、Tilix はQuake モードで起動します。
デフォルトでは、Quakeモードで起動するとウィンドウの枠を省略したデザインで画面上側に起動します。
その状態でもう一度 tilix --quake
を実行すると、Tilixはバックグラウンドに隠れます。
ここで、Ctrl+@
というショートカットキーに tilix --quake
を割り当てれば、Tilixの表示 / 非表示切り替えボタンになります。
慣れれば Alt + Tab
で切り替えながら作業するより便利なので、私はこの設定としています。
なお、デフォルトの Ctrl + Alt + T
でターミナルを起動するショートカットキーはそのまま残しておきます。
Tilix の設定のGlobalタブにおいて、New Session = New window
と設定してある場合、Ctrl + Alt + T
を押下した場合は通常モードでTilix が起動します。
この構成により、TilixひとつでQuakeモードと通常モードに両対応できるようになります。
設定方法
Cinnamon デスクトップ環境の場合を例に説明します。
Menu (または System Settings から) Keyboard
と検索し、キーボードの設定画面を開きます。
Shortcuts
のタブへ移動し、ショートカットキーの編集画面に移動します。
Name にわかりやすい名称を、Command に tilix --quake
と入力し、Add
を選択します。
最後に、 Ctrl+@
などのショートカットキーを割り当てます。
Guake を使っていた方は、 F12
の方が馴染みがあるかもしれませんね。
繰り返しになりますが、デフォルトの Launch Terminal (Ctrl + Alt + T)
に割り当てるショートカットキーは特に弄りません。
Tilix の設定のバックアップとリストア
GitHub Issues で作者が紹介した手順を掲載しています。
バックアップ手順
dconf dump
コマンドを実行すると、設定情報がテキスト形式で出力されます。
その内容をリダイレクトして保存します。
dconf dump /com/gexperts/Tilix/ > tilix.dconf
リストア手順
dconf load
コマンドに dconf dump
形式の情報を標準入力から渡すことで、設定情報をリストアできます。
dconf load /com/gexperts/Tilix/ < tilix.dconf
(参考) dconf、gsettings とは
Tilix の設定情報は、dconf
(設定情報管理データベース) で管理されています。
Quakeモードの設定をCLIで実施するときに gsettings
を利用しましたが、gsettings
はdconf
のフロントエンドとして動作しています (参考:RedHat社ドキュメント)。
つまり、Tilix の設定管理 (変更・保存・復元) の手段は主に3つあるということです。
- Tilix GUI から起動する Preferences
- dconf
- gsettings
別サイトによると、gsettings は dconf 以外のラッパーとしても使われることがあるようです。
興味深いです。
(参考) dconf-editor
dconf
には dconf-editor
というGUIがあります。
以下のコマンドでインストールできます。
sudo dnf install dconf-editor
Menu から dconf editor
と検索して起動できます。
実際に触ってみると、使い勝手はかなり良いです。
以下にスクリーンショットを貼ります。
(参考) GTKのCSS編集のやり方
Tilixのタブの高さを変更するためにCSSを編集しました。
CSSのクラス名をどのように調べたのか、気になる方向けに補足します。
GTKベースのアプリは、GTKインスペクターを利用することでスタイルシートの要素を調べることができます (参考:Gnome Project)。
ブラウザデバッグを駆使してブログをカスタマイズするのと同じようなイメージです。
GTKインスペクターは gtk3-devel
に付属するため、まずはそれをインストールします。
※注意:gtk3-devel は依存パッケージが非常に多いため、Gnomeベースのデスクトップ環境以外を使っている方は、下記コマンドを実行しないほうが良いです。
私は検証用のVMでこの操作を行いました。
# debianベースの場合:sudo apt install libgtk-3-dev
sudo dnf install gtk3-devel
つづいて、Tilixが停止された状態で、Tilix以外のターミナル (Gnome Terminalなど) から 以下のコマンドを実行します。
GTK_DEBUG=interactive tilix
すると、デバッグ用ウィンドウと共にTilix が起動します。
後は、以下の手順でブラウザデバッグと同じ要領でCSSの要素を調べます。
- デバッグウィンドウの
Object
タブを開く (赤枠) - 左上の ● のようなアイコンを選択し、Tilix のウィンドウのスタイルを見たい部分をクリックする (赤枠)
- ドロップダウンリストを
CSS nodes
に変更する (赤枠) - クラス名や適用されているスタイルの内容を確認する (ピンク枠)
CSS
タブにお試しでスタイルを書いて挙動を確認する~/.config/gtk-3.0/gtk.css
を編集し、tilix を再起動してスタイルが反映されたことを確認する
GTKのスタイルシートは、Tilix 以外のGTKベースアプリ全てに影響を与えます。
ここでコツですが、「Tilix」など、可能な限りアプリケーション固有のキーワードを含むクラス名を指定すると、想定外の動きを抑えることができます。
後は要素名 (notebookなど) クラス名 (.tilix-backgroundなど) をスペース区切りなどで指定し、影響範囲を絞り込んでカスタマイズします。
私はCSSの経験はほとんどないのですが、以下サイトを参考になんとかできました。
(参考) DIR_COLORSの仕組み
Terminal が色を表示する仕組み
スクリプトを斜め読みしたレベルなので正確ではないかもしれませんが、色が決まるのは概ね以下の流れです。
- ターミナルエミューレータ起動時にTERM環境変数をセットする
- Tilixの場合、TERMには
xterm-256color
がセットされている - Tilix で
echo $TERM
を実行するとわかる
- Tilixの場合、TERMには
- ターミナル起動時に、
/etc/profile.d/colorls.sh
が読み込まれる~/.dir_colors
、~/.dircolors
、~/.dir_colors.$TERM
、~/.dircolors.$TERM
が読み込まれる- 上記ファイルが見つからなかった場合、
/etc/DIR_COLORS.$TERM
が読み込まれる - 上記ファイルが見つからなかった場合、
/etc/DIR_COLORS.256color
が読み込まれる - 上記ファイルが見つからなかった場合、
/etc/DIR_COLORS
が読み込まれる- デフォルトでは
/etc/DIR_COLORS.256color
が読み込まれる - 上記手順で
~/.dir_colors
を作成した場合は、代わりに~/.dir_colors
が読み込まれる (中身は/etc/DIR_COLORS
と同じ)
- デフォルトでは
dircolors
コマンドにより、LS_COLORS
環境変数にカラーコードがセットされる
ls --color
コマンド実行時、LS_COLORS
に従ってエスケープシーケンスで色情報を付与して結果を出力する- Tilix はエスケープシーケンスを読み込み、Color Scheme に沿って色を変換して描画する
最後の工程でようやくTilix が登場しました。
これはいくつか実験した上での想像なのですが、Tilix は内部的にカラーコードの対応表を持っているようです。
特定のエスケープシーケンス (例えば、青 = \e[34m) を受け取ったら、TilixはColor Shemeのjsonファイルに記述された対応するHTMLカラーコード (例えば 青 = #81A1C1) で描画している、と私は理解しています。
Tilix の Color Palette
GitHub Issues でのやり取りによると、以下のColor Palette に各色名称ごとに2色ずつ定義されていますが、「左側が通常の色」、「右側が明るい色 (the one on the right is light color)」を表しているとのことです。
つまり、「青」を例に図解するとこのようになります。
一方で、デフォルトで読み込まれる /etc/DIR_COLORS.256color
はどうなっているかと言うと...
grep DIR /etc/DIR_COLORS.256color # DIR 38;5;33 # directory
ディレクトリの表示色が 38;5;33
となっています。
38;5;
で始まる色は88/256色対応のカラーコードであり、 通常のBlue (34) や Light Blue (94) とは異なる色です。
Tilix のColor Palette には 38;5;33
は存在しないので、これは変換されずに「そのまま」表示されます。
一方で、/etc/DIR_COLORS
は8/16色対応のカラーコードで記述されており、Tilix のColor Palette の変換テーブルに対応しています。
grep DIR /etc/DIR_COLORS # DIR 01;34 # directory
今回はディレクトリを表す青色に着目しましたが、実行ファイルの緑色など、他にも同様の現象が発生していました。
こういった事情から、Tilix を使うときは /etc/DIR_COLORS
のカラーコードを利用する方が相性が良いようです。
※実際に試してみると、Gnome Terminal も /etc/DIR_COLORS
を読み込んだ方が良いようでした。他のターミナルエミュレーターも同様な気がします
ls コマンドの色がおかしい問題の修正において /etc/DIR_COLORS
を ~/.dir_colors
にコピーすることで読み込むカラーコードを変更していたのは、こういった背景からでした。
参考サイト
Linux のカラーコードについては、以下のサイトが大変参考になりました。
こちらのサイトに載っているように、 echo -e "Default \e[34mBlue\e[0m"
といったコマンドを試しに実行してみると、色の挙動について理解が深まります。
https://misc.flogisoft.com/bash/tip_colors_and_formatting
(参考) Quake時のウィンドウサイズを変更する
先に紹介したカスタマイズでは、Quake時の画面幅・高さ共に100%とし、Ctrl + @
実行時に画面全体を覆うようにTilix が起動するようにしました。
しかし、場合によっては画面左半分にブラウザを、画面右半分にTilixを設置したいケースもあると思います。
Super + →
などでTilix のウィンドウを寄せても良いのですが、Ctrl + @
を押すたびに位置がリセットされてしまうので面倒です。
そこで以下のファイルを作成し、コマンド1つでTilixの設定を切り替えられるようにしました。
tilixc
、tilixr
、tilixl
を実行することで、「最大化」、「右寄せ」、「左寄せ」を切り替えることができます。
以下の例では gsettings set
を使っていますが、もちろん dconf write
を使っても大丈夫です。
~/.local/bin/tilixr
(画面を右に寄せる。Tilixのウィンドウがフォーカスから外れても最小化しないようにする)
#!/bin/bash echo -e 'Aligning Tilix to the right...\n' gsettings set com.gexperts.Tilix.Settings quake-alignment right gsettings set com.gexperts.Tilix.Settings quake-height-percent 100 gsettings set com.gexperts.Tilix.Settings quake-width-percent 50 gsettings set com.gexperts.Tilix.Settings quake-hide-lose-focus false echo Done.
~/.local/bin/tilixl
(画面を左に寄せる。Tilixのウィンドウがフォーカスから外れても最小化しないようにする)
#!/bin/bash echo -e 'Aligning Tilix to the left...\n' gsettings set com.gexperts.Tilix.Settings quake-alignment left gsettings set com.gexperts.Tilix.Settings quake-height-percent 100 gsettings set com.gexperts.Tilix.Settings quake-width-percent 50 gsettings set com.gexperts.Tilix.Settings quake-hide-lose-focus false echo Done.
~/.local/bin/tilixc
(画面を最大化する。Tilixのウィンドウがフォーカスから外れたら自動的に最小化する)
#!/bin/bash echo -e 'Aligning Tilix to the center...\n' gsettings set com.gexperts.Tilix.Settings quake-alignment center gsettings set com.gexperts.Tilix.Settings quake-height-percent 100 gsettings set com.gexperts.Tilix.Settings quake-width-percent 100 gsettings set com.gexperts.Tilix.Settings quake-hide-lose-focus true echo Done.
~/.local/bin/tilixt
(画面を上に寄せる。Tilixのウィンドウがフォーカスから外れたら自動的に最小化する)
#!/bin/bash echo -e 'Aligning Tilix to the top...\n' gsettings set com.gexperts.Tilix.Settings quake-alignment center gsettings set com.gexperts.Tilix.Settings quake-height-percent 30 gsettings set com.gexperts.Tilix.Settings quake-width-percent 80 gsettings set com.gexperts.Tilix.Settings quake-hide-lose-focus true echo Done.
~/.local/bin/tilixc
の状態で tilixr
、tilixl
、tilixt
を実行しても即時反映されない場合は、Super + →
やウィンドウのドラッグなどで最大化を解除してから、Ctrl + @
を2回押してQuakeウィンドウを再読込することで反映されます。
まとめ
Linux 用の Terminal Emulator として Tilix について諸々紹介しました。
機能の多さ、バグの少なさという点で、私の中ではTilix が一番好みでした。
冒頭に記載したとおり、ここに書いた内容のほとんどはTilix 以外のターミナルエミュレーターにも応用可能ですので、ぜひ活用してくださいね。