Kitty: 又一款基于 GPU 加速的終端工具
基于 GPU 的功能強大的終端仿真器(跨平臺是王道)
近幾年越來越多人喜歡使用 ??dotfiles?
? 中進行追蹤自己的服務端相關的工具配置,這樣就可以跨平臺使用,只需要同步一下配置,即可無痛使用機器了。
??Kitty?
? 是一個跨平臺、特性豐富的基于 ??GPU?
? 的終端模擬器。使用線程渲染將輸入延遲最小化,以及 ??GPU?
? 渲染技術,使得肉眼可見的速度提升,以及降低系統負載和平滑的滾動效果。它是一個輕量級的模擬器,可以通過腳本、??shell?
? 提示符和 ??SSH?
? 進行控制。
- Kitty - 官方倉庫
- Kitty - 官方文檔
- Kitty - 官方文檔 - 快捷鍵
- Kitty - 官方文檔 - 集成功能
1. 終端安裝
簡單介紹終端的安裝以及相關的配置文件
如果你系統安裝(帶圖形化界面)之后,默認的終端是 ??Gnome Terminal?
? 這個,如果我們直接使用的話,比如分屏顯示、同時執行命令等高級操作多需要借助于第三方插件來完成,比如使用功能 ??Tmux?
? 等。而 ??kitty?
? 是一個功能完備的終端,其包含的功能做了??Tmux?
? 所做的一切,且做的更好。
- 跨平臺 (?
?Linux/macOS?
?) - 純文本的配置 (?
?config?
?) - 肉眼可見的速度提升 (?
?GPU?
?)
# 二進制安裝
# Linux: ~/.local/kitty.app
# macOS: /Applications/kitty.app
$ curl -L https://sw.kovidgoyal.net/kitty/installer.sh | sh
# Ubuntu安裝
$ sudo apt update
$ sudo apt install kitty -y
$ kitty
# 任務欄顯示
$ 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
# 調試模式
$ kitty --debug-config
2. 使用方式
介紹如何快速使用該終端和其對應快捷鍵組合!
- [1] Scrolling
Kitty 基于 GPU 的終端工具 - Scrolling
- [2] Tabs
Kitty 基于 GPU 的終端工具 - Tabs
- [3] Windows
Kitty 基于 GPU 的終端工具 - Scrolling
- [4] Other
Kitty 基于 GPU 的終端工具 - Scrolling
3. 開箱即用
Kitty 的核心部分采用 C 編寫, UI 界面采用 python 展示!
??Kitty?
? 提供了極其強大的接口,如腳本控制、自定義 ??kittens?
? 和 ??icat?
? 看圖功能,允許它無縫地與其他工具集成。
- 查看更多的 Kitty 擴展功能
Kitty 基于 GPU 的終端工具 - 開箱即用
- 顯示的色彩效果是真的好
- [1] diff
# 對比
$ kitty +kitten diff file1 file2
# 集成到git配置里面
$ vim ~/.gitconfig
[diff]
tool = kitty
guitool = kitty.gui
[difftool]
prompt = false
trustExitCode = true
[difftool "kitty"]
cmd = kitty +kitten diff $LOCAL $REMOTE
[difftool "kitty.gui"]
cmd = kitty kitty +kitten diff $LOCAL $REMOTE
Kitty 基于 GPU 的終端工具 - diff
- 可以直接終端里面顯示圖片
- [2] icat
# 圖片
$ kitty +kitten icat
# 設置別名
$ vim ~/.zshrc
alias icat="kitty +kitten icat"
Kitty 基于 GPU 的終端工具 - icat
- 可以讓你即時預覽主題效果并支持一鍵切換
- [3] themes
# 主題
$ kitty +kitten themes
$ kitty +kitten themes --reload-in=all Dimmed Monokai
Kitty 基于 GPU 的終端工具 - themes
- 接受字符然后輸出對應碼
- [4] Unicode input
# 輸出
$ kitty +kitten unicode_input
- 將終端所以的鏈接地址高亮起來并可以快捷打開
- [5] Hints
# 設置快捷鍵綁定
$ map ctrl+g kitten hints \
--type=linenum \
--linenum-action=tab nvim +{line} {path}
Kitty 基于 GPU 的終端工具 - Hints
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(args):
pass
from kittens.tui.handler import result_handler
@result_handler(no_ui=True)
def handle_result(args, answer, target_window_id, boss):
tab = boss.active_tab
if tab is not None:
if tab.current_layout.name == 'stack':
tab.last_used_layout()
else:
tab.goto_layout('stack')
- 有
panel
貌似可以實現類似的功能
- [3] 狀態欄
# 可以實現類似的功能
# https://sw.kovidgoyal.net/kitty/kittens/panel/
- 如果嘗試
ssh
到遠程機器,可能會發生報錯
- [4] 遠程機器
# 不能使用遠程SSH命令
# https://sw.kovidgoyal.net/kitty/faq
$ kitty +kitten ssh myserver
# 設置別名
$ vim ~/.zshrc
alias ssh="kitty +kitten ssh"
5. 參考鏈接
- Kitty – 一個被嚴重忽視的生產力利器