🕖实践指南-019-kitty终端模拟器

type
status
date
slug
summary
tags
category
icon
password
notion image
官网描述中使用了“快速、功能丰富、跨平台、支持 GPU 加速”等文字来描述它,可见作者充满了骄傲。kitty 的核心使用 C 语音编写,并且有着丰富的插件系统 kitten,可以使用其他语音编写。kitten 是幼猫的意思,这里的命名也很有趣。

1. 安装

1.1. 预编译安装

常见的系统可以去 https://github.com/kovidgoyal/kitty/releases 下载对应启动的二进制包后安装。

1.2. 从源码编译

我使用的是 Ubuntu20.04,目前不在支持的列表当中(主要是 glibc 版本太低),可以选择使用 Ubuntu 22.04 中的 kitty-0.21 版本重编,可以选择从源码构建,获取最新的功能。

1.2.1. 准备工作

kitty 编译要求的条件中,有两项是无法在 Ubuntu 20.04 的自身源里解决的,需要借助特殊手段。
  • go >= 1.20
  • xxhash >= 0.8.0
前者可以使用官网脚本手动安装,后者可以使用 Ubuntu 22.04 的源重新编译。
💡
注意:源码获取只推荐拉取 git 仓库,不推荐下载 release 页面的压缩包。github 仓库自动生成的 release 压缩包是无法拉取 git submodule 的,因此在编译时会发生 zip 错误,官网虽然说可以使用不编译 wayland 模块来绕过,但目前的版本已失效。

1.2.2. 构建脚本

 

2. 配置

2.1. 全局配置

kitty 作者虽然反对终端复用器,但是作为用户还是要有自己的倔强,可以将快捷键绑定为 tmux 兼容模式。
主题可以选择任意喜欢的类型,使用 kitty +kitten theme 可以直接选择。

2.2. 插件配置

kitty 的 Session 其实跟 tmux 的 Session 不是一回事,它只是一种“固定的模版打开”的形式,比如设置上下分栏,7:3 比例,那么没事使用这个 Session 打开的都是这种布局,但是无法 attach 或者 dettach。
其他的图片查看、diff 等使用,可以查看官网,我还是比较喜欢使用独立的工具。

2.3. 输入法配置

kitty 不支持 fcitx4,即使是 fcitx5,配置里也是 ibus,参考 https://github.com/kovidgoyal/kitty/issues/469

3. 感受

我一直在寻找一款使用顺手的现代化终端模拟器,不可否认传承至今的“老朋友们”依然稳定可靠,坚如磐石,但一些功能的缺失让人总是在一些地方很遗憾,比如多路复用,比如不支持 openGL…
我知道有很多方法解决上面的问题,但那是设计之初就存在的问题,在我可以预见的时间里,那些特性是不可能加入的,比较“稳”太重要了(笑)。在我搜寻范围内,可以很好支持 GPU 的终端主要有三款:alacritty、wezterm 和 kitty。
这几款我都试用过一段时间,总的来说各自有各自的问题,alacritty 速度快但功能单一,wezterm 功能丰富但内存占用,kitty 不支持 fcitx4 ,作者宣称讨厌所有终端复用器,但又还没有做出类似 tmux 的原生功能。综合考虑几款终端,我认为 kitty 是综合实力最优秀的。

4. 参考

  • https://sw.kovidgoyal.net/kitty/build/#build-from-source
  • https://ttys3.dev/blog/kitty
中年码农的困境log-001-我与计算机