kitty
kitty 是一款基于 OpenGL 的可脚本化终端模拟器,支持 TrueColor、连字、键盘输入和图像渲染的协议扩展。它还提供平铺功能,类似于 GNU Screen 或 tmux。
安装
安装 kitty 软件包 或 kitty-gitAUR 以获取开发版本。
用法
可以通过各种 Ctrl+Shift
快捷键创建和调整新的标签页和窗口。布局可以通过 Ctrl+Shift+l
切换,并且可以保存/恢复。
全键盘模式 区分了模糊的按键,例如 Ctrl+i
与 Tab
。此外,新的文本效果(如卷曲下划线)也适用于支持它的应用程序。
Kittens
kitty 有一个用于创建名为 kittens 的子程序的框架。所有 kittens 的命令都以 kitty +kitten
为前缀,因此将它们用作 shell 别名很方便。
icat
这个 kitten 基于 kitty 图形协议。它需要安装 ImageMagick。要在终端中显示图像
$ kitty +kitten icat image.jpg
它还可以在终端中显示动画 gif。除了图像文件,您还可以传递目录或图像 URL。这也适用于通过 ssh 从远程服务器显示图像。诸如 ranger 和 neofetch 等应用程序使用此协议在终端中显示图像。有关更多信息,请参阅官方文档
diff
这个 kitten 需要安装 git 或 diffutils。可选地,安装 python-pygments 以进行语法高亮显示。要显示两个文件的差异
$ kitty +kitten diff file1 file2
它可以显示图像文件以及文本文件的差异。这个 kitten 也可以通过 ssh 使用。您可以传递目录而不是文件以进行递归差异。有关更多信息,请参阅官方文档。
clipboard
这个 kitten 用于读取和写入系统剪贴板,甚至可以通过 ssh 使用剪贴板。要将 stdin 复制到系统剪贴板
$ echo "Hello" | kitty +kitten clipboard
要将当前剪贴板内容输出到 stdout
$ kitty +kitten clipboard --get-clipboard
默认情况下,此命令将显示权限弹出窗口。要禁用此功能,请编辑配置文件中的 clipboard_control 选项
~/.config/kitty/kitty.conf
clipboard_control write-clipboard read-clipboard
有关更多信息,请参阅官方文档。
配置
kitty 将其配置存储在 ~/.config/kitty/kitty.conf
中,默认配置可以在 /usr/share/doc/kitty/kitty.conf
中找到。字体、颜色、光标和回滚行为可以调整。您可以在官方文档或 kitty.conf(5) 中查看所有可用选项。
zo
展开每个部分。- 位于
/usr/share/doc/kitty/kitty.conf
的默认配置文件是自文档化的,其中包含解释每个选项的注释。 - 官方文档在本地位于
/usr/share/doc/kitty/html/index.html
。
技巧与提示
启用输入法支持
默认情况下,kitty 对 IBus 输入法框架的支持已禁用。要启用它,请设置环境变量 GLFW_IM_MODULE=ibus
。由于 Fcitx5 提供了兼容的 IBus 接口,这也适用于 Fcitx5。
单实例模式
这类似于守护进程模式。当使用 --single-instance
或 -1
选项启动 kitty 时,只会运行一个 kitty 实例。随后使用相同选项启动 kitty 将在现有 kitty 实例中创建一个新窗口。这将降低内存使用率,因为共享 GPU 缓存,并减少启动时间。您可以使用 --instance group name
选项拥有多个 kitty 实例组。有关更多信息,请参阅 kitty(1) § single。
故障排除
SSH 终端问题
当 kitty 用于 ssh 连接到没有其 terminfo 的远程主机时,可能会出现各种问题。通常的解决方案是复制 terminfo。Kitty 有一个 ssh kitten 来自动执行此操作。
$ kitty +kitten ssh user@host
您可能希望将其设置为 ssh 的别名。一种方法是检测用户是否正在使用 Kitty,如果是,则别名 ssh 命令。为此,您需要将以下行附加到您的 ~/.bashrc
或 ~/.zshrc
文件中
[ "$TERM" = "xterm-kitty" ] && alias ssh="kitty +kitten ssh"
如果由于任何原因您无法在远程主机上安装 terminfo,您可以尝试将 TERM
设置为更可能存在的项。请注意,这可能会禁用终端的某些功能。请参阅 OpenSSH#Connecting to a remote without the appropriate terminfo entry。
vim 中背景颜色消失
在 vim 中使用带有背景颜色的配色方案时,背景可能会在滚动时消失或闪烁。要解决此问题,请确保环境变量 TERM
仍然设置为 xterm-kitty
,然后将此行添加到您的 .vimrc
文件中
~/.vimrc
let &t_ut=''
相关错误报告:Github issue #108,kitty FAQ
位图字体无法识别
kitty 不支持位图字体,因为它的基本功能是能够以任意字体大小显示字体,而位图字体不适合这样做;请参阅 Github issue #97。