DUICUO

Kitty: GPUアクセラレーション対応のターミナルツール


強力な GPU ベースのターミナル エミュレーター (クロスプラットフォームの互換性が重要)

近年、サーバー関連ツールの設定に​dotfiles​使用する人が増えており、クロスプラットフォームでの使用が可能になっています。設定を同期するだけで、ユーザーは問題なくマシンを使用できます。

​Kitty​ 、クロスプラットフォームで機能豊富な​GPU​ベースのターミナルエミュレータです。スレッドレンダリングにより入力レイテンシを最小限に抑え、 ​GPU​レンダリング技術を活用することで、目に見える速度向上、システム負荷の軽減、スムーズなスクロールを実現します。スクリプト、 ​shell​プロンプト、 ​SSH​経由で制御できる軽量エミュレータです。

  • キティ - 公式リポジトリ
  • キティ - 公式ドキュメント
  • Kitty - 公式ドキュメント - キーボードショートカット
  • Kitty - 公式ドキュメント - 統合機能


1. 端末のインストール

ターミナルのインストールと関連する構成ファイルの簡単な紹介。

システムにグラフィカルインターフェースがインストールされている場合、デフォルトのターミナルは​Gnome Terminal​です。ただし、画面分割表示やコマンドの同時実行といった高度な操作には、 ​Tmux​などのサードパーティ製プラグインが必要になることがよくあります。一方、 ​kitty​ ​Tmux​機能をすべて備え、さらに優れた機能を備えたフル機能のターミナルです。

  • クロスプラットフォーム​Linux/macOS​
  • プレーンテキスト設定​config​
  • 目に見える速度の向上​GPU​
 # バイナリインストール
# Linux: ~/.local/kitty.app
# macOS: /アプリケーション/kitty.app
$ curl -L https://sw.kovidgoyal.net/kitty/installer.sh | sh

 # Ubuntuのインストール
$ sudo apt アップデート
$ sudo apt install kitty -y
$ キティ

# タスクバー表示
$ ln -s ~/.local/kitty.app/bin/kitty ~/.local/bin/
$ cp ~/.local/kitty.app/share/applications/kitty.desktop ~/.local/share/applications/
$ cp ~/.local/kitty.app/share/applications/kitty-open.desktop ~/.local/share/applications/
$ sed -i "s|Icon=kitty|Icon=/home/ $USER /.local/kitty.app/share/icons/hicolor/256x256/apps/kitty.png|g" ~/.local/share/applications/kitty*.desktop

 # デフォルトの設定ファイル
# ホットリロード構成はデフォルトではサポートされていません (再起動が必要です)。
~/.config/kitty/kitty.conf

# デバッグモード
$ キティ--debug -config

2. 使い方

このセクションでは、このターミナルをすばやく使用する方法と、対応するキーボード ショートカットについて説明します。

  • [1] スクロール

KittyのGPUベースのターミナルツール - スクロール

  • [2] タブ

KittyのGPUベースのターミナルツール - タブ

  • [3] ウィンドウズ

KittyのGPUベースのターミナルツール - スクロール

  • [4] その他

KittyのGPUベースのターミナルツール - スクロール

3. 箱から出してすぐに使える

Kitty のコアコンポーネントは C で記述されていますが、UI は Python を使用して表示されます。

​Kitty​ 、スクリプト制御、カスタマイズ可能な​kittens​​icat​画像表示機能などの非常に強力なインターフェイスを提供し、他のツールとシームレスに統合できます。

  • キティの拡張機能をもっと見る

Kitty の GPU ベースのターミナルツール - すぐに使える

  • 表示される色の効果は本当に良いです。
  • [1] 差分
 # 比較
$ 子猫+子猫差分ファイル1 ファイル2

 # Git設定に統合する
vim ~/.gitconfig
[差分]
ツール=キティ
guitool = kitty.gui

[diffツール]
プロンプト=
信頼終了コード= true

[difftool "キティ" ]
cmd =子猫+子猫diff $LOCAL $REMOTE

[difftool "kitty.gui" ]
cmd = kitty kitty + kitten diff $LOCAL $REMOTE

KittyのGPUベースのターミナルツール - diff

  • 画像はターミナルに直接表示できます。
  • [2] アイキャット
 # 写真
$ 子猫+子猫 icat

# エイリアスを設定
vim ~/.zshrc
エイリアスicat = "kitty +kitten icat"

KittyのGPUベースのターミナルツール - icat

  • テーマの効果を即座にプレビューでき、ワンクリック切り替えをサポートします。
  • [3] テーマ
 # テーマ
$ 子猫+子猫のテーマ
$ kitty + kitten themes --reload -in = all 淡色表示のモノカイ

KittyのGPUベースのターミナルツール - テーマ

  • 文字を受け入れ、対応するコードを出力します。
  • [4] ユニコード入力
 # 出力
$ 子猫+子猫 unicode_input

  • すばやくアクセスできるように、ターミナル内のすべてのリンクを強調表示します。
  • [5] ヒント
 # ショートカットキーの割り当てを設定する
$ map ctrl + g 子猫のヒント \
--type =行番号 \
--linenum -action = tab nvim + {行} {パス}

KittyのGPUベースターミナルツール - ヒント

4. デメリット

このターミナルツールにまだ実装されていない機能を紹介します!

  • tmux-plugins/tmux-resurrect自動保存
  • tmux-plugins/tmux-continuumが自動的にロードされる
  • [1] セッションの保存と読み込み
 # 現在、Kitty 用のすぐに利用できるプラグイン ソリューションは存在しません。
# https://github.com/kovidgoyal/kitty/issues/1197)

  • tmuxのようなこの機能は組み込まれていません。
  • ただし、スケーラビリティが非常に高いため、これを実現するのは非常に簡単です。
  • [2] 禅モード
 # vim ~/.config/kitty/zoom_toggle.py
def main(引数):
合格

kittens.tui.h​​andlerからresult_handlerをインポートします
@result_handler (no_ui = True)
def handle_result(args, answer, target_window_id, boss):
タブ= boss.active_tab
タブがNoneでない場合:
tab.current_layout.name == ' stack' の場合:
tab.last_used_layout()
それ以外
tab.goto_layout( 'スタック' )

  • panelも同様の機能を実現できるようです。
  • [3] ステータスバー
 # 同様の機能を実現できる
# https://sw.kovidgoyal.net/kitty/kittens/panel/

  • リモート マシンにssh接続しようとすると、エラーが発生する可能性があります。
  • [4] リモートマシン
 # リモートSSHコマンドを使用できません
# https://sw.kovidgoyal.net/kitty/faq
$ キティ+子猫ssh myserver

# エイリアスを設定
vim ~/.zshrc
エイリアスssh = "kitty +kitten ssh"

5. 参考リンク

  • Kitty – 見落とされがちな生産性向上ツール