kitty
Kitty はスクリプトを組める OpenGL ベースのターミナルエミュレータです。タイル機能、TrueColor、合字、キーボード入力と画像レンダリングのプロトコル拡張があります。また、 GNU Screen や tmux のようなタイリング機能も提供します。
目次
インストール
kitty パッケージ、または開発版のkitty-gitAURをインストールしてください。
使用方法
新しいタブやウィンドウを ctrl+shift
ショートカットで作成・リサイズすることができます。レイアウトは ctrl+shift+l
で切り替えて保存・復元することが可能です。
フルキーボードモードでは ctrl+i
と tab
などのキーを区別します。さらに、アプリケーションによっては波線などのエフェクトを使うことができます。
Kitten
Kitty には kittens と呼ばれるサブプログラムを作成するためのフレームワークがあります。すべての kitten のコマンドは kitty +kitten というプレフィックスを持つので、シェルのエイリアスとして使用すると便利です。
icat
この kitten は kitty graphics protocol に基づいています。ImageMagick がインストールされている必要があります。ターミナルに画像を表示するには、
$ kitty +kitten icat image.jpg
また、ターミナルにアニメーション GIF を表示することもできます。画像ファイルの代わりに、ディレクトリや画像の URL を渡すことができます。これは、リモートサーバから画像を表示するために、ssh 上で動作します。ranger や neofetch などのいくつかのアプリケーションは、ターミナルに画像を表示するためにこのプロトコルを使用しています。詳しくは、公式ドキュメントを参照してください。
diff
This kitten requires either git or diffutils to be installed. Optionally, install python-pygments for syntax highlighting. To show a diff of two files:
$ kitty +kitten diff file1 file2
It displays diffs for images as well as text files. This kitten can also be used over ssh. You can pass directories instead of files for a recursive diff. For more information, see the official documentation.
clipboard
This kitten is used to read and write to the system clipboard and can be used to work with a clipboard even over ssh. To copy stdin to the system clipboard:
$ echo "Hello" | kitty +kitten clipboard
To output the current clipboard contents to stdout:
$ kitty +kitten clipboard --get-clipboard
This command will show a permission popup by default. To disable this, edit the clipboard_control
option in the configuration file:
~/.config/kitty/kitty.conf
clipboard_control write-clipboard read-clipboard
For more information, see the official documentation.
設定
kitty は ~/.config/kitty/kitty.conf
に設定を保存し、デフォルトの設定は /usr/share/doc/kitty/kitty.conf
で確認できます。フォント・カラー・カーソル・スクロールバックバッファの動作を調整することができます。利用可能なすべてのオプションは、公式ドキュメントまたは kitty.conf(5) で確認することができます。
ヒントとテクニック
IME サポートを有効にする
IBus IME フレームワークの Kitty サポートは、既定で無効になっています。これを有効にするには、環境変数 GLFW_IM_MODULE=ibus
を設定します。互換性のある IBus インターフェースが提供されているので、 Fcitx5 でも動作します。
シングルインスタンスモード
これはデーモンモードと似たような働きをします。kitty を -single-instance
または -1
オプションで起動すると、kitty のインスタンスは 1 つだけ実行されます。続けて同じオプションで kitty を起動すると、既存の kitty インスタンスの新しいウィンドウが作成されます。これにより、GPU キャッシュが共有されるためメモリ使用量が少なくなり、起動時間も短縮されます。kitty のインスタンスは --instance group name
オプションで複数のグループを持つことができます。詳しくは kitty(1) § single-instance を参照してください。
トラブルシューティング
SSH のターミナルの問題
kitty を使用して、terminfo を持たないリモートに ssh 接続すると、さまざまな問題が発生する可能性があります。解決策は通常 terminfo にコピーすることです。kitty には、まさにこれを自動化するための ssh kitten があります。
kitty +kitten ssh user@host
ssh のエイリアスとして設定したい場合、そのための一つの方法として、ユーザーが Kitty を使っているかどうかを検出し、もしそうなら、ssh コマンドのエイリアスを設定することです。これを行うには(Bashで)~/.bashrcファイルに次の行を追加します。
~/.bashrc
[[ "$TERM" == "xterm-kitty" ]] && alias ssh="kitty +kitten ssh"
何らかの理由でリモートに terminfo をインストールできない場合、 TERM
をより存在しやすいものに設定してみてください。この場合、端末の機能のいくつかが使えなくなる可能性があることに注意してください。OpenSSH#適切な terminfo エントリがないリモートに接続する場合 を参照してください。
vim で背景色が消える
vim で背景色のある配色を使用すると、スクロール中に背景が消えたりちらついたりすることがあります。これを修正するには、環境変数 TERM
がまだ xterm-kitty
に設定されていることを確認してから、次の行を .vimrc
ファイルに追加します。
関連するバグ報告: Github issue #108, kitty FAQ